Selaa lähdekoodia

修改 业务逻辑调整

jk-GitHub-coder 4 vuotta sitten
vanhempi
commit
ca84e960ea

+ 43 - 41
YijiaRestful/src/main/java/com/platform/yijia/controller/IntegralShoppingMallController.java

@@ -168,55 +168,57 @@ public class IntegralShoppingMallController {
 //            }
         }
 
-        //更新用户积分
-        String surplusPoints ="";   //剩余积分
-        String orderSumIntegral ="";        //订单消费总积分
-        CustomerPoints customerPointsInfo = customerPointsService.getCustomerPointsInfo(customerPoints);
-        if(customerPointsInfo !=null){
-            BigDecimal multiply = new BigDecimal(request.getIntegral()).multiply(new BigDecimal(request.getExchangeNum())); //该订单总积分
-            orderSumIntegral = multiply.toString();
-            //用户剩余积分
-            BigDecimal points = new BigDecimal(customerPointsInfo.getPoints()).subtract(multiply);
-            customerPoints.setPoints(Integer.valueOf(points.toString()));
-            surplusPoints = points.toString();
-            //用户已消费积分累积
-            BigDecimal consumptionPoints = new BigDecimal(customerPointsInfo.getConsumptionPoints()).add(multiply);
-            customerPoints.setConsumptionPoints(Integer.valueOf(consumptionPoints.toString()));
-            logger.info("用户积分: "+ consumptionPoints.toString());
-            customerPointsService.updateCustomerPointsInfo(customerPoints);
-        }
-
         //更新商品已售数量
         List<IntegralWares> integralWaresInfoList = integralWaresService.getIntegralWaresInfoList(integralWares);
-        if(integralWaresInfoList !=null && integralWaresInfoList.size() ==1){
+        if(integralWaresInfoList !=null && integralWaresInfoList.size() ==1 && integralWaresInfoList.get(0).getWaresCount() >0){
+            //更新用户积分
+            String surplusPoints ="";   //剩余积分
+            String orderSumIntegral ="";        //订单消费总积分
+            CustomerPoints customerPointsInfo = customerPointsService.getCustomerPointsInfo(customerPoints);
+            if(customerPointsInfo !=null){
+                BigDecimal multiply = new BigDecimal(request.getIntegral()).multiply(new BigDecimal(request.getExchangeNum())); //该订单总积分
+                orderSumIntegral = multiply.toString();
+                //用户剩余积分
+                BigDecimal points = new BigDecimal(customerPointsInfo.getPoints()).subtract(multiply);
+                customerPoints.setPoints(Integer.valueOf(points.toString()));
+                surplusPoints = points.toString();
+                //用户已消费积分累积
+                BigDecimal consumptionPoints = new BigDecimal(customerPointsInfo.getConsumptionPoints()).add(multiply);
+                customerPoints.setConsumptionPoints(Integer.valueOf(consumptionPoints.toString()));
+                logger.info("用户积分: "+ consumptionPoints.toString());
+                customerPointsService.updateCustomerPointsInfo(customerPoints);
+            }
+
             integralWares.setWaresOutCount(integralWaresInfoList.get(0).getWaresOutCount()+1);
             integralWares.setWaresCount(integralWaresInfoList.get(0).getWaresCount()-1);
             logger.info("商品已售数量: "+ integralWares.toString());
             integralWaresService.updateIntegralWaresInfo(integralWares);
-        }
-
-        //插入客户记录表
-        customerPointsRecord.setRecordType("-");    //客户积分表记录
-        customerPointsRecord.setCreateTime(new Date());
-        customerPointsRecordService.insertCustomerPointsInfo(customerPointsRecord);
+            //插入客户记录表
+            customerPointsRecord.setRecordType("-");    //客户积分表记录
+            customerPointsRecord.setCreateTime(new Date());
+            //插入客户积分记录
+            customerPointsRecordService.insertCustomerPointsInfo(customerPointsRecord);
 
-        boolean b = integralOrderService.insertIntegralOrder(integralOrder);
-        if (b){
-            //公众号积分消耗消息推送
-            List<WxMpTemplateData> wxMpTemplate = new ArrayList<>();
-            wxMpTemplate.add(new WxMpTemplateData("first","您好!您已成功在"+stationName+"完成积分商品兑换:"));
-            wxMpTemplate.add(new WxMpTemplateData("keyword1", request.getCustomerName()));
-            wxMpTemplate.add(new WxMpTemplateData("keyword2", integralOrderNo));
-            wxMpTemplate.add(new WxMpTemplateData("keyword3", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())));
-            wxMpTemplate.add(new WxMpTemplateData("keyword4", request.getWaresName()+"   x "+ request.getExchangeNum()));
-            wxMpTemplate.add(new WxMpTemplateData("keyword5", orderSumIntegral));
-            wxMpTemplate.add(new WxMpTemplateData("remark",
-                    "截止至" + new SimpleDateFormat(" yyyy年MM月dd日HH时mm分").format(new Date())+",您在"+stationName+"的积分值还剩余 "+surplusPoints+" 分"));
-            String templateId = "9EWrreI-P8r4xDgoOcczC4jHt1v0HEjKzkgVRDzoNXA";  //积分兑换成功通知模板
-            wxPushUtil.push(gzhAppId, gzhAppSecret, templateId, request.getOpenId(), wxMpTemplate);
-            resultData=ResultData.success(CodeMsg.SUCCESS);
+            boolean b = integralOrderService.insertIntegralOrder(integralOrder);
+            if (b){
+                //公众号积分消耗消息推送
+                List<WxMpTemplateData> wxMpTemplate = new ArrayList<>();
+                wxMpTemplate.add(new WxMpTemplateData("first","您好!您已成功在"+stationName+"完成积分商品兑换:"));
+                wxMpTemplate.add(new WxMpTemplateData("keyword1", request.getCustomerName()));
+                wxMpTemplate.add(new WxMpTemplateData("keyword2", integralOrderNo));
+                wxMpTemplate.add(new WxMpTemplateData("keyword3", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())));
+                wxMpTemplate.add(new WxMpTemplateData("keyword4", request.getWaresName()+"   x "+ request.getExchangeNum()));
+                wxMpTemplate.add(new WxMpTemplateData("keyword5", orderSumIntegral));
+                wxMpTemplate.add(new WxMpTemplateData("remark",
+                        "截止至" + new SimpleDateFormat(" yyyy年MM月dd日HH时mm分").format(new Date())+",您在"+stationName+"的积分值还剩余 "+surplusPoints+" 分"));
+                String templateId = "9EWrreI-P8r4xDgoOcczC4jHt1v0HEjKzkgVRDzoNXA";  //积分兑换成功通知模板
+                wxPushUtil.push(gzhAppId, gzhAppSecret, templateId, request.getOpenId(), wxMpTemplate);
+                resultData=ResultData.success(CodeMsg.SUCCESS);
+            }else {
+                resultData=ResultData.error(CodeMsg.REQUEST_FAIL);
+            }
         }else {
-            resultData=ResultData.success(CodeMsg.REQUEST_FAIL);
+            resultData=ResultData.error(CodeMsg.WARSECOUNT_FAIL);
         }
         return gson.toJson(resultData);
     }

+ 1 - 0
YijiaRestful/src/main/java/com/platform/yijia/utils/CodeMsg.java

@@ -19,6 +19,7 @@ public class CodeMsg {
 
     public static CodeMsg CHECK_DATA = new CodeMsg(007,"与后台检验不一致,请联系……");
     public static CodeMsg PARAMS_NUll = new CodeMsg(010,"请求失败,参数缺失");
+    public static CodeMsg WARSECOUNT_FAIL = new CodeMsg(011,"暂无库存");
     private CodeMsg(int retCode, String message) {
         this.retCode = retCode;
         this.message = message;