|  | @ -0,0 +1,215 @@
 | 
	
		
			
				|  |  | package com.yihu.iot.service.platform;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import com.alibaba.fastjson.JSONObject;
 | 
	
		
			
				|  |  | import com.yihu.iot.dao.company.IotCompanyDao;
 | 
	
		
			
				|  |  | import com.yihu.iot.dao.platform.*;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.iot.company.IotCompanyDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.iot.platform.*;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.iot.platform.IotInterfaceAuditVO;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.web.MixEnvelop;
 | 
	
		
			
				|  |  | import com.yihu.jw.rm.iot.IotRequestMapping;
 | 
	
		
			
				|  |  | import com.yihu.jw.util.date.DateUtil;
 | 
	
		
			
				|  |  | import com.yihu.mysql.query.BaseJpaService;
 | 
	
		
			
				|  |  | import io.swagger.annotations.ApiOperation;
 | 
	
		
			
				|  |  | import io.swagger.annotations.ApiParam;
 | 
	
		
			
				|  |  | import org.apache.commons.lang.StringUtils;
 | 
	
		
			
				|  |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | import org.springframework.jdbc.core.BeanPropertyRowMapper;
 | 
	
		
			
				|  |  | import org.springframework.jdbc.core.JdbcTemplate;
 | 
	
		
			
				|  |  | import org.springframework.jdbc.core.RowMapper;
 | 
	
		
			
				|  |  | import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  | import org.springframework.transaction.annotation.Transactional;
 | 
	
		
			
				|  |  | import org.springframework.web.bind.annotation.PostMapping;
 | 
	
		
			
				|  |  | import org.springframework.web.bind.annotation.RequestParam;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import java.text.ParseException;
 | 
	
		
			
				|  |  | import java.util.ArrayList;
 | 
	
		
			
				|  |  | import java.util.List;
 | 
	
		
			
				|  |  | import java.util.Map;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | /**
 | 
	
		
			
				|  |  |  * @author HZY
 | 
	
		
			
				|  |  |  * @vsrsion 1.0
 | 
	
		
			
				|  |  |  * Created at 2020/5/6
 | 
	
		
			
				|  |  |  */
 | 
	
		
			
				|  |  | @Service
 | 
	
		
			
				|  |  | @Transactional
 | 
	
		
			
				|  |  | public class IotInterfaceAuditService  extends BaseJpaService<IotInterfaceAuditDO, IotInterfaceAuditDao>  {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private IotInterfaceAuditDao  iotInterfaceAuditDao;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private IotInterfaceAuditDetailDao  iotInterfaceAuditDetailDao;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private IotShareInterfaceDao iotShareInterfaceDao;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private IotCompanyDao iotCompanyDao;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private IotCompanyAppInterfaceDao iotCompanyAppInterfaceDao;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private JdbcTemplate jdbcTemplate;
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 应用接口申请
 | 
	
		
			
				|  |  |      * @param json
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public void addInterfaceApplyFor(String json, List<String> ids) {
 | 
	
		
			
				|  |  |         IotInterfaceAuditDO iotInterfaceAuditDO = JSONObject.parseObject(json, IotInterfaceAuditDO.class);
 | 
	
		
			
				|  |  |         iotInterfaceAuditDO.setTime(DateUtil.getNowDate());
 | 
	
		
			
				|  |  |         iotInterfaceAuditDao.save(iotInterfaceAuditDO);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         ids.forEach(one->{
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             IotInterfaceAuditDetailDO iotInterfaceAuditDetailDO = new IotInterfaceAuditDetailDO();
 | 
	
		
			
				|  |  |             iotInterfaceAuditDetailDO.setInterfaceId(iotInterfaceAuditDO.getId());
 | 
	
		
			
				|  |  |             iotInterfaceAuditDetailDO.setShareInterfaceId(one);
 | 
	
		
			
				|  |  |             //获取共享接口信息,并存储到审核临时表中
 | 
	
		
			
				|  |  |             IotShareInterfaceDO shareInterfaceDO = iotShareInterfaceDao.findById(one);
 | 
	
		
			
				|  |  |             iotInterfaceAuditDetailDO.setInterfaceName(shareInterfaceDO.getInterfaceName());
 | 
	
		
			
				|  |  |             iotInterfaceAuditDetailDO.setMethodName(shareInterfaceDO.getMethodName());
 | 
	
		
			
				|  |  |             iotInterfaceAuditDetailDO.setExplanation(shareInterfaceDO.getExplanation());
 | 
	
		
			
				|  |  |             iotInterfaceAuditDetailDO.setTypeName(shareInterfaceDO.getTypeName());
 | 
	
		
			
				|  |  |             iotInterfaceAuditDetailDao.save(iotInterfaceAuditDetailDO);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         });
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 查看应用申请接口信息
 | 
	
		
			
				|  |  |      * @param id
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public IotInterfaceAuditVO findInterfaceApplyFor(String id) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         IotInterfaceAuditVO iotInterfaceAuditVO = new IotInterfaceAuditVO();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         IotInterfaceAuditDO auditDO = iotInterfaceAuditDao.findOne(id);
 | 
	
		
			
				|  |  |         //获取联系人姓名与电话
 | 
	
		
			
				|  |  |         IotCompanyDO company = iotCompanyDao.findOne(auditDO.getCompanyId());
 | 
	
		
			
				|  |  |         auditDO.setContactsName(company.getContactsName());
 | 
	
		
			
				|  |  |         auditDO.setContactsMobile(company.getContactsMobile());
 | 
	
		
			
				|  |  |         List<IotInterfaceAuditDetailDO> list = iotInterfaceAuditDetailDao.findByInterfaceId(id);
 | 
	
		
			
				|  |  |         iotInterfaceAuditVO.setIotInterfaceAuditDO(auditDO);
 | 
	
		
			
				|  |  |         iotInterfaceAuditVO.setIotInterfaceAuditDetailDOList(list);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return iotInterfaceAuditVO;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 分页查找所有应用申请信息
 | 
	
		
			
				|  |  |      * @param page
 | 
	
		
			
				|  |  |      * @param size
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public MixEnvelop<IotInterfaceAuditDO, IotInterfaceAuditDO> findAllApplyFor(Integer page, Integer size) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String sql="SELECT DISTINCT * FROM iot_interface_audit ORDER BY time DESC;";
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         List<IotInterfaceAuditDO> list = jdbcTemplate.query(sql,new BeanPropertyRowMapper(IotInterfaceAuditDO.class));
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         list.forEach(one->{
 | 
	
		
			
				|  |  |             IotCompanyDO company = iotCompanyDao.findOne(one.getCompanyId());
 | 
	
		
			
				|  |  |             one.setContactsName(company.getContactsName());
 | 
	
		
			
				|  |  |             one.setContactsMobile(company.getContactsMobile());
 | 
	
		
			
				|  |  |         });
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //获取总数
 | 
	
		
			
				|  |  |         long count = list.size();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return MixEnvelop.getSuccessListWithPage(IotRequestMapping.Platform.message_success_find,list,page, size,count);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 接口审核通过
 | 
	
		
			
				|  |  |      * @param id
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public MixEnvelop<IotInterfaceAuditDO, IotInterfaceAuditDO> auditPass(String id) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         IotInterfaceAuditDO auditDO = iotInterfaceAuditDao.findOne(id);
 | 
	
		
			
				|  |  |         if (auditDO==null)
 | 
	
		
			
				|  |  |         {
 | 
	
		
			
				|  |  |             return MixEnvelop.getError("审核操作失败,无该应用");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //删除之前的所有应用接口 已审核通过的为最新接口
 | 
	
		
			
				|  |  |         List<IotCompanyAppInterfaceDO> appInterfaceDOList = iotCompanyAppInterfaceDao.findByAppId(auditDO.getAppId());
 | 
	
		
			
				|  |  |         appInterfaceDOList.forEach(one->{
 | 
	
		
			
				|  |  |             iotCompanyAppInterfaceDao.delete(one.getId());
 | 
	
		
			
				|  |  |         });
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //获取共享接口数组并分配接口给应用
 | 
	
		
			
				|  |  |         List<IotInterfaceAuditDetailDO> ids = iotInterfaceAuditDetailDao.findByInterfaceId(auditDO.getId());
 | 
	
		
			
				|  |  |         ids.forEach(one->{
 | 
	
		
			
				|  |  |             IotCompanyAppInterfaceDO appInterfaceDO = new IotCompanyAppInterfaceDO();
 | 
	
		
			
				|  |  |             appInterfaceDO.setShareInterfaceId(one.getShareInterfaceId());
 | 
	
		
			
				|  |  |             appInterfaceDO.setAppId(auditDO.getAppId());
 | 
	
		
			
				|  |  |             appInterfaceDO.setAppName(auditDO.getAppName());
 | 
	
		
			
				|  |  |             appInterfaceDO.setCompanyId(auditDO.getCompanyId());
 | 
	
		
			
				|  |  |             appInterfaceDO.setCompanyName(auditDO.getCompanyName());
 | 
	
		
			
				|  |  |             appInterfaceDO.setDel("0");
 | 
	
		
			
				|  |  |             iotCompanyAppInterfaceDao.save(appInterfaceDO);
 | 
	
		
			
				|  |  |         });
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         auditDO.setStatus("1");
 | 
	
		
			
				|  |  |         auditDO.setAuditTime(DateUtil.getNowDate());
 | 
	
		
			
				|  |  |         iotInterfaceAuditDao.save(auditDO);
 | 
	
		
			
				|  |  |         return MixEnvelop.getSuccess(IotRequestMapping.InterfaceAudit.message_success_audit);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 接口审核不通过
 | 
	
		
			
				|  |  |      * @param id
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public MixEnvelop<IotInterfaceAuditDO, IotInterfaceAuditDO> auditNoPass(String id,String msg) {
 | 
	
		
			
				|  |  |         IotInterfaceAuditDO auditDO = iotInterfaceAuditDao.findOne(id);
 | 
	
		
			
				|  |  |         if (auditDO==null)
 | 
	
		
			
				|  |  |         {
 | 
	
		
			
				|  |  |             return MixEnvelop.getError("审核操作失败,无该应用");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         auditDO.setStatus("0");
 | 
	
		
			
				|  |  |         auditDO.setRefuseExplain(msg);
 | 
	
		
			
				|  |  |         auditDO.setAuditTime(DateUtil.getNowDate());
 | 
	
		
			
				|  |  |         iotInterfaceAuditDao.save(auditDO);
 | 
	
		
			
				|  |  |         return MixEnvelop.getSuccess(IotRequestMapping.InterfaceAudit.message_success_audit);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 分页查询接口申请信息
 | 
	
		
			
				|  |  |      * @param companyName
 | 
	
		
			
				|  |  |      * @param page
 | 
	
		
			
				|  |  |      * @param size
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public MixEnvelop<IotInterfaceAuditDO, IotInterfaceAuditDO> conditionQueryPage(String companyName, Integer page, Integer size) throws ParseException {
 | 
	
		
			
				|  |  |         StringBuffer sql = new StringBuffer("SELECT DISTINCT * from iot_interface_audit ");
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(companyName)){
 | 
	
		
			
				|  |  |             sql.append("WHERE company_name like'%").append(companyName).append("%'");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         sql.append("order by time desc limit ").append((page-1)*size).append(",").append(size);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         List<IotInterfaceAuditDO> list = jdbcTemplate.query(sql.toString(),new BeanPropertyRowMapper(IotInterfaceAuditDO.class));
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         list.forEach(one->{
 | 
	
		
			
				|  |  |             IotCompanyDO company = iotCompanyDao.findOne(one.getCompanyId());
 | 
	
		
			
				|  |  |             one.setContactsName(company.getContactsName());
 | 
	
		
			
				|  |  |             one.setContactsMobile(company.getContactsMobile());
 | 
	
		
			
				|  |  |         });
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //获取总数
 | 
	
		
			
				|  |  |         long count = list.size();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return MixEnvelop.getSuccessListWithPage(IotRequestMapping.Platform.message_success_find,list,page, size,count);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | }
 |