Переглянути джерело

fix: 消费服务
1.补扣消费或错扣补款时不再做限次、限额以及折扣的判断

luo.yibo@datuai.com 1 рік тому
батько
коміт
18a04f8617

+ 8 - 11
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/controller/XfConsumeDetailController.java

@@ -1,7 +1,6 @@
 package org.dromara.backstage.consumption.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
-import cn.hutool.core.util.ObjectUtil;
 import com.itextpdf.kernel.geom.PageSize;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.NotEmpty;
@@ -18,9 +17,7 @@ import org.dromara.backstage.consumption.domain.vo.XfConsumeDetailCKBKVo;
 import org.dromara.backstage.consumption.domain.vo.XfConsumeDetailVo;
 import org.dromara.backstage.consumption.service.IXfConsumeDetailService;
 import org.dromara.common.core.config.DefaultConfig;
-import org.dromara.common.core.constant.DefaultConstants;
 import org.dromara.common.core.domain.R;
-import org.dromara.common.core.enums.CreditTypeEnum;
 import org.dromara.common.core.utils.DateUtils;
 import org.dromara.common.core.utils.pdf.PdfUtil;
 import org.dromara.common.core.validate.AddGroup;
@@ -35,7 +32,6 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.satoken.utils.LoginHelper;
 import org.dromara.common.web.core.BaseController;
 import org.dromara.system.api.model.LoginUser;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.MediaType;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -274,15 +270,16 @@ public class XfConsumeDetailController extends BaseController {
     @PostMapping("/importConsumedetail")
     @SaCheckPermission("consumption:xfConsumeDetail:add")
     public R<List<HandImportConsumeBo>> importConsumedetail(@RequestBody List<HandImportExcelConsumeBo> list) {
-        if (ObjectUtil.isNotEmpty(defaultConfig.getLocationFlag()) && ObjectUtil.equals(defaultConfig.getLocationFlag(), DefaultConstants.LOCAL_FLAG)) {
-            if (list.size() > 0) {
+        // if (ObjectUtil.isNotEmpty(defaultConfig.getLocationFlag()) && ObjectUtil.equals(defaultConfig.getLocationFlag(), DefaultConstants
+        // .LOCAL_FLAG)) {
+        //     if (list.size() > 0) {
                 return R.ok(xfConsumeDetailService.importConsumeDetailList(list));
-            }
-        }else{
-            return R.fail("只能在校内本地服务执行!");
-        }
+        //     }
+        // }else{
+        //     return R.fail("只能在校内本地服务执行!");
+        // }
 
-        return R.ok("参数为空数组");
+        // return R.ok("参数为空数组");
     }
 
 

+ 1 - 2
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/impl/XfConsumeDetailServiceImpl.java

@@ -31,7 +31,6 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
-import java.time.YearMonth;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -50,7 +49,7 @@ public class XfConsumeDetailServiceImpl implements IXfConsumeDetailService {
     private final XfConsumeDetailMapper baseMapper;
 
     // http://172.16.137.72/prod-api/consume
-    @Value("${XF_CONSUME_URL:http://localhost:8080/consume}")
+    @Value("${XF_CONSUME_URL}")
     private String XF_CONSUME_URL;
 
     /**

+ 6 - 4
ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/business/CheckBusiness.java

@@ -257,10 +257,12 @@ public class CheckBusiness {
         if (ObjectUtil.isEmpty(mealType)) {
             return R.fail(new ErrorInfo(400, ApiErrorTypeConstants.NOT_FOUND, "不在交易时段", "不在交易时段"));
         }
-        // 3.设备限制验证
-        result = checkTermLimitDeal(bo, useTermVo, userCardVo, mealType);
-        if (R.isError(result)) {
-            return R.fail(new ErrorInfo(400, ApiErrorTypeConstants.NOT_FOUND, "消费限制判断存在问题", JSONUtil.toJsonStr(result.getData())));
+        // 3.设备限制验证,只有消费机上传时会会进行验证,在手工补扣、错扣补款时不进行验证
+        if (bo.getStatusFlag() == 1 || bo.getStatusFlag() == 4) {
+            result = checkTermLimitDeal(bo, useTermVo, userCardVo, mealType);
+            if (R.isError(result)) {
+                return R.fail(new ErrorInfo(400, ApiErrorTypeConstants.NOT_FOUND, "消费限制判断存在问题", JSONUtil.toJsonStr(result.getData())));
+            }
         }
         // 4.根据消费机的消费模式验证余额,如果余额不足则返回
         List<PtBagVo> bagVos = new ArrayList<>();

+ 1 - 1
ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/business/TermBusiness.java

@@ -122,7 +122,7 @@ public class TermBusiness {
         if (ObjectUtil.isEmpty(termVo)) {
             return R.fail(MessageFormat.format("机号为[{0}]的设备不存在", termNo), null);
         }
-        Map<java.lang.String, Object> resultMap = new HashMap<>();
+        Map<String, Object> resultMap = new HashMap<>();
         if (!lastCheckModify.containsKey(termNo)) {
             lastCheckModify.put(termNo, 0L);
         }