Bladeren bron

feat:"远程退币功能优化"

soobin 3 maanden geleden
bovenliggende
commit
a85d0c188b

+ 1 - 0
src/main/java/com/szwl/constant/OperationType.java

@@ -9,6 +9,7 @@ public enum OperationType implements IEnum<String> {
 
     UPDATE_TAX_STATUS("updateTaxStatus","修改税费开关"),
     UPDATE_TAX_RATE("updateTaxRate","修改税率"),
+    RETURN_COIN("returnCoin","退币申请"),
     LOG("log","上传日志"),
     UPLOAD_ORDER("uploadOrder","上传线下订单"),
     BAN_PAPER_MONEY("banPaperMoney","纸币器禁能"),

+ 1 - 1
src/main/java/com/szwl/controller/ApkInfoController.java

@@ -48,7 +48,7 @@ public class ApkInfoController {
             return "没有版本数据";
         }
         LambdaQueryWrapper<TApkInfo> query = Wrappers.lambdaQuery();
-        query.like(TApkInfo::getModel, model);
+        query.eq(TApkInfo::getModel, model);
         query.orderByDesc(TApkInfo::getVersion);
         List<TApkInfo> list = tApkInfoService.list(query);
         TApkInfo info = list.get(0);

+ 11 - 11
src/main/java/com/szwl/controller/IndexController.java

@@ -19,6 +19,7 @@ import com.szwl.model.bean.*;
 import com.szwl.model.bo.JsonUtils;
 import com.szwl.model.bo.R;
 import com.szwl.model.bo.ResponseModel;
+import com.szwl.model.dto.MachineDTO;
 import com.szwl.model.dto.ReturnCoinVo;
 import com.szwl.model.entity.*;
 import com.szwl.model.utils.AdminUtils;
@@ -2442,29 +2443,28 @@ public class IndexController {
     /**
      * 新修改商品名称
      *
-     * @param clientId       设备编号
-     * @param productNo      商品编号
-     * @param newProductName 新名称
-     * @return 修改结果
      */
-    @RequestMapping(value = "/newUpdateProductName", method = RequestMethod.POST)
+    @RequestMapping(value = "/changeProductName", method = RequestMethod.POST)
     @ResponseBody
-    public String newUpdateProductName(String clientId, String productNo, String newProductName) {
+    public String changeProductName(@RequestBody MachineDTO machineDTO) {
+        String clientId = machineDTO.getClientId();
+        String no = machineDTO.getProductNo();
+        String name = machineDTO.getProductName();
         LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
-        query.eq(TEquipment::getClientId, clientId);
+        query.eq(TEquipment::getClientId, machineDTO.getClientId());
         TEquipment equipment = equipmentService.getOne(query);
         if (equipment != null && equipment.getId() != null) {
             LambdaQueryWrapper<TProduct> queryWrapper = Wrappers.lambdaQuery();
             queryWrapper.eq(TProduct::getEquipmentId, equipment.getId());
-            queryWrapper.eq(TProduct::getNo, productNo);
+            queryWrapper.eq(TProduct::getNo, no);
             TProduct product = productService.getOne(queryWrapper);
             product.setModifyDate(new Date());
             product.setName(product.getProductName());
-            product.setProductName(newProductName);
+            product.setProductName(name);
             productService.updateById(product);
-            return "修改成功(Success)!";
+            return "success";
         }
-        return "找不到设备";
+        return "error";
     }
 
     @ApiOperation("上传远程退币状态")

+ 69 - 0
src/main/java/com/szwl/controller/ReturnCoinRecordController.java

@@ -2,11 +2,17 @@ package com.szwl.controller;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.szwl.constant.OperationType;
 import com.szwl.model.bo.R;
 import com.szwl.model.bo.ResponseModel;
 import com.szwl.model.entity.ReturnCoinRecord;
 import com.szwl.model.entity.TEquipment;
+import com.szwl.model.entity.TSugarDo;
+import com.szwl.model.param.ReturnCoinParam;
+import com.szwl.model.param.SugarDoParam;
 import com.szwl.model.utils.PushUtils;
 import com.szwl.service.ReturnCoinRecordService;
 import com.szwl.service.TEquipmentService;
@@ -55,6 +61,27 @@ public class ReturnCoinRecordController {
         return R.ok(list);
     }
 
+    @ApiOperation(value = "远程退币申请列表")
+    @PostMapping("/getList")
+    public ResponseModel<IPage<?>> getList(@RequestBody ReturnCoinParam param) {
+        Page<ReturnCoinRecord> page = new Page<>(param.getCurrent(), param.getSize(), true);
+        LambdaQueryWrapper<ReturnCoinRecord> query = Wrappers.lambdaQuery();
+        if (param.getStatus() != null) {
+            query.eq(ReturnCoinRecord::getStatus, param.getStatus());
+        }
+        if (StringUtils.isNotEmpty(param.getStartTime()) && StringUtils.isNotEmpty(param.getEndTime())) {
+            param.setStartTime(param.getStartTime() + " 00:00:00");
+            param.setEndTime(param.getEndTime() + " 23:59:59");
+            query.between(ReturnCoinRecord::getCreateDate, param.getStartTime(), param.getEndTime());
+        }
+        if (StringUtils.isNotEmpty(param.getClientId())) {
+            query.eq(ReturnCoinRecord::getClientId, param.getClientId());
+        }
+        query.orderByDesc(ReturnCoinRecord::getCreateDate);
+        Page<ReturnCoinRecord> recordPage = returnCoinRecordService.page(page, query);
+        return R.ok(recordPage);
+    }
+
     @ApiOperation("远程退币申请")
     @PostMapping("/apply")
     public ResponseModel<?> apply(@RequestBody ReturnCoinRecord returnCoinRecord){
@@ -95,5 +122,47 @@ public class ReturnCoinRecordController {
         tEquipmentService.sentMessage(clientId, PushUtils.buildJson("returnCoin", commonId + ":" + amount).toString());
         return R.ok();
     }
+
+    @ApiOperation("远程退币申请")
+    @PostMapping("/applyReturn")
+    public ResponseModel<?> applyReturn(@RequestBody ReturnCoinRecord returnCoinRecord){
+        // 设备ID
+        Long equipmentId = returnCoinRecord.getEquipmentId();
+        // 用户ID
+        Long adminId = returnCoinRecord.getAdminId();
+        // 退币数量
+        Integer amount = returnCoinRecord.getAmount();
+        if (equipmentId == null || adminId == null || amount == null) {
+            return R.fail("参数错误");
+        }
+        if (amount <= 0) {
+            return R.fail("参数错误");
+        }
+        TEquipment equipment = tEquipmentService.getById(equipmentId);
+        if (equipment == null || equipment.getId() == null) {
+            return R.fail("找不到设备");
+        }
+        String clientId = equipment.getClientId();
+        String name = equipment.getName();
+        ReturnCoinRecord record = new ReturnCoinRecord();
+        long commonId = IDGenerator.commonID();
+        record.setId(commonId);
+        record.setCreateDate(new Date());
+        record.setModifyDate(new Date());
+        record.setAdminId(adminId);
+        record.setEquipmentId(equipmentId);
+        record.setAmount(amount);
+        record.setClientId(clientId);
+        if (StringUtils.isEmpty(name)) {
+            record.setName(clientId.substring(clientId.length() - 6));
+        } else {
+            record.setName(name);
+        }
+        record.setStatus(0);
+        returnCoinRecordService.save(record);
+        String message = PushUtils.buildJson(OperationType.RETURN_COIN.getCode(), commonId + ":" + amount).toString();
+        tEquipmentService.sendRemoteMessage(equipment.getClientId(), OperationType.RETURN_COIN, message, adminId);
+        return R.ok();
+    }
 }
 

+ 1 - 1
src/main/java/com/szwl/controller/TApkInfoController.java

@@ -44,7 +44,7 @@ public class TApkInfoController {
     public ResponseModel<IPage<?>> pagePromoCode(long current, long size, String model) {
         LambdaQueryWrapper<TApkInfo> query = Wrappers.lambdaQuery();
         if (!StringUtils.isEmpty(model)) {
-            query.eq(TApkInfo::getModel, model);
+            query.like(TApkInfo::getModel, model);
         }
         query.orderByDesc(TApkInfo::getCreateDate);
         Page<TApkInfo> page = new Page<>(current, size, true);

+ 42 - 0
src/main/java/com/szwl/handle/response/ReturnCoinProcessor.java

@@ -0,0 +1,42 @@
+package com.szwl.handle.response;
+
+import com.google.gson.Gson;
+import com.szwl.constant.OperationType;
+import com.szwl.model.entity.MessageLog;
+import com.szwl.model.entity.ReturnCoinRecord;
+import com.szwl.service.ReturnCoinRecordService;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+@Component
+public class ReturnCoinProcessor implements ResponseProcessor{
+
+    @Resource
+    ReturnCoinRecordService returnCoinRecordService;
+
+    @Override
+    public void process(MessageLog messageLog) {
+        Integer statusCode = messageLog.getStatusCode();
+        if (statusCode == 200) {
+            try {
+                Gson gson = new Gson();
+                ReturnCoinRecord returnCoinVo = gson.fromJson(messageLog.getResponseContent(), ReturnCoinRecord.class);
+                Long id = returnCoinVo.getId();
+                ReturnCoinRecord returnCoinRecord = returnCoinRecordService.getById(id);
+                if (returnCoinRecord !=  null) {
+                    returnCoinRecord.setStatus(returnCoinVo.getStatus());
+                    returnCoinRecord.setReason(returnCoinVo.getReason());
+                    returnCoinRecordService.updateById(returnCoinRecord);
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    @Override
+    public String getSupportedOperationType() {
+        return OperationType.RETURN_COIN.getCode();
+    }
+}

+ 17 - 0
src/main/java/com/szwl/model/dto/MachineDTO.java

@@ -0,0 +1,17 @@
+package com.szwl.model.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class MachineDTO {
+
+    @ApiModelProperty(value = "设备编号")
+    private String clientId;
+
+    @ApiModelProperty(value = "商品名称")
+    private String productName;
+
+    @ApiModelProperty(value = "商品编号")
+    private String productNo;
+}

+ 16 - 0
src/main/java/com/szwl/model/param/ReturnCoinParam.java

@@ -0,0 +1,16 @@
+package com.szwl.model.param;
+
+import com.szwl.model.entity.ReturnCoinRecord;
+import lombok.Data;
+
+@Data
+public class ReturnCoinParam extends ReturnCoinRecord {
+
+    private Long current;
+
+    private Long size;
+
+    private String startTime;
+
+    private String endTime;
+}