From 882190f4e948de2dff647fa0f350b21aaf318115 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=92=BE=E9=85=92?= Date: Mon, 6 Jan 2025 12:20:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=85=85=E5=80=BC=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=8A=A5=E6=96=87=E5=A4=84=E7=90=86=EF=BC=8C=E4=BB=A5?= =?UTF-8?q?=E5=8F=8A=E5=85=85=E5=80=BC=E6=9C=BA=E5=85=85=E5=80=BC=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../consumer/DeviceOtherMsgConsumer.java | 54 ++++++--- .../impl/UserRechargeCardsServiceImpl.java | 114 +++++++----------- 2 files changed, 84 insertions(+), 84 deletions(-) diff --git a/fastbee-gateway/fastbee-mq/src/main/java/com/fastbee/mq/redischannel/consumer/DeviceOtherMsgConsumer.java b/fastbee-gateway/fastbee-mq/src/main/java/com/fastbee/mq/redischannel/consumer/DeviceOtherMsgConsumer.java index d7e4591..716cbda 100644 --- a/fastbee-gateway/fastbee-mq/src/main/java/com/fastbee/mq/redischannel/consumer/DeviceOtherMsgConsumer.java +++ b/fastbee-gateway/fastbee-mq/src/main/java/com/fastbee/mq/redischannel/consumer/DeviceOtherMsgConsumer.java @@ -252,6 +252,7 @@ public class DeviceOtherMsgConsumer { if("startPump".equals(JSONUtil.parseObj(data1).get("action"))) { System.err.println("开阀"); + log.info("设备{}开阀",serialNumber); //开阀-添加灌溉记录 UserIrrigationRecord userIrrigationRecord=new UserIrrigationRecord(); userIrrigationRecord.setDeviceNumber(serialNumber);//设备编码 @@ -319,8 +320,9 @@ public class DeviceOtherMsgConsumer { System.err.println("充值卡金额同步失败"); } } - }else{ + }else if("stopPump".equals(JSONUtil.parseObj(data1).get("action"))){ System.err.println("关阀"); + log.info("设备{}关",serialNumber); //关阀-修改灌溉记录,修改结束时间、灌溉用水量(做差 关阀-开阀用户总累计流量。)查卡号最新一条记录 String cardNumber=dataJson.getStr("cardId");//解析cardId //根据设备编码和卡号获取当前状态为灌溉中的灌溉记录 @@ -378,7 +380,7 @@ public class DeviceOtherMsgConsumer { } //如果是设备刷卡上报的查询报文 if(data1.getStr("action")!=null&& "askMsg".equals(data1.getStr("action"))){ - cardReportHandler(productId,serialNumber,data1); + cardReportHandler(productId,serialNumber,jsonObject); } } @@ -501,37 +503,57 @@ public class DeviceOtherMsgConsumer { * 处理刷卡上报查询报文 */ private void cardReportHandler(Long productId,String serialNumber,JSONObject dataObj){ + JSONObject data = dataObj.getJSONObject("data"); //解析消息 - String cardId=dataObj.getStr("cardId");//卡号 - String areaCode=dataObj.getStr("areaCode");//区域码 - //查询是否有未下发的指令 + String cardId=data.getStr("cardId");//卡号 + String areaCode=data.getStr("areaCode");//区域码 + //先回应代表平台收到了来自设备的查询报文 + Map reply=new HashMap<>(); + reply.put("pakSn",dataObj.getInt("pakSn")); + //默认没有充值的订单 + reply.put("cmd",400); + Map dataValue=new HashMap<>(); + // dataValue.put("cmd",1000); + // data.put("orderNum",item.getId());//订单号 + // dataValue.put("cardId",cardId);//卡号 + // dataValue.put("areaCode",areaCode);//区域码 + // data.put("investBalance",item.getAmount().doubleValue()*100); + // data.put("investWater",rechargecardUser.getWater()*100); + + reply.put("msg",""); + + + //查询是否待充值的订单 List list = new LambdaQueryChainWrapper<>(ngUserRechargeRecordsMapper) .select(NgUserRechargeRecords::getId, NgUserRechargeRecords::getStatus,NgUserRechargeRecords::getAmount) .eq(NgUserRechargeRecords::getCardNumber,cardId) .eq(NgUserRechargeRecords::getStatus,1) .list(); + //如果有待充值的订单 + if(!list.isEmpty()){ + reply.put("cmd",410); + dataValue.put("orderNum",list.get(0).getId());//订单号 + reply.put("data",dataValue); + pubMqttClient.publish(1,true,"hzlink/"+productId+"/"+serialNumber+"/info/reply", JSONUtil.toJsonStr(reply)); + } //如果订单已经支付但并未下发 list.forEach(item->{ //下发指令 - //构建回应 - Map reply=new HashMap<>(); - reply.put("cmd",5300); - Map data=new HashMap<>(); - data.put("cmd",1000); + // 构建回应 + Map recharge=new HashMap<>(); + recharge.put("cmd",1000); + Map data1=new HashMap<>(); data.put("orderNum",item.getId());//订单号 - data.put("cardId",cardId);//卡号 + data.put("cardNum",cardId);//卡号 data.put("areaCode",areaCode);//区域码 data.put("investBalance",item.getAmount().doubleValue()*100); - // data.put("investWater",rechargecardUser.getWater()*100); + data.put("investWater",1*100); reply.put("data",data); //发送回应 - issueInstructionsProducer.receiveDataReportResponse(productId.toString(),serialNumber,JSONUtil.toJsonStr(reply)); + pubMqttClient.publish(1,true,"hzlink/"+productId+"/"+serialNumber+"/cmd/down", JSONUtil.toJsonStr(recharge)); }); - - - } public static void main(String[] args) { diff --git a/fastbee-service/fastbee-rechargecard-service/src/main/java/com/fastbee/rechargecard/service/impl/UserRechargeCardsServiceImpl.java b/fastbee-service/fastbee-rechargecard-service/src/main/java/com/fastbee/rechargecard/service/impl/UserRechargeCardsServiceImpl.java index 6c48982..74a949f 100644 --- a/fastbee-service/fastbee-rechargecard-service/src/main/java/com/fastbee/rechargecard/service/impl/UserRechargeCardsServiceImpl.java +++ b/fastbee-service/fastbee-rechargecard-service/src/main/java/com/fastbee/rechargecard/service/impl/UserRechargeCardsServiceImpl.java @@ -223,38 +223,26 @@ public class UserRechargeCardsServiceImpl implements IUserRechargeCardsService public int updateUserRecharge(RechargecardUser rechargecardUser){ // 根据id查询用户充值卡信息 - UserRechargeCards info = userRechargeCardsMapper.selectUserRechargeCardsByCardnumber(String.valueOf(rechargecardUser.getCardnumber())); - if (info == null) { + // UserRechargeCards info = userRechargeCardsMapper.selectUserRechargeCardsByCardnumber(String.valueOf(rechargecardUser.getCardnumber())); + /*if (info == null) { // 如果没有找到对应的记录,返回0或者一个错误码 - //throw new ServiceException("卡号不存在!"); - UserRechargeCards userRechargeCards=new UserRechargeCards(); - userRechargeCards.setAreaCode(String.valueOf(rechargecardUser.getAreacode())); - userRechargeCards.setCardNumber(String.valueOf(rechargecardUser.getCardnumber())); - userRechargeCardsMapper.insertUserRechargeCards(userRechargeCards);//如果没有该卡号则新建一条 - info = userRechargeCardsMapper.selectUserRechargeCardsByCardnumber(String.valueOf(rechargecardUser.getCardnumber())); - } - - UserConsumptionDetails userConsumptionDetails=new UserConsumptionDetails(); - if(info.getUserId()!=null) - { - userConsumptionDetails.setUserId(info.getUserId()); - } - //userConsumptionDetails.setCardNumber(info.getCardNumber()); - userConsumptionDetails.setCardNumber(String.valueOf(rechargecardUser.getCardnumber())); - userConsumptionDetails.setBillingType(0); - userConsumptionDetails.setAmountDue(rechargecardUser.getAmount()); - userConsumptionDetails.setBillingDate(DateUtils.getNowDate()); - userConsumptionDetails.setPaymentStatus(2); - userConsumptionDetails.setPaymentMethod(rechargecardUser.getType()); - userConsumptionDetails.setPaymentTime(DateUtils.getNowDate()); - userConsumptionDetails.setStatus(0); - userConsumptionDetails.setAreaCode(String.valueOf(rechargecardUser.getAreacode())); - userConsumptionDetails.setCreateTime(DateUtils.getNowDate()); - if(info.getDeptId()!=null) - { - userConsumptionDetails.setDeptId(info.getDeptId()); - } + throw new ServiceException("卡号不存在!"); + }*/ + // UserConsumptionDetails userConsumptionDetails=new UserConsumptionDetails(); + // userConsumptionDetails.setUserId(info.getUserId()); + // userConsumptionDetails.setCardNumber(info.getCardNumber()); + // userConsumptionDetails.setCardNumber(String.valueOf(rechargecardUser.getCardnumber())); + // userConsumptionDetails.setBillingType(0); + // userConsumptionDetails.setAmountDue(rechargecardUser.getAmount()); + // userConsumptionDetails.setBillingDate(DateUtils.getNowDate()); + // userConsumptionDetails.setPaymentStatus(2); + // userConsumptionDetails.setPaymentMethod(rechargecardUser.getType()); + // userConsumptionDetails.setPaymentTime(DateUtils.getNowDate()); + // userConsumptionDetails.setStatus(0); + // userConsumptionDetails.setAreaCode(String.valueOf(rechargecardUser.getAreacode())); + // userConsumptionDetails.setCreateTime(DateUtils.getNowDate()); + // userConsumptionDetails.setDeptId(info.getDeptId()); /*UserConsumptionDetails userConsumptionDetails = UserConsumptionDetails.builder() .userId(info.getUserId()) .cardNumber(info.getCardNumber()) @@ -268,32 +256,22 @@ public class UserRechargeCardsServiceImpl implements IUserRechargeCardsService .areaCode(rechargecardUser.getAreacode()) // 假设 getAreacode() 方法返回区域代码 .build();*/ NgUserRechargeRecords ngUserRechargeRecords=new NgUserRechargeRecords(); - if(info.getUserId()!=null) - { - ngUserRechargeRecords.setUserId(info.getUserId()); - } - if(info.getUserName()!=null) - { - ngUserRechargeRecords.setUserName(info.getUserName()); - } - /* ngUserRechargeRecords.setCardNumber(info.getCardNumber());*/ + // ngUserRechargeRecords.setUserId(info.getUserId()); + // ngUserRechargeRecords.setUserName(info.getUserName()); + // ngUserRechargeRecords.setCardNumber(info.getCardNumber()); ngUserRechargeRecords.setCardNumber(String.valueOf(rechargecardUser.getCardnumber())); ngUserRechargeRecords.setAreaCode(String.valueOf(rechargecardUser.getAreacode())); ngUserRechargeRecords.setType(rechargecardUser.getType()); ngUserRechargeRecords.setAmount(rechargecardUser.getAmount()); - ngUserRechargeRecords.setBalance(info.getBalance()); + // ngUserRechargeRecords.setBalance(info.getBalance()); ngUserRechargeRecords.setBalance(rechargecardUser.getAmount()); ngUserRechargeRecords.setRechargeTime(DateUtils.getNowDate()); - ngUserRechargeRecords.setStatus(0); + ngUserRechargeRecords.setStatus(1); ngUserRechargeRecords.setAreaCode(String.valueOf(rechargecardUser.getAreacode())); ngUserRechargeRecords.setSerialNumber(rechargecardUser.getDeviceNumber()); - if(info.getDeptId()!=null) - { - ngUserRechargeRecords.setDeptId(info.getDeptId()); - } - + // ngUserRechargeRecords.setDeptId(info.getDeptId()); // 计算新的余额 - BigDecimal newBalance = rechargecardUser.getAmount().add(info.getBalance()); + // BigDecimal newBalance = rechargecardUser.getAmount().add(info.getBalance()); /* userConsumptionDetails.setCreateTime(DateUtils.getNowDate()); NgUserRechargeRecords ngUserRechargeRecords = NgUserRechargeRecords.builder() @@ -306,28 +284,28 @@ public class UserRechargeCardsServiceImpl implements IUserRechargeCardsService .areaCode(rechargecardUser.getAreacode()) .build();*/ userRechargeRecordsMapper.insertNgUserRechargeRecords(ngUserRechargeRecords); - userConsumptionDetailsMapper.insertUserConsumptionDetails(userConsumptionDetails); - // 更新用户充值卡信息,包括新的余额 - info.setBalance(newBalance); - info.setUpdateTime(DateUtils.getNowDate()); - info.setAreaCode(String.valueOf(rechargecardUser.getAreacode())); + // userConsumptionDetailsMapper.insertUserConsumptionDetails(userConsumptionDetails); + // // 更新用户充值卡信息,包括新的余额 + // info.setBalance(newBalance); + // info.setUpdateTime(DateUtils.getNowDate()); + // info.setAreaCode(String.valueOf(rechargecardUser.getAreacode())); - //构建主题 - String topic ="hzlink/147/"+rechargecardUser.getDeviceNumber()+"/cmd/down"; - //构建消息 - Map param = new HashMap<>(); - //远程阀控 - param.put("cmd",1000); - Map data = new HashMap<>(); - data.put("orderNum", ngUserRechargeRecords.getId()); - data.put("cardNum",rechargecardUser.getCardnumber()); - data.put("areaCode",rechargecardUser.getAreacode()); - data.put("investBalance",rechargecardUser.getAmount().doubleValue()*100); - data.put("investWater",rechargecardUser.getWater()*100); - - param.put("data",data); - pubMqttClient.publish(1,true,topic, JSONUtil.toJsonStr(param)); - int i = userRechargeCardsMapper.updateUserRechargeCards(info); + // //构建主题 + // String topic ="hzlink/147/"+rechargecardUser.getDeviceNumber()+"/cmd/down"; + // //构建消息 + // Map param = new HashMap<>(); + // //远程阀控 + // param.put("cmd",1000); + // Map data = new HashMap<>(); + // data.put("orderNum", ngUserRechargeRecords.getId()); + // data.put("cardNum",rechargecardUser.getCardnumber()); + // data.put("areaCode",rechargecardUser.getAreacode()); + // data.put("investBalance",rechargecardUser.getAmount().doubleValue()*100); + // data.put("investWater",rechargecardUser.getWater()*100); + // + // param.put("data",data); + // pubMqttClient.publish(1,true,topic, JSONUtil.toJsonStr(param)); + // int i = userRechargeCardsMapper.updateUserRechargeCards(info); return 1; } }