package com.szwl.controller; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.szwl.constant.ResponseCodesEnum; import com.szwl.model.bean.*; import com.szwl.model.bo.JsonMessage; import com.szwl.model.bo.JsonUtils; import com.szwl.model.bo.R; import com.szwl.model.bo.ResponseModel; import com.szwl.model.entity.*; import com.szwl.model.utils.AdminUtils; import com.szwl.model.utils.HttpClientSslUtils; import com.szwl.model.utils.PushUtils; import com.szwl.service.*; import com.szwl.service.es.EsTEquipmentService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.math.BigDecimal; import java.math.RoundingMode; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; //@Api(value = "/api/app_equipment/index", tags = {"设备信息上传接口"}) @Api(value = "/indexController", tags = {"设备信息上传接口"}) @RestController @RequestMapping("/api/app_equipment/index") public class IndexController { ; @Autowired TAdminService adminService; @Autowired TEquipmentService equipmentService; @Autowired TEquipmentApplyService equipmentApplyService; @Autowired TProductService productService; @Autowired TProportionService proportionService; @Autowired TEquipmentDescService equipmentDescService; @Autowired EsTEquipmentService esTEquipmentService; @Autowired TParametersService parametersService; @Autowired TPriceService priceService; @Autowired TPromoCodeService promoCodeService; @ApiOperation(value = "心跳") // @PostMapping("/heart.htm") @RequestMapping(value = "/heart.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8") @ResponseBody public String heart(@RequestBody EquipmentVo equipmentVo) { String clientId = equipmentVo.getClientId(); Date lastUpdateTime = equipmentVo.getLastUpdateTime(); Double longitude = equipmentVo.getLongitude(); Double latitude = equipmentVo.getLatitude(); String cabinetHd = equipmentVo.getCabinetHd(); String cabinetTm = equipmentVo.getCabinetTm(); String furnaceSp = equipmentVo.getFurnaceSp(); String furnaceTm = equipmentVo.getFurnaceTm(); String gtClientId = equipmentVo.getGtClientId(); String volume = equipmentVo.getVolume(); Integer eqeStatus = equipmentVo.getEqeStatus(); Boolean is_sleep = equipmentVo.getIs_sleep(); String netWorkingMode = equipmentVo.getNetWorkingMode(); //有记录,则进行修改 LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list = equipmentService.list(query); TEquipment _new = list.get(0); // Equipment _new = equipmentService.findByClientId(clientId); if (_new != null) { _new.setNetWorkingMode(netWorkingMode); if(StringUtils.isNotEmpty(cabinetTm)){ _new.setCabinetTm(cabinetTm); } if(StringUtils.isNotEmpty(cabinetHd)){ _new.setCabinetHd(cabinetHd); } if(StringUtils.isNotEmpty(furnaceSp)){ _new.setFurnaceSp(furnaceSp); } if(StringUtils.isNotEmpty(furnaceTm)){ _new.setFurnaceTm(furnaceTm); } _new.setLastUpdateTime(lastUpdateTime); // _new.setLongitude(longitude); if(eqeStatus!=null){ _new.setEqeStatus(eqeStatus); } if(is_sleep!=null){ _new.setIsSleep(is_sleep); } if(!StringUtils.isEmpty(furnaceTm)){ int fur = Integer.parseInt(furnaceTm); if(_new.getEqeStatus()==0&&fur>150){ _new.setEqeStatus(1); } if(_new.getEqeStatus()==null&&fur>150){ _new.setEqeStatus(1); } } if(!StringUtils.isEmpty(volume)){ _new.setVolume(volume); } // _new.setLatitude(latitude); _new.setGtClientId(gtClientId); _new.setModifyDate(new Date()); equipmentService.updateById(_new); TEquipmentDesc equipmentDesc = equipmentDescService.getById(_new.getId()); if(StringUtils.isNotEmpty(equipmentVo.getBlueSugar())){ equipmentDesc.setBlueSugar(equipmentVo.getBlueSugar()); } if(StringUtils.isNotEmpty(equipmentVo.getRedSugar())){ equipmentDesc.setRedSugar(equipmentVo.getRedSugar()); } if(StringUtils.isNotEmpty(equipmentVo.getYellowSugar())){ equipmentDesc.setYellowSugar(equipmentVo.getYellowSugar()); } if(StringUtils.isNotEmpty(equipmentVo.getWhiteSugar())){ equipmentDesc.setWhiteSugar(equipmentVo.getWhiteSugar()); } if(StringUtils.isNotEmpty(equipmentVo.getWater())){ equipmentDesc.setWater(equipmentVo.getWater()); } if(StringUtils.isNotEmpty(equipmentVo.getWasteWater())){ equipmentDesc.setWasteWater(equipmentVo.getWasteWater()); } if(StringUtils.isNotEmpty(equipmentVo.getStick())){ equipmentDesc.setStick(equipmentVo.getStick()); } equipmentDescService.updateById(equipmentDesc); // return JsonMessage.success("心跳成功"); return "心跳成功"; } // return JsonMessage.error("心跳失败"); return "心跳失败"; } /** * 设备申请 * * @param clientId 个推 * @param managerId 管理系统id * @return */ @ApiOperation(value = "设备申请") @RequestMapping(value = "/initNew.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8") @ResponseBody public String initNew(String clientId, String managerId, String gtClientId, String equimentType) { String machineType = "0"; String status = "0"; LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.like(TEquipment::getClientId,clientId); List list = equipmentService.list(query); if (list.size() > 0) { TEquipment equipment = list.get(0); if(equipment.getAdminId()!=31){ if(!equipment.getClientId().substring(equipment.getClientId().length()-3,equipment.getClientId().length()).equals("xxx")){ String managerId1 = equipment.getManagerId(); if(!managerId.equals(managerId1)){ return "该设备未脱离"; }else { return "该设备已经初始化"; } } }else { status = "1"; } } if (StringUtils.isEmpty(gtClientId)) { return "设备不能为空"; } LambdaQueryWrapper query1 = Wrappers.lambdaQuery(); query1.eq(TEquipmentApply::getClientId,clientId); query1.eq(TEquipmentApply::getStatusType,"1"); query1.eq(TEquipmentApply::getManagerId,managerId); String dateStr = "2022-12-28 00:00:00"; //获得SimpleDateFormat类,我们转换为yyyy-MM-dd的时间格式 SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { //使用SimpleDateFormat的parse()方法生成Date Date date = sf.parse(dateStr); query1.gt(TEquipmentApply::getCreateDate,date); } catch (ParseException e) { e.printStackTrace(); } List list1 = equipmentApplyService.list(query1); if(list1.size()>0){ return "重复申请"; } TEquipmentApply equipmentApply = new TEquipmentApply(); equipmentApply.setStatusType(1); equipmentApply.setClientId(clientId); equipmentApply.setManagerId(managerId); equipmentApply.setGtClientId(gtClientId); Long adminId = AdminUtils.decrypt(false, managerId); TAdmin admin = adminService.getById(adminId); if (admin == null) { return "找不到商家"; } //所属商家 String username = admin.getUsername(); equipmentApply.setAdminId(adminId); equipmentApply.setAdminUserName(username); equipmentApply.setEquimentType(equimentType); equipmentApply.setMachineType(machineType); equipmentApply.setCreateDate(new Date()); equipmentApply.setModifyDate(new Date()); equipmentApplyService.save(equipmentApply); if(status.equals("1")||String.valueOf(adminId).equals("3")||String.valueOf(adminId).equals("31")||String.valueOf(adminId).equals("506")||String.valueOf(adminId).equals("1090")){ Long id = equipmentApply.getId(); agree(id); return "设备申请成功"; } if(admin.getApplyStartTime()!=null&&admin.getApplyEndTime()!=null){ Date applyStartTime = admin.getApplyStartTime(); Date applyEndTime = admin.getApplyEndTime(); Date now = new Date(); if(now.getTime()>applyStartTime.getTime()&&now.getTime()1){ equipmentApply = null; } if (equipmentApply != null) { if (!StringUtils.isEmpty(status)) { if (status.equals("agreed")) { String clientId = equipmentApply.getClientId(); //判断是否设备初始化 Long adminId = equipmentApply.getAdminId(); String adminLevel = equipmentApply.getAdminLevel(); String adminUserName = equipmentApply.getAdminUserName(); String gtClientId = equipmentApply.getGtClientId(); String equimentType = equipmentApply.getEquimentType(); String machineType = equipmentApply.getMachineType(); String old = ""; LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.like(TEquipment::getClientId,clientId+"xxx"); List list = equipmentService.list(query); LambdaQueryWrapper query0 = Wrappers.lambdaQuery(); query0.eq(TEquipment::getClientId,clientId); List list2 = equipmentService.list(query0); equipmentApply.setStatusType(3); if (list.size() > 0||list2.size()>0) { //表示设备第二次申请了:主要为了区分脱离以及初始化 old = "1"; //重新修改设备名称 // TEquipment equipment = list.get(0); TEquipment equipment = new TEquipment(); if(list2.size()>0){ equipment = list2.get(0); }else { equipment = list.get(0); } equipment.setClientId(clientId); equipment.setGtClientId(gtClientId); equipment.setAdminId(adminId); equipment.setAdminLevel(adminLevel); equipment.setAdminUserName(adminUserName); equipment.setMachineType(machineType); if(equipmentApply.getEquimentType().equals("MG320-1")){ if(!equipmentApply.getEquimentType().equals(equipment.getEquimentType())&&equipment.getEquimentType().equals("MG320")){ LambdaQueryWrapper queryProduct = Wrappers.lambdaQuery(); queryProduct.eq(TProduct::getEquipmentId,equipment.getId()); List productList = productService.list(queryProduct); if(productList.size()==18){ //从18种变成30种花型 saveProductMG12(equipment.getId()); } //从18种变成30种花型 // saveProductMG12(equipment.getId()); } equipment.setEquimentType("MG320"); } if(equipmentApply.getEquimentType().equals("MG330")){ equipment.setEquimentType("MG330"); } equipmentService.updateById(equipment); LambdaQueryWrapper queryProportion = Wrappers.lambdaQuery(); queryProportion.eq(TProportion::getEquipmentId,equipment.getId()); List list1 = proportionService.list(queryProportion); if(list1.size()>0){ for(TProportion proportion:list1){ proportionService.removeById(proportion.getId()); } } // if(String.valueOf(adminId).equals("3")||String.valueOf(adminId).equals("31")||String.valueOf(adminId).equals("506")||String.valueOf(adminId).equals("1090")){ // //自动设置分销 // setProportion(adminId,equipment.getId(),clientId); // } try { esTEquipmentService.updateDataById(equipment); }catch (Exception e) { e.printStackTrace(); } equipmentService.sentMessage(clientId,PushUtils.buildJson("statusType", "agreed" + old).toString()); PushUtils.push(equipmentApply.getGtClientId(), "【棉花糖】设备初始化申请", "同意", PushUtils.buildJson("statusType", "agreed" + old).toString()); if(equipment.getEquimentType().equals("280")){ equipmentService.sentMessage(clientId,PushUtils.buildJson("endDate",String.valueOf(equipment.getEndDate().getTime()) ).toString()); PushUtils.push(equipmentApply.getGtClientId(), "", "", PushUtils.buildJson("endDate",String.valueOf(equipment.getEndDate().getTime()) ).toString()); } }else{ TEquipment equipment = new TEquipment(); equipment.setCreateDate(new Date()); equipment.setModifyDate(new Date()); equipment.setClientId(clientId); equipment.setManagerId(equipmentApply.getManagerId()); equipment.setAdminId(adminId); equipment.setAdminLevel(adminLevel); equipment.setGtClientId(gtClientId); equipment.setAdminUserName(adminUserName); equipment.setIsUsing(true); equipment.setIsNetWork(true); equipment.setGuestPwd("123456"); equipment.setAdminPwd("123456"); equipment.setChannel("1"); equipment.setProductTotal(0); //设置默认规则 equipment.setTimeRuleId(Long.valueOf(1)); if(equimentType.equals("MG320-1")){ equipment.setEquimentType("MG320"); }else { equipment.setEquimentType(equimentType); } if(equipmentApply.getEquimentType().equals("MG330")){ equipment.setEquimentType("MG330"); } if(!StringUtils.isEmpty(equimentType)&&equimentType.equals("MG280")){ Long monthBegin = getMonthBegin(new Date()); long time = new Date().getTime(); if(time query3 = Wrappers.lambdaQuery(); query3.eq(TEquipment::getClientId,clientId); List list1 = equipmentService.list(query3); try { if(list1.size()>0){ TEquipment tEquipment = list1.get(0); esTEquipmentService.insertData(tEquipment); } }catch (Exception e) { e.printStackTrace(); } TEquipmentDesc equipmentDesc = new TEquipmentDesc(); equipmentDesc.setEquipmentId(list1.get(0).getId()); equipmentDescService.save(equipmentDesc); } //获取设备的id // Long equipmentId = equipmentService.findByClientId(clientId).getId(); LambdaQueryWrapper query1 = Wrappers.lambdaQuery(); query1.eq(TEquipment::getClientId,clientId); List list1 = equipmentService.list(query1); Long equipmentId = list1.get(0).getId(); // if (!productService.exists(Filter.eq("equipmentId", equipmentId))) { if (true) { if(equipmentApply.getEquimentType()!=null&&equipmentApply.getEquimentType().equals("MG280")){ saveProductMG280(equipmentId); }else if(equipmentApply.getEquimentType()!=null&&equipmentApply.getEquimentType().equals("MG320-1")){ saveProductMG1(equipmentId); } else{ saveProduct(equipmentId); } } if(String.valueOf(adminId).equals("3")||String.valueOf(adminId).equals("31")||String.valueOf(adminId).equals("506")||String.valueOf(adminId).equals("1090")){ //自动设置分销 setProportion(adminId,equipmentId,clientId); } } else if (status.equals("rejected")) { equipmentApply.setStatusType(2); equipmentService.sentMessage(equipmentApply.getClientId(),PushUtils.buildJson("statusType", "rejected").toString()); // PushUtils.push(equipmentApply.getGtClientId(), "【棉花糖】设备初始化申请", "拒绝", PushUtils.buildJson("statusType", "rejected").toString()); } equipmentApplyService.updateById(equipmentApply); } } } } private void setProportion(Long adminId,Long equipmentId,String clientId) { //先找到原账户的分销 LambdaQueryWrapper query3 = Wrappers.lambdaQuery(); query3.eq(TProportion::getAdminId,adminId); List list3 = proportionService.list(query3); if(list3.size()>0){ TProportion adminProportion = list3.get(0); if(StringUtils.isEmpty(adminProportion.getClientId())){ TProportion equipmentProportion = new TProportion(); equipmentProportion.setCreateDate(new Date()); equipmentProportion.setModifyDate(new Date()); equipmentProportion.setAdminId(adminId); equipmentProportion.setClientId(clientId); equipmentProportion.setEquipmentId(equipmentId); equipmentProportion.setAdminProportion(adminProportion.getAdminProportion()); Integer type = adminProportion.getType(); if(type!=null){ switch (type) { case 1: equipmentProportion.setProportion(adminProportion.getAgencyProportion()); equipmentProportion.setAgencyProportion(new BigDecimal("0.00")); equipmentProportion.setMerchantProportion(new BigDecimal("0.00")); equipmentProportion.setPersonageProportion(new BigDecimal("0.00")); equipmentProportion.setType(0); break; case 2: equipmentProportion.setProportion(adminProportion.getMerchantProportion()); equipmentProportion.setAgencyProportion(adminProportion.getAgencyProportion()); // if(adminProportion.getAgencyProportion().compareTo(new BigDecimal("0.00"))!=0){ // equipmentProportion.setAgencyId(admin.getAgencyId()); // TAdmin byId = adminService.getById(admin.getAgencyId()); // equipmentProportion.setAgencyName(byId.getUsername()); // } equipmentProportion.setAgencyId(adminProportion.getAgencyId()); TAdmin byId = adminService.getById(adminProportion.getAgencyId()); equipmentProportion.setAgencyName(byId.getUsername()); equipmentProportion.setMerchantProportion(new BigDecimal("0.00")); equipmentProportion.setPersonageProportion(new BigDecimal("0.00")); equipmentProportion.setType(1); break; case 3: equipmentProportion.setProportion(adminProportion.getPersonageProportion()); equipmentProportion.setAgencyProportion(adminProportion.getAgencyProportion()); // if(adminProportion.getAgencyProportion().compareTo(new BigDecimal("0.00"))!=0){ // equipmentProportion.setAgencyId(admin.getAgencyId()); // TAdmin byId = adminService.getById(admin.getAgencyId()); // equipmentProportion.setAgencyName(byId.getUsername()); // } equipmentProportion.setAgencyId(adminProportion.getAgencyId()); TAdmin byId1 = adminService.getById(adminProportion.getAgencyId()); equipmentProportion.setAgencyName(byId1.getUsername()); equipmentProportion.setMerchantProportion(adminProportion.getMerchantProportion()); // if(adminProportion.getMerchantProportion().compareTo(new BigDecimal("0.00"))!=0){ // equipmentProportion.setMerchantId(admin.getMerchantId()); // TAdmin byId = adminService.getById(admin.getMerchantId()); // equipmentProportion.setMerchantName(byId.getUsername()); // } equipmentProportion.setMerchantId(adminProportion.getMerchantId()); TAdmin byId2 = adminService.getById(adminProportion.getMerchantId()); equipmentProportion.setMerchantName(byId2.getUsername()); equipmentProportion.setPersonageProportion(new BigDecimal("0.00")); equipmentProportion.setType(2); break; } boolean save = proportionService.save(equipmentProportion); } } } } /** * 添加产品 * * @param id */ private void saveProduct(Long id) { String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09", "心之守护-A10", "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18"}; for (int i = 0; i < str.length; i++) { TProduct product = new TProduct(); product.setCreateDate(new Date()); product.setModifyDate(new Date()); product.setEquipmentId(id); String[] split = str[i].split("-"); product.setProductName(split[0]); product.setNo(split[1]); product.setRmbPrice(BigDecimal.ZERO); product.setCodePrice(BigDecimal.ZERO); productService.save(product); } } private void saveProductMG280(Long id) { String[] str = { "水中芙蓉-A05", "水中芙蓉mini-A31", "烈焰红唇-A06", "烈焰红唇mini-A32", "夏日爱恋-A11", "夏日爱恋mini-A33", "冰美人-A12", "冰美人mini-A34", "彩色精灵-A17", "彩色精灵mini-A35"}; for (int i = 0; i < str.length; i++) { TProduct product = new TProduct(); product.setCreateDate(new Date()); product.setModifyDate(new Date()); product.setEquipmentId(id); String[] split = str[i].split("-"); product.setProductName(split[0]); product.setNo(split[1]); product.setRmbPrice(BigDecimal.ZERO); product.setCodePrice(BigDecimal.ZERO); productService.save(product); } } private void saveProductMG1(Long id) { String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09", "心之守护-A10", "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18", "精灵蝶梦-A19","夏日倾城-A20","百花齐放-A21","蜂缠蝶恋-A22","豆蔻年华-A23","星空幻想-A24","坠入星空-A25","雪花飞舞-A26","春暖花开-A27","花飞蝶舞-A28", "花样年华-A29","心花怒放-A30"}; for (int i = 0; i < str.length; i++) { TProduct product = new TProduct(); product.setCreateDate(new Date()); product.setModifyDate(new Date()); product.setEquipmentId(id); String[] split = str[i].split("-"); product.setProductName(split[0]); product.setNo(split[1]); product.setRmbPrice(BigDecimal.ZERO); product.setCodePrice(BigDecimal.ZERO); productService.save(product); } } private void saveProductMG12(Long id) { String[] str = { "精灵蝶梦-A19","夏日倾城-A20","百花齐放-A21","蜂缠蝶恋-A22","豆蔻年华-A23","星空幻想-A24" ,"坠入星空-A25","雪花飞舞-A26","春暖花开-A27","花飞蝶舞-A28","花样年华-A29","心花怒放-A30"}; for (int i = 0; i < str.length; i++) { TProduct product = new TProduct(); product.setEquipmentId(id); product.setCreateDate(new Date()); product.setModifyDate(new Date()); String[] split = str[i].split("-"); product.setProductName(split[0]); product.setNo(split[1]); product.setRmbPrice(BigDecimal.ZERO); product.setCodePrice(BigDecimal.ZERO); productService.save(product); } } private void saveProductMG22(Long id) { String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09", "心之守护-A10", "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18", "精灵蝶梦-A19","蜂缠蝶恋-A22","坠入星空-A25","花飞蝶舞-A28"}; for (int i = 0; i < str.length; i++) { TProduct product = new TProduct(); product.setCreateDate(new Date()); product.setModifyDate(new Date()); product.setEquipmentId(id); String[] split = str[i].split("-"); product.setProductName(split[0]); product.setNo(split[1]); product.setRmbPrice(BigDecimal.ZERO); product.setCodePrice(BigDecimal.ZERO); productService.save(product); } } private void saveProductMG26(Long id) { String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09", "心之守护-A10", "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18", "精灵蝶梦-A19","蜂缠蝶恋-A22","坠入星空-A25","花飞蝶舞-A28", "夏日倾城-A20", "雪花飞舞-A26", "豆蔻年华-A23", "花样年华-A29"}; for (int i = 0; i < str.length; i++) { TProduct product = new TProduct(); product.setCreateDate(new Date()); product.setModifyDate(new Date()); product.setEquipmentId(id); String[] split = str[i].split("-"); product.setProductName(split[0]); product.setNo(split[1]); product.setRmbPrice(BigDecimal.ZERO); product.setCodePrice(BigDecimal.ZERO); productService.save(product); } } /** * 获取指定日期所在月份开始的时间戳 * @param date 指定日期 * @return */ public static Long getMonthBegin(Date date) { Calendar c = Calendar.getInstance(); c.setTime(date); //设置为10号,当前日期既为本月10号 c.set(Calendar.DAY_OF_MONTH, 10); //将小时至0 c.set(Calendar.HOUR_OF_DAY, 0); //将分钟至0 c.set(Calendar.MINUTE, 0); //将秒至0 c.set(Calendar.SECOND,0); //将毫秒至0 c.set(Calendar.MILLISECOND, 0); // 获取本月第一天的时间戳 return c.getTimeInMillis(); } public static Date nextMonthDate() { Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.DAY_OF_MONTH,10); //将小时至0 calendar.set(Calendar.HOUR_OF_DAY, 0); //将分钟至0 calendar.set(Calendar.MINUTE, 0); //将秒至0 calendar.set(Calendar.SECOND,0); //将毫秒至0 calendar.set(Calendar.MILLISECOND, 0); calendar.add(Calendar.MONTH,1); return calendar.getTime(); } /** *改花型 * @param * @return */ @RequestMapping(value = "/updateFlowers.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8") @ResponseBody public String updateFlowers(String clientId,String number){ LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list = equipmentService.list(query); TEquipment equipment = list.get(0); if(equipment!=null){ Long id = equipment.getId(); //修改花型记录数目 TEquipmentDesc equipmentDesc = equipmentDescService.getById(id); if(equipmentDesc!=null){ equipmentDesc.setFlowers(number); equipmentDescService.updateById(equipmentDesc); }else { TEquipmentDesc equipmentDesc1 = new TEquipmentDesc(); equipmentDesc1.setEquipmentId(id); equipmentDesc1.setFlowers(number); equipmentDescService.save(equipmentDesc1); } //删除旧花型 // List filters = new ArrayList<>(); // filters.add(Filter.eq("equipmentId", id)); // List list = productService.findList(null, filters, null); LambdaQueryWrapper queryProduct = Wrappers.lambdaQuery(); queryProduct.eq(TProduct::getEquipmentId,equipment.getId()); List productList = productService.list(queryProduct); for(TProduct product : productList){ productService.removeById(product.getId()); } //创建花型 if(number.equals("18")){ saveProduct(id); } if(number.equals("22")){ saveProductMG22(id); } if(number.equals("26")){ saveProductMG26(id); } if(number.equals("30")){ saveProductMG1(id); } // return JsonMessage.success("success"); return "success"; }else { // return JsonMessage.success("error"); return "error"; } } /** * 设备类型 开机时上传 * * @param clientId 个推 * @return */ @RequestMapping(value = "/equimentType.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8") @ResponseBody public String equimentType(String clientId, String equimentType){ if(!StringUtils.isEmpty(equimentType)){ LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list = equipmentService.list(query); TEquipment equipment = list.get(0); equipment.setEquimentType(equimentType); equipmentService.updateById(equipment); } // return JsonMessage.success("success"); return "success"; } /** * 设备地址 开机时上传 * @param clientId 个推 * @return */ @RequestMapping(value = "/equimentArea.htm", method = RequestMethod.GET, produces = "text/html;charset=utf-8") @ResponseBody public String equimentArea(String clientId, String longitude, String latitude, String fullName){ if(!StringUtils.isEmpty(longitude)&&!StringUtils.isEmpty(latitude)&&!StringUtils.isEmpty(fullName)){ LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list = equipmentService.list(query); TEquipment equipment = list.get(0); equipment.setLatitude(Double.valueOf(latitude)); equipment.setLongitude(Double.valueOf(longitude)); equipment.setFullName(fullName+"-"); equipmentService.updateById(equipment); // return JsonMessage.success("success"); return "success"; } // return JsonMessage.success("error"); return "error"; } /** * 商品调价 */ @RequestMapping(value = "/updateProduct.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8") @ResponseBody public String updateProduct(@RequestBody List productVos) { Double f=0.00; int num=0; int n=0; HashSet price = new HashSet(); HashSet minprice = new HashSet(); for (ProductVo product : productVos) { String clientId = product.getClientId(); LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list = equipmentService.list(query); TEquipment equipment = list.get(0); Long id = equipment.getId(); if(StringUtils.isNotEmpty(product.getShowType())){ // productService.updateByClientID2(id, product.getRmbPrice(), product.getCodePrice(), product.getProductName(), product.getSellStatus(),product.getShowType()); LambdaQueryWrapper queryProduct = Wrappers.lambdaQuery(); queryProduct.eq(TProduct::getEquipmentId,equipment.getId()); queryProduct.eq(TProduct::getProductName,product.getProductName()); List productList = productService.list(queryProduct); TProduct tProduct = productList.get(0); tProduct.setRmbPrice(BigDecimal.valueOf(product.getRmbPrice())); tProduct.setCodePrice(BigDecimal.valueOf(product.getCodePrice())); tProduct.setShowType(product.getShowType()); tProduct.setSellStatus(product.getSellStatus()); productService.updateById(tProduct); }else { LambdaQueryWrapper queryProduct = Wrappers.lambdaQuery(); queryProduct.eq(TProduct::getEquipmentId,equipment.getId()); queryProduct.eq(TProduct::getProductName,product.getProductName()); List productList = productService.list(queryProduct); TProduct tProduct = productList.get(0); tProduct.setRmbPrice(BigDecimal.valueOf(product.getRmbPrice())); tProduct.setCodePrice(BigDecimal.valueOf(product.getCodePrice())); tProduct.setSellStatus(product.getSellStatus()); productService.updateById(tProduct); // productService.updateByClientID(id, product.getRmbPrice(), product.getCodePrice(), product.getProductName(), product.getSellStatus()); } } // return JsonMessage.success("调价成功"); return "调价成功"; } public Double tran(Double d){ return new BigDecimal(d).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue(); } public Double tran2(Double d){ return new BigDecimal(d).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); } /** * 密码修改 * * @param clientId 设备个推Id * @param pwdType 密码类型 1d代表修adminPwd,0代表guestPwd * @return * @Param pwd 密码内容 */ @RequestMapping(value = "/updatePwd.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8") @ResponseBody public String updatePwd(String clientId, String pwdType, String pwd) { LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list = equipmentService.list(query); TEquipment equipment = list.get(0); if (equipment != null) { if (!StringUtils.isEmpty(pwdType)) { switch (pwdType) { case "1": equipment.setAdminPwd(pwd); break; case "0": equipment.setGuestPwd(pwd); break; } equipmentService.updateById(equipment); // return JsonMessage.success("更新密码成功"); return "更新密码成功"; } } // return JsonMessage.error("更新密码失败"); return "更新密码失败"; } /** * 设备获取密码 */ @GetMapping(value = "/getPwd", produces = "text/html;charset=utf-8") @ResponseBody public String getPwd(String clientId) { if(StringUtils.isEmpty(clientId)){ return null; } LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list = equipmentService.list(query); TEquipment equipment = list.get(0); Map map = new HashMap<>(); // map.put("adminUserName",equipment.getAdminUserName()); map.put("adminPwd",equipment.getAdminPwd()); map.put("guestPwd",equipment.getGuestPwd()); JSONObject jsonObject = new JSONObject(); jsonObject.put("code", 0); jsonObject.put("data", JSONObject.toJSON(map).toString()); jsonObject.put("errmsg", ""); return jsonObject.toJSONString(); } /** * 修改支付方式 * * @param clientId * @param payType: 无需支付 * 线上支付 * 线下支付 * 线上/线下 * @return */ @RequestMapping(value = "/updatePayType.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8") @ResponseBody public String updatePayType(String clientId, String payType) { LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list = equipmentService.list(query); TEquipment equipment = list.get(0); if (equipment == null) { // return JsonMessage.error("修改支付方式失败"); return "修改支付方式失败"; } equipment.setPayType(0); equipmentService.updateById(equipment); return "修改成功"; // return JsonMessage.success("修改成功"); } /** * 日志上传 */ @RequestMapping(value = "/sendLog.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8") @ResponseBody public String uploadFile(HttpServletRequest request, HttpServletResponse response, String fileName) throws Exception{ // String fileName = request.getParameter("fileName"); // log.info("filename:"+fileName); // String fileName ="shafei.xls"; // file1.length(); // String name = request.getParameter("inputName"); String fileFullPath = "/home/hboxs/log/" + fileName+".txt"; // String fileFullPath = "/root/uploadfile/apache-tomcat-8.5.42/" + fileName; InputStream input = null; FileOutputStream fos = null; try { input = request.getInputStream(); File file = new File("/home/hboxs/log/"); if(!file.exists()){ file.mkdirs(); } fos = new FileOutputStream(fileFullPath); int size = 0; byte[] buffer = new byte[1024]; while ((size = input.read(buffer,0,1024)) != -1) { fos.write(buffer, 0, size); } //响应信息 json字符串格式 Map responseMap = new HashMap(); responseMap.put("flag", true); //生成响应的json字符串 String jsonResponse = JSONObject.toJSONString(responseMap); sendResponse(jsonResponse,response); } catch (IOException e) { //响应信息 json字符串格式 Map responseMap = new HashMap(); responseMap.put("flag", false); responseMap.put("errorMsg", e.getMessage()); String jsonResponse = JSONObject.toJSONString(responseMap); sendResponse(jsonResponse,response); } finally{ if(input != null){ input.close(); } if(fos != null){ fos.close(); } } return null; } /** * 返回响应 * * @throws Exception */ private void sendResponse(String responseString,HttpServletResponse response) throws Exception { response.setContentType("application/json;charset=UTF-8"); PrintWriter pw = null; try { pw = response.getWriter(); pw.write(responseString); pw.flush(); } finally { IOUtils.closeQuietly(pw); } } /** * 脱离系统 * * @param clientId * @return */ @RequestMapping(value = "/separate.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8") @ResponseBody public String separate(String clientId) { LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list = equipmentService.list(query); TEquipment equipment = list.get(0); if (equipment == null) { // return "该设备不存在"; return "该设备不存在"; } equipmentService.sentMessage(clientId,PushUtils.buildJson("tuoji", "0").toString()); // PushUtils.push(equipment.getGtClientId(), "", "", PushUtils.buildJson("tuoji", "0").toString()); if("xxx".equals(equipment.getClientId().substring(equipment.getClientId().length()-3,equipment.getClientId().length()))){ // return JsonMessage.success("脱离成功"); return "脱离成功"; } equipment.setClientId(equipment.getClientId() + "xxx"); equipmentService.updateById(equipment); // return JsonMessage.success("脱离成功"); return "脱离成功"; } /** * 脱离系统 * * @param clientId * @return */ @RequestMapping(value = "/updateClientId", method = RequestMethod.POST) @ResponseBody public String updateClientId(String clientId) { LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list = equipmentService.list(query); TEquipment equipment = list.get(0); if (equipment == null) { return "该设备不存在"; } // equipmentService.sentMessage(clientId,PushUtils.buildJson("tuoji", "0").toString()); // PushUtils.push(equipment.getGtClientId(), "", "", PushUtils.buildJson("tuoji", "0").toString()); if("xxx".equals(equipment.getClientId().substring(equipment.getClientId().length()-3,equipment.getClientId().length()))){ return "脱离成功"; } equipment.setClientId(equipment.getClientId() + "xxx"); equipment.setManagerId(null); equipmentService.updateById(equipment); return "脱离成功"; } /** * 修改设备联系人名称以及电话 */ @RequestMapping(value = "/updateContractPN.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8") @ResponseBody public String updateContractPN(String clientId, String contactName, String contactPhone) { LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list = equipmentService.list(query); TEquipment equipment = list.get(0); if (equipment == null) { // return JsonMessage.error("该设备不存在"); return "该设备不存在"; } equipment.setContactName(contactName); equipment.setContactPhone(contactPhone); equipmentService.updateById(equipment); // return JsonMessage.success("修改成功"); return "修改成功"; } /** * 设备上传公司电话 */ @RequestMapping(value = "/sentCompanyPhone.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8") @ResponseBody public String sentCompanyPhone(String clientId, String companyPhone) { LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list = equipmentService.list(query); TEquipment equipment = list.get(0); if (equipment == null) { // return JsonMessage.error("该设备不存在"); return "该设备不存在"; } equipment.setCompanyPhone(companyPhone); equipmentService.updateById(equipment); // return JsonMessage.success("修改成功"); return "修改成功"; } /** * 获取二维码图片 */ @RequestMapping(value = "/getQrCodeImgUrl.htm", method = RequestMethod.GET, produces = "text/html;charset=utf-8") @ResponseBody public String getQrCodeImgUrl(String clientId) { LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list = equipmentService.list(query); TEquipment equipment = list.get(0); if (equipment == null) { return "404"; } return "400"; } /** * 上传4G卡号 */ @RequestMapping(value = "/sentSimNo.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8") @ResponseBody public String sentSimNo(String clientId, String simNo) { LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list = equipmentService.list(query); TEquipment equipment = list.get(0); if (equipment == null) { // return JsonMessage.error("该设备不存在"); return "该设备不存在"; } equipment.setSimNo(simNo); equipmentService.updateById(equipment); // return JsonMessage.success("修改成功"); return "修改成功"; } /** * 上传机器的apk版本 */ @RequestMapping(value = "/sendApkVersion.htm", method = RequestMethod.GET, produces = "text/html;charset=utf-8") @ResponseBody public String sendApkVersion(String clientId, String apkVersion) { LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list = equipmentService.list(query); TEquipment equipment = list.get(0); if (equipment == null) { return "该设备不存在"; } equipment.setApkVersion(apkVersion); equipmentService.updateById(equipment); return "success"; } /** * 上传机器的做糖状态 */ @RequestMapping(value = "/equipmentStatus.htm", method = RequestMethod.GET, produces = "text/html;charset=utf-8") @ResponseBody public String equipmentStatus(String clientId, String status) { LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list = equipmentService.list(query); TEquipment equipment = list.get(0); if (equipment == null) { return "该设备不存在"; } TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId()); //机器状态;0:空闲,1:在做糖; equipmentDesc.setStatus(status); equipmentDescService.updateById(equipmentDesc); return "success"; } /** * 修改设备状态 * * @param clientId * @param eqeStatus 设备状态1开 0关 * @return */ @RequestMapping(value = "/updateEqeStatus.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8") @ResponseBody public String updateEqeStatus(String clientId, Integer eqeStatus) { LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list = equipmentService.list(query); TEquipment equipment = list.get(0); if (equipment == null) { return "该设备不存在"; } if(eqeStatus!=null){ equipment.setEqeStatus(eqeStatus); equipment.setModifyDate(new Date()); equipmentService.updateById(equipment); } return "修改成功"; } /** * 新修改设备状态 * * @param clientId * @param eqeStatus 设备状态1开 0关 * @return */ @RequestMapping(value = "/updateEqeStatusNew.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8") @ResponseBody public String updateEqeStatusNew(String clientId, Integer eqeStatus,String netTime) { LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list = equipmentService.list(query); TEquipment equipment = list.get(0); if (equipment == null) { // return JsonMessage.error("该设备不存在"); return "该设备不存在"; } if(eqeStatus!=null){ equipment.setNetwork(netTime); equipment.setEqeStatus(eqeStatus); equipmentService.updateById(equipment); } // return JsonMessage.success("修改成功"); return "修改成功"; } /** * 修改设备锁定状态 * * @param clientId * @param block * @return */ @RequestMapping(value = "/updateBlock.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8") @ResponseBody public String updateBlock(String clientId, Boolean block) { LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list = equipmentService.list(query); TEquipment equipment = list.get(0); if (equipment == null) { // return JsonMessage.error("该设备不存在"); return "该设备不存在"; } equipment.setIsBlocked(block); equipmentService.updateById(equipment); return "修改成功"; } /** * 修改设备睡眠状态 * * @param clientId * @param is_sleep * @return */ @RequestMapping(value = "/updateSleep.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8") @ResponseBody public String updateSleep(String clientId, Boolean is_sleep) { LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list = equipmentService.list(query); TEquipment equipment = list.get(0); if (equipment == null) { return "该设备不存在"; } if(is_sleep!=null){ equipment.setIsSleep(is_sleep); equipmentService.updateById(equipment); } return "修改成功"; } /** * 修改设备生产棉花糖个数 * * @param clientId * @param productTotal * @return */ @RequestMapping(value = "/updateProductTotal.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8") @ResponseBody public String updateProductTotal(String clientId, Integer productTotal) { LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list = equipmentService.list(query); TEquipment equipment = list.get(0); if (equipment == null) { return "该设备不存在"; } Integer total = equipment.getProductTotal(); if (total == null) { total = 0; } equipment.setProductTotal(total + productTotal); equipmentService.updateById(equipment); return "修改成功"; } /** * 修改设备共同参数/进阶参数 * * @param * @return */ // @PostMapping(value = "/updateParam/{code}/{clientId}", produces = "application/json;charset=UTF-8") // @ResponseBody // public JsonMessage updateParam(@PathVariable Integer code, @PathVariable String clientId, @RequestBody List commonParamVos) { // Equipment equipment = equipmentService.findByClientId(clientId); // if (equipment == null) { // return JsonMessage.error("设备不存在"); // } // String param = JSONArray.toJSONString(commonParamVos); // if (code == 0) { // equipment.setCommonParameters(param); // } else { // equipment.setAdvancedParameters(param); // } // equipmentService.update(equipment); // return JsonMessage.success("修改成功"); // } /** * 修改设备共同参数/进阶参数 * code 0:通用参数;1:进阶参数;2:调试页参数 * @param * @return */ @RequestMapping(value = "/updateParamNew", method = RequestMethod.POST) // @PostMapping(value = "/updateParamNew", produces = "text/html;charset=utf-8") @ResponseBody public String updateParamNew(Integer code, String clientId, @RequestBody List commonParamVos) { LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list = equipmentService.list(query); TEquipment equipment = list.get(0); if (equipment == null) { return "设备不存在"; } if(commonParamVos.size()<=0){ return "参数为空"; } LambdaQueryWrapper queryParameters = Wrappers.lambdaQuery(); queryParameters.eq(TParameters::getClientId,clientId); queryParameters.eq(TParameters::getStatus,code); queryParameters.eq(TParameters::getEquipmentId,equipment.getId()); List list1 = parametersService.list(queryParameters); if(list1.size()>0){ for(TParameters parameters:list1){ //删除旧的参数 parametersService.removeById(parameters.getId()); } } Date date = new Date(); for(CommonParamVo commonParamVo:commonParamVos){ TParameters parameters = new TParameters(); parameters.setVal(commonParamVo.getVal()); parameters.setName(commonParamVo.getName()); parameters.setStatus(String.valueOf(code)); parameters.setClientId(clientId); parameters.setEquipmentId(equipment.getId()); parameters.setCreateDate(date); parameters.setModifyDate(date); parametersService.save(parameters); } return "修改成功"; } /** * 修改单个设备共同参数/进阶参数 * code 0:通用参数;1:进阶参数;2:调试页参数 * @param * @return */ @PostMapping(value = "/updateAloneParam.htm", produces = "text/html;charset=utf-8") @ResponseBody public String updateAloneParam(String code, String clientId,String name,String val) { LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list = equipmentService.list(query); TEquipment equipment = list.get(0); if (equipment == null) { // return JsonMessage.error("设备不存在"); return "设备不存在"; } // ArrayList filters = new ArrayList<>(); // filters.add(Filter.eq("status", code)); // filters.add(Filter.eq("clientId", clientId)); // filters.add(Filter.eq("equipmentId", equipment.getId())); // filters.add(Filter.eq("name", name)); // List list = parametersService.findList(null, filters, null); LambdaQueryWrapper queryParameters = Wrappers.lambdaQuery(); queryParameters.eq(TParameters::getClientId,clientId); queryParameters.eq(TParameters::getStatus,code); queryParameters.eq(TParameters::getName,name); queryParameters.eq(TParameters::getEquipmentId,equipment.getId()); List list1 = parametersService.list(queryParameters); if(list1.size()>0){ TParameters parameters = list1.get(0); parameters.setVal(val); parameters.setModifyDate(new Date()); parametersService.updateById(parameters); } return "修改成功"; } /** * 获取机器列表 */ @RequestMapping(value = "/getEquipmentList.htm", method = RequestMethod.GET, produces = "application/json;charset=UTF-8") @ResponseBody public String getByAdminAndProduct(String adminId,String name) { JSONObject jsonObject = new JSONObject(); if(StringUtils.isEmpty(adminId)){ jsonObject.put("code", 1); jsonObject.put("errmsg", "adminId为空"); return jsonObject.toJSONString(); } if(StringUtils.isEmpty(name)){ jsonObject.put("code", 1); jsonObject.put("errmsg", "name为空"); return jsonObject.toJSONString(); } // Admin admin = adminService.find(Long.valueOf(adminId)); TAdmin admin = adminService.getById(adminId); if(!admin.getUsername().equals(name)){ jsonObject.put("code", 1); jsonObject.put("errmsg", "name与adminId不匹配"); return jsonObject.toJSONString(); } List list = new ArrayList<>(); LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getAdminId,Long.valueOf(adminId)); List equipmentList = equipmentService.list(query); // List equipmentList = equipmentService.findByAdminId(Long.valueOf(adminId)); for(TEquipment equipment:equipmentList){ EquipmentDTO equipmentDTO = new EquipmentDTO(); equipmentDTO.setClientId(equipment.getClientId()); equipmentDTO.setSn(equipment.getSn()); equipmentDTO.setName(equipment.getName()); equipmentDTO.setLatitude(equipment.getLatitude()); equipmentDTO.setLongitude(equipment.getLongitude()); equipmentDTO.setFullName(equipment.getFullName()); equipmentDTO.setEqeStatus(equipment.getEqeStatus()); list.add(equipmentDTO); } jsonObject.put("code", 0); jsonObject.put("rows", JsonUtils.toJson(list)); jsonObject.put("errmsg", ""); jsonObject.put("total", list.size()); return jsonObject.toJSONString(); } /** * 获取商品信息 */ @RequestMapping(value = "/getProductions.htm", method = RequestMethod.GET, produces = "text/html;charset=utf-8") @ResponseBody public String getProductions(String adminId,String clientId) { JSONObject jsonObject = new JSONObject(); if(StringUtils.isEmpty(adminId)){ jsonObject.put("code", 1); jsonObject.put("errmsg", "adminId为空"); return jsonObject.toJSONString(); } if(StringUtils.isEmpty(clientId)){ jsonObject.put("code", 1); jsonObject.put("errmsg", "clientId为空"); return jsonObject.toJSONString(); } // KafkaProperties.Admin admin = adminService.find(Long.valueOf(adminId)); TAdmin admin = adminService.getById(Long.valueOf(adminId)); LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list1 = equipmentService.list(query); TEquipment equipment = list1.get(0); // Equipment equipment = equipmentService.findByClientId(clientId); if(!equipment.getAdminId().toString().equals(admin.getId().toString())){ jsonObject.put("code", 1); jsonObject.put("errmsg", "clientId与adminId不匹配"); return jsonObject.toJSONString(); } // ArrayList filters = new ArrayList<>(); // filters.add(Filter.eq("equipmentId", equipment.getId())); // List products = productService.findList(null, filters, null); List list = new ArrayList<>(); LambdaQueryWrapper queryProduct = Wrappers.lambdaQuery(); queryProduct.eq(TProduct::getEquipmentId,equipment.getId()); List products = productService.list(queryProduct); // TProduct tProduct = products.get(0); for (TProduct product:products){ list.add(product.getProductName()); } jsonObject.put("code", 0); jsonObject.put("productions", JsonUtils.toJson(list)); jsonObject.put("errmsg", ""); jsonObject.put("total", list.size()); return jsonObject.toJSONString(); } /** * 根据设备编号获取商品信息 */ @RequestMapping(value = "/getproducts", method = RequestMethod.GET, produces = "text/html;charset=utf-8") @ResponseBody public String getproducts(String clientId) { JSONObject jsonObject = new JSONObject(); if(StringUtils.isEmpty(clientId)){ jsonObject.put("code", 1); jsonObject.put("errmsg", "clientId为空"); return jsonObject.toJSONString(); } LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list1 = equipmentService.list(query); TEquipment equipment = list1.get(0); LambdaQueryWrapper queryProduct = Wrappers.lambdaQuery(); queryProduct.eq(TProduct::getEquipmentId,equipment.getId()); List products = productService.list(queryProduct); // TProduct tProduct = products.get(0); for (TProduct product:products){ product.setCreateDate(null); product.setModifyDate(null); } // jsonObject.put("code", 0); // jsonObject.put("productions", JsonUtils.toJson(list)); // jsonObject.put("errmsg", ""); // jsonObject.put("total", list.size()); // return jsonObject.toJSONString(); JSONObject jsonObject1 = new JSONObject(); jsonObject1.put("code", 0); jsonObject1.put("data", JSONObject.toJSON(products).toString()); jsonObject1.put("errmsg", ""); // return jsonObject1.toString(); return JSONObject.toJSON(products).toString(); } // @ApiOperation(value = "分页查询") // @GetMapping("/testPage") // public ResponseModel> testPage(TAdminParam param) { // LambdaQueryWrapper query = Wrappers.lambdaQuery(); // query.eq(TAdmin::getIsEnabled,true); // if(StrUtil.isNotBlank(param.getName())){ // query.like(TAdmin::getName,param.getName()); // } // query.orderByDesc(TAdmin::getApplyStartTime); // Page page = new Page<>(param.getCurrent(), param.getSize(), true); // IPage iPage = tAdminService.page(page, query); // return R.ok(iPage); // } // // @ApiOperation(value = "列表查询") // @GetMapping("/testList") // public ResponseModel> testList(TAdminParam param) { // LambdaQueryWrapper query = Wrappers.lambdaQuery(); // query.eq(TAdmin::getIsEnabled,true); // if(StrUtil.isNotBlank(param.getName())){ // query.like(TAdmin::getName,param.getName()); // } // query.orderByDesc(TAdmin::getApplyStartTime); // List list = tAdminService.list(query); // return R.ok(list); // } // @ApiOperation(value = "返回失败") // @GetMapping("/testError") // public ResponseModel> testError(boolean success) { // if(success){ // return R.ok(); // }else{ // return R.fail(ResponseCodesEnum.B0001,"你的错误信息"); // } // } /** *是否启用物料监控功能 * 0:不启用,1:启用 * @param clientId 个推 * @return */ @RequestMapping(value = "/updateMaterialStatus.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8") @ResponseBody public String updateMaterialUse(String clientId, String isMaterialUse){ if(!StringUtils.isEmpty(clientId)&&!StringUtils.isEmpty(isMaterialUse)){ LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list1 = equipmentService.list(query); TEquipment equipment = list1.get(0); TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId()); equipmentDesc.setIsMaterialUse(isMaterialUse); equipmentDescService.updateById(equipmentDesc); // return JsonMessage.success("success"); return "success"; } // return JsonMessage.error("error"); return "error"; } //修改优惠码状态 @RequestMapping(value = "/updateCode.htm", method = RequestMethod.GET, produces = "text/html;charset=utf-8") @ResponseBody public String CardPay(String code, String clientId) { LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list = equipmentService.list(query); TEquipment equipment = list.get(0); // List filters = new ArrayList<>(); // if(code.length()<7){ // filters.add(Filter.in("adminId", equipment.getAdminId())); // } // filters.add(Filter.in("code", code)); // List list = promoCodeService.findList(null, filters, null); // PromoCode promoCode = list.get(0); LambdaQueryWrapper query1 = Wrappers.lambdaQuery(); query1.eq(TPromoCode::getAdminId,equipment.getAdminId()); query1.eq(TPromoCode::getCode,code); List list1 = promoCodeService.list(query1); TPromoCode promoCode = list1.get(0); promoCode.setIsUse("1"); promoCode.setUseBy(equipment.getName()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String time = sdf.format(new Date()); promoCode.setUseDate(time); promoCodeService.updateById(promoCode); // return JsonMessage.success("success"); return "success"; } //验证优惠码 @RequestMapping(value = "/selectCode.htm", method = RequestMethod.GET, produces = "text/html;charset=utf-8") @ResponseBody public String selectCode(String code, String clientId) { LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list = equipmentService.list(query); TEquipment equipment = list.get(0); //验证优惠码 LambdaQueryWrapper query1 = Wrappers.lambdaQuery(); query1.eq(TPromoCode::getCode,code); List codeList = promoCodeService.list(query1); TPromoCode promoCode = new TPromoCode(); if (codeList.size() == 0) { //不存在 // return JsonMessage.success("1"); return "1"; } for (TPromoCode cod : codeList) { if(!cod.getAdminId().equals("1")){ String adminId = cod.getAdminId(); String adminId1 = String.valueOf(equipment.getAdminId()); if (adminId.equals(adminId1)) { promoCode = cod; } }else{ promoCode = cod; } } if(promoCode.getAdminId()==null){ //不是本机 // return JsonMessage.success("3"); return "3"; } Date lastUseDate = null; if (promoCode != null) { lastUseDate = promoCode.getLastUseDate(); } if (lastUseDate != null && lastUseDate.getTime() < ((new Date()).getTime())) { promoCode.setIsUse("2"); promoCodeService.updateById(promoCode); //过期 // return JsonMessage.success("4"); return "4"; } if (promoCode.getId() == null) { //不存在 // return JsonMessage.success("1"); return "1"; } if (promoCode.getIsUse().equals("1")) { //被使用 // return JsonMessage.success("2"); return "2"; } if(!promoCode.getAdminId().equals("1")){ if (String.valueOf(equipment.getAdminId()).equals(promoCode.getAdminId())) { } else { //不是本机 // return JsonMessage.success("3"); return "3"; } } if (promoCode.getDiscount() == null) { //旧优惠码 // return JsonMessage.success("0"); return "0"; } if (promoCode.getDiscount() != null && promoCode.getDiscount() == 0) { //0折 // return JsonMessage.success("0"); return "0"; } // return JsonMessage.success("success"); return "success"; } //修改机器的分销 @RequestMapping(value = "/updateProportion.htm", method = RequestMethod.GET, produces = "text/html;charset=utf-8") @ResponseBody public String updateProportion(String clientId) { LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list = equipmentService.list(query); TEquipment equipment = list.get(0); if(equipment!=null&&equipment.getId()!=null){ TAdmin admin = adminService.getById(equipment.getAdminId()); String name = admin.getName(); //查询机器是否已经有设置分销 LambdaQueryWrapper query1 = Wrappers.lambdaQuery(); query1.eq(TProportion::getClientId,equipment.getClientId()); query1.eq(TProportion::getEquipmentId,equipment.getId()); List list1 = proportionService.list(query1); if(list1.size()>0){ //已有 }else { //没有,需要创建 //1,判断是否新机器 // Date createDate = equipment.getCreateDate(); // long time = createDate.getTime(); // DateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // String day= "2022-09-21 23:59:59"; // try { // Date parse = simpleDateFormat.parse(day); // if(time>parse.getTime()){ // return "新机器,不能已此方式生成分销!"; // } // } catch (ParseException e) { // e.printStackTrace(); // } //先找到原账户的分销 LambdaQueryWrapper query2 = Wrappers.lambdaQuery(); query2.eq(TProportion::getAdminId,admin.getId()); List list2 = proportionService.list(query2); if(list2.size()>0){ TProportion adminProportion = list2.get(0); if(StringUtils.isEmpty(adminProportion.getClientId())){ TProportion equipmentProportion = new TProportion(); equipmentProportion.setCreateDate(new Date()); equipmentProportion.setModifyDate(new Date()); equipmentProportion.setAdminId(admin.getId()); equipmentProportion.setClientId(equipment.getClientId()); equipmentProportion.setEquipmentId(equipment.getId()); equipmentProportion.setAdminProportion(adminProportion.getAdminProportion()); Integer type = adminProportion.getType(); switch (type) { case 1: equipmentProportion.setProportion(adminProportion.getAgencyProportion()); equipmentProportion.setAgencyProportion(new BigDecimal("0.00")); equipmentProportion.setMerchantProportion(new BigDecimal("0.00")); equipmentProportion.setPersonageProportion(new BigDecimal("0.00")); equipmentProportion.setType(0); break; case 2: equipmentProportion.setProportion(adminProportion.getMerchantProportion()); equipmentProportion.setAgencyProportion(adminProportion.getAgencyProportion()); // if(adminProportion.getAgencyProportion().compareTo(new BigDecimal("0.00"))!=0){ // equipmentProportion.setAgencyId(admin.getAgencyId()); // TAdmin byId = adminService.getById(admin.getAgencyId()); // equipmentProportion.setAgencyName(byId.getUsername()); // } equipmentProportion.setAgencyId(admin.getAgencyId()); TAdmin byId = adminService.getById(admin.getAgencyId()); equipmentProportion.setAgencyName(byId.getUsername()); equipmentProportion.setMerchantProportion(new BigDecimal("0.00")); equipmentProportion.setPersonageProportion(new BigDecimal("0.00")); equipmentProportion.setType(1); break; case 3: equipmentProportion.setProportion(adminProportion.getPersonageProportion()); equipmentProportion.setAgencyProportion(adminProportion.getAgencyProportion()); // if(adminProportion.getAgencyProportion().compareTo(new BigDecimal("0.00"))!=0){ // equipmentProportion.setAgencyId(admin.getAgencyId()); // TAdmin byId = adminService.getById(admin.getAgencyId()); // equipmentProportion.setAgencyName(byId.getUsername()); // } equipmentProportion.setAgencyId(admin.getAgencyId()); TAdmin byId1 = adminService.getById(admin.getAgencyId()); equipmentProportion.setAgencyName(byId1.getUsername()); equipmentProportion.setMerchantProportion(adminProportion.getMerchantProportion()); // if(adminProportion.getMerchantProportion().compareTo(new BigDecimal("0.00"))!=0){ // equipmentProportion.setMerchantId(admin.getMerchantId()); // TAdmin byId = adminService.getById(admin.getMerchantId()); // equipmentProportion.setMerchantName(byId.getUsername()); // } equipmentProportion.setMerchantId(admin.getMerchantId()); TAdmin byId2 = adminService.getById(admin.getMerchantId()); equipmentProportion.setMerchantName(byId2.getUsername()); equipmentProportion.setPersonageProportion(new BigDecimal("0.00")); equipmentProportion.setType(2); break; } boolean save = proportionService.save(equipmentProportion); } }else { return "原账户没有设置分销!"; } } } return "success"; } /** * * * @param clientId * @return */ @GetMapping(value = "/getManagerId.htm") @ResponseBody public String getManagerId(String clientId){ if(!StringUtils.isEmpty(clientId)){ LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list = equipmentService.list(query); if (list.size()>0) { TEquipment equipment = list.get(0); Long adminId = equipment.getAdminId(); if(adminId!=null){ String managerId = AdminUtils.encrypt(false, adminId); if(StringUtils.isEmpty(equipment.getManagerId())||!equipment.getManagerId().equals(managerId)){ equipment.setManagerId(managerId); equipmentService.save(equipment); } return managerId; } } return "error"; } return "error"; } /** *修改优惠券开关状态 * * @param clientId * @return */ @GetMapping(value = "/updateCouponStatus.htm") @ResponseBody public String updateCouponStatus(String clientId,String couponStatus){ if(!StringUtils.isEmpty(clientId)&&StringUtils.isNotEmpty(couponStatus)){ LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list = equipmentService.list(query); TEquipment equipment = list.get(0); TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId()); equipmentDesc.setCouponStatus(couponStatus); equipmentDescService.updateById(equipmentDesc); TAdmin admin = adminService.getById(equipment.getAdminId()); //同步数据到鲸准 if(admin.getId().toString().equals("372")||admin.getRelationAdminId().equals("372")||admin.getId().toString().equals("639")||admin.getId().toString().equals("238")) { sendCouponStatus(clientId,equipment.getFullName(),equipment.getEqeStatus(),couponStatus); } return "success"; } return "error"; } private void sendCouponStatus(String clientId, String fullName, Integer eqeStatus, String couponStatus) { String url = "http://47.106.13.109:3000/api/listenDeviceStatusChange"; Map map = new HashMap<>(); map.put("clientId",clientId); map.put("address",fullName); map.put("status", String.valueOf(eqeStatus)); if(StringUtils.isEmpty(couponStatus)){ map.put("wxStatus","1"); }else { map.put("wxStatus",couponStatus); } String data = JSON.toJSONString(map); try { String s = HttpClientSslUtils.doPost(url, data); System.out.println("发送鲸准:"+s); } catch (Exception e) { e.printStackTrace(); } } /** * * * @param clientId * @return */ @GetMapping(value = "/getYouHuiPrice.htm") @ResponseBody public String getYouHuiPrice(String clientId){ LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TPrice::getName,"优惠券"); List list = priceService.list(query); if(list.size()>0){ TPrice tPrice = list.get(0); Double price = tPrice.getPrice(); return new BigDecimal(price).setScale(0, RoundingMode.HALF_DOWN).toString(); }else { return "5"; } } /** * 修改商品名称 * * @param clientId 设备个推Id * @param * @return * @Param */ @RequestMapping(value = "/updateProductName.htm", method = RequestMethod.POST) @ResponseBody public String updateProductName(String clientId, Long productId,String oldProductName, String newProductName) { LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); List list = equipmentService.list(query); if(list.size()>0){ TEquipment equipment = list.get(0); if (equipment != null&&equipment.getId()!=null) { TProduct product = productService.getById(productId); product.setName(oldProductName); product.setProductName(newProductName); productService.updateById(product); return "修改成功success!"; } } return "更新失败error"; } /** * 上传机器状态之门的状态: * type(类型,0:外门,1:内门), * status(状态:0:关闭,1:开启) * @param clientId * @return status(状态:0:关闭,1:开启) */ @GetMapping("/updateEquipmentStatus") public ResponseModel updateEquipmentStatus(String clientId, String type, String status){ if(StringUtils.isEmpty(clientId)||StringUtils.isEmpty(type)||StringUtils.isEmpty(status)){ return R.fail(ResponseCodesEnum.A0001,"adminId为空"); } LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); TEquipment equipment = equipmentService.getOnly(query); if(equipment!=null&&equipment.getId()!=null){ if(type.equals("0")){ TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId()); equipmentDesc.setOutDoor(status); equipmentDescService.updateById(equipmentDesc); return R.ok(); }else if(type.equals("1")){ TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId()); equipmentDesc.setInDoor(status); equipmentDescService.updateById(equipmentDesc); return R.ok(); } } return R.fail(ResponseCodesEnum.A0002); } /** * 上传花型显示状态 * @param clientId 设备编号 * @param tProductBean 包含花型编号和状态 * @return */ @RequestMapping(value = "/updateShowGoods", method = RequestMethod.POST) @ResponseBody public String updateShowGoods(@RequestParam String clientId, @RequestBody List tProductBean) { if(StringUtils.isEmpty(clientId)||tProductBean == null) { return "参数为空"; } LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId,clientId); TEquipment equipment = equipmentService.getOnly(query); if (equipment==null) { return "找不到设备信息"; } Long equipmentId = equipment.getId(); ArrayList tProducts = new ArrayList<>(); for (TProductBean productBean : tProductBean) { String no = productBean.getNo(); String showType = productBean.getShowType(); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(TProduct::getEquipmentId,equipmentId); wrapper.eq(TProduct::getNo,no); TProduct product = productService.getOnly(wrapper); product.setShowType(showType); tProducts.add(product); } boolean res = productService.updateBatchById(tProducts); if (!res) { return "error"; } return "success"; } }