jk-GitHub-coder 4 tahun lalu
induk
melakukan
084048723b

+ 61 - 21
YijiaRestful/src/main/java/com/platform/yijia/controller/ElectronicMembershipCardController.java

@@ -44,6 +44,22 @@ public class ElectronicMembershipCardController {
     @Resource
     private WxPushUtil wxPushUtil;
 
+    //查询该油站是否启用电子会员卡
+    @RequestMapping(value = "/getStationCardEnabledFlag", method = RequestMethod.GET)
+    @ResponseBody
+    public String getStationCardEnabledFlag(@RequestParam Integer stationId){
+        Gson gson =new Gson();
+        //返回结果集
+        ResultData resultData = null;
+        if(stationId !=null){
+            String stationCardEnabledFlag = electronicMembershipCardService.getStationCardEnabledFlag(stationId);
+            resultData = ResultData.success(stationCardEnabledFlag);
+        }else {
+            resultData = ResultData.error(CodeMsg.REQUEST_FAIL);
+        }
+        return gson.toJson(resultData);
+    }
+
     //获取用户电子会员卡(储蓄卡)列表
     @RequestMapping(value = "/getElectronicCardList", method = RequestMethod.GET)
     @ResponseBody
@@ -99,6 +115,7 @@ public class ElectronicMembershipCardController {
                 List<CustomerCardSetting> cardRechargeSettingList = electronicMembershipCardService.getCardRechargeSettingList(customerCardSetting);
                 if(cardRechargeSettingList !=null && cardRechargeSettingList.size() ==1){
                     String discountTime = cardRechargeSettingList.get(0).getDiscountTime();
+                    //stationName = cardRechargeSettingList.get(0).getStationName();
                     String[] dctime={};     //会员充值活动时间
                     if(discountTime.contains(",")){
                         dctime =discountTime.split(",");
@@ -202,7 +219,10 @@ public class ElectronicMembershipCardController {
                 CustomerElectronicCard electronicCardInfoByUnionId = electronicMembershipCardService.getElectronicCardInfoByUnionId(c);
                 if(electronicCardInfoByUnionId !=null && electronicCardInfoByUnionId.getCustomerNo() !=null){
                     customerCardUseRecord.setCustomerNo(electronicCardInfoByUnionId.getCustomerNo());
-                    customerCardUseRecord.setBalance(amt.add(customerCardUseRecord.getPresentAmt()).add(electronicCardInfoByUnionId.getAmt()));
+                    customerCardUseRecord.setAmt(electronicCardInfoByUnionId.getAmt());
+//                    BigDecimal amt1 = electronicCardInfoByUnionId.getAmt(); //客户原有金额
+//                    BigDecimal amt2 = amt.add(customerCardUseRecord.getPresentAmt());   //客户本次共充值金额:充值金额+赠送金额
+//                    customerCardUseRecord.setBalance(amt1.add(amt2));
                 }
                 //订单规则 时间+6位随机数
                 Random random = new Random();
@@ -462,33 +482,44 @@ public class ElectronicMembershipCardController {
             CustomerCardUseRecord customerCardUseRecordInfo = electronicMembershipCardService.getCardRecordByOrderNo(customerCardUseRecord);
             // 0表示未支付  1表示已支付
             if(customerCardUseRecordInfo !=null && customerCardUseRecordInfo.getStatus().equals("0")){
+                logger.info("客户unionId:" +customerCardUseRecordInfo.getUnionId());
                 logger.info("充值单号:" + ordNo);
                 CustomerElectronicCard customerElectronicCard = new CustomerElectronicCard();
-                customerElectronicCard.setUnionId(customerCardUseRecord.getUnionId());
-                customerCardUseRecord.setStationId(customerCardUseRecordInfo.getStationId());
+                customerElectronicCard.setUnionId(customerCardUseRecordInfo.getUnionId());
+                customerElectronicCard.setStationId(customerCardUseRecordInfo.getStationId());
+                //customerCardUseRecord.setStationId(customerCardUseRecordInfo.getStationId());
                 //是否有赠送金额
                 BigDecimal presentAmt =new BigDecimal(0);
+                //BigDecimal cardSumAmt = null;
                 if(customerCardUseRecordInfo.getPresentAmt() !=null){
                     presentAmt = customerCardUseRecordInfo.getPresentAmt();  //客户充值赠送金额
-                    customerElectronicCard.setAmt(new BigDecimal(amt).add(presentAmt));
-                }else {
-                    customerElectronicCard.setAmt(new BigDecimal(amt));
+                    logger.info("客户充值赠送金额:" +presentAmt.toString());
                 }
                 customerElectronicCard.setRecentlyTime(new Date());
                 customerElectronicCard.setCardOilsType(customerCardUseRecordInfo.getCardOilsType());
-                electronicMembershipCardService.updateElectronicCardInfoByUnionId(customerElectronicCard);
-                customerCardUseRecord.setStatus("1");
-                customerCardUseRecord.setBalance(customerElectronicCard.getAmt());
-                electronicMembershipCardService.updateCardRecordStatusByOrderNo(customerCardUseRecord);
-                logger.info("=====================电子会员卡充值成功=============================");
-                customerCardUseRecord.setUnionId(customerCardUseRecordInfo.getUnionId());
-                CustomerElectronicCard electronicCardInfo = electronicMembershipCardService.getElectronicCardInfo(customerElectronicCard);
-                if(electronicCardInfo !=null && electronicCardInfo.getBlogOpenid() !=null){
+                logger.info("查询客户电子卡信息所传递参数: 油站ID:"+customerElectronicCard.getStationId()+"; 客户unionId:" + customerElectronicCard.getUnionId()+"; 卡的类型:"+ customerElectronicCard.getCardOilsType());
+                //获取客户充值的得电子卡信息
+                CustomerElectronicCard electronicCardInfo = electronicMembershipCardService.getElectronicCardInfoByUnionId(customerElectronicCard);
+                if(electronicCardInfo !=null){
+                    logger.info("客户当前原有金额:" + electronicCardInfo.getAmt().toString());
+                    customerElectronicCard.setAmt(electronicCardInfo.getAmt().add(new BigDecimal(amt)).add(presentAmt));
+                    //更新客户要充值的电子会员卡的信息
+                    if(customerElectronicCard.getStationId()!=null && customerElectronicCard.getUnionId() !=null){
+                        logger.info("客户当前充值后应有金额:" + customerElectronicCard.getAmt().toString());
+                        electronicMembershipCardService.updateElectronicCardInfoByUnionId(customerElectronicCard);
+                    }
+                    customerCardUseRecord.setStatus("1");
+                    customerCardUseRecord.setBalance(customerElectronicCard.getAmt());
+                    customerCardUseRecord.setOrderNo(ordNo);
+                    //更新充值记录的状态和余额
+                    electronicMembershipCardService.updateCardRecordStatusByOrderNo(customerCardUseRecord);
+                    logger.info("===========客户电子会员卡充值成功已到账====");
+                    logger.info("===========开始微信公众号推送消息功能:");
                     String stationName = electronicCardInfo.getStationName();
                     String blogOpenid = electronicCardInfo.getBlogOpenid();
                     Integer stationId = electronicCardInfo.getStationId();      //油站ID
                     String customerName = electronicCardInfo.getCustomerName(); //客户名称
-                    BigDecimal balance = electronicCardInfo.getAmt();   //当前余额
+                    BigDecimal balance = customerElectronicCard.getAmt();   //当前余额
                     String customerNo = electronicCardInfo.getCustomerNo();     //电子卡号
                     //获取要推送充值成功模板的ID
                     GzhNewsTemplate gzhNewsTemplate = new GzhNewsTemplate();
@@ -496,20 +527,29 @@ public class ElectronicMembershipCardController {
                     gzhNewsTemplate.setStationId(stationId);
                     GzhNewsTemplate gzhNewsTemplateInfo = gzhNewsTemplateService.getGzhNewsTemplate(gzhNewsTemplate);
                     if(gzhNewsTemplateInfo !=null && gzhNewsTemplateInfo.getTemplateId() !=null){
+                        logger.info("推送消息的油站ID:"+ gzhNewsTemplateInfo.getStationId().toString());
+                        logger.info("当前要推送消息所用使用的模板ID:"+ gzhNewsTemplateInfo.getTemplateId());
                         List<WxMpTemplateData> wxMpTemplate = new ArrayList<>();
-                        wxMpTemplate.add(new WxMpTemplateData("first","尊敬的"+customerName+",您好:\n" + "您在"+stationName+"的电子会员卡充值成功信息如下"));
+                        String cardName = customerCardUseRecordInfo.getCardOilsType() =="1"? "汽油":"柴油";
+                        wxMpTemplate.add(new WxMpTemplateData("first","尊敬的"+customerName+",您好:\n" + "您在"+stationName+"的"+cardName+"电子会员卡充值成功信息如下"));
                         wxMpTemplate.add(new WxMpTemplateData("keyword1", customerNo));
-                        wxMpTemplate.add(new WxMpTemplateData("keyword2", amt));
-                        wxMpTemplate.add(new WxMpTemplateData("keyword3", presentAmt.toString()));
-                        wxMpTemplate.add(new WxMpTemplateData("keyword4", balance.toString()));
+                        wxMpTemplate.add(new WxMpTemplateData("keyword2", amt + " 元"));
+                        wxMpTemplate.add(new WxMpTemplateData("keyword3", presentAmt.toString()+ " 元"));
+                        wxMpTemplate.add(new WxMpTemplateData("keyword4", balance.toString()+ " 元"));
                         wxMpTemplate.add(new WxMpTemplateData("keyword5", new SimpleDateFormat("yyyy年MM月dd日HH时mm分").format(new Date())));
                         wxMpTemplate.add(new WxMpTemplateData("remark","感谢您在"+ stationName+"的本次充值!"));
+                        logger.info("要推送的消息内容:" +wxMpTemplate.toString());
                         Map<String, String> m = stationService.getStationAppIdAndAppSecret(stationId);
                         if(m !=null && m.containsKey("gzhAppId") && m.containsKey("gzhAppSecret")){
                             String gzhAppId = m.get("gzhAppId");
                             String gzhAppSecret = m.get("gzhAppSecret");
-                            wxPushUtil.push(gzhAppId, gzhAppSecret, gzhNewsTemplateInfo.getTemplateId(), blogOpenid, wxMpTemplate);
-                            logger.info("电子会员卡公众号消息推送成功,推送人:"+ blogOpenid);
+                            if(electronicCardInfo.getBlogOpenid() !=null){
+                                wxPushUtil.push(gzhAppId, gzhAppSecret, gzhNewsTemplateInfo.getTemplateId(), blogOpenid, wxMpTemplate);
+                                logger.info("电子会员卡公众号消息推送成功,推送人:"+ blogOpenid);
+                                logger.info("===================================本次充值流程结束===========================================");
+
+                            }
+
                         }
 
                     }

+ 18 - 0
YijiaRestful/src/main/java/com/platform/yijia/controller/StationController.java

@@ -55,6 +55,24 @@ public class StationController {
         return gson.toJson(resultData);
     }
 
+    //获取油站信息
+    @RequestMapping(value = "/getStationInfo", method = RequestMethod.GET)
+    @ResponseBody
+    public String getStationInfo(@RequestParam Integer stationId){
+        Gson gson =new Gson();
+        //返回结果集
+        ResultData resultData=null;
+        if(stationId !=null){
+            StationInfo stationInfo = new StationInfo();
+            stationInfo.setStationId(stationId);
+            StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
+            resultData =ResultData.success(stationInfos);
+        }else {
+            resultData =ResultData.error(CodeMsg.REQUEST_FAIL);
+        }
+        return gson.toJson(resultData);
+    }
+
     //获取油站公告信息
     @RequestMapping(value = "/getStationNoticeInfo", method = RequestMethod.GET)
     @ResponseBody

+ 6 - 2
YijiaRestful/src/main/resources/mapper/ElectronicMembershipCardMapper.xml

@@ -115,6 +115,7 @@
             pay_type,
             card_oils_type,
             amt,
+            balance,
             present_amt,
             create_time,
             station_id,
@@ -135,7 +136,10 @@
             customer_card_record_recharge
         <set>
             <if test="status !=null">
-                status = #{status}
+                status = #{status},
+            </if>
+            <if test="balance !=null">
+                balance = #{balance}
             </if>
         </set>
         <where>
@@ -529,7 +533,7 @@
         FROM
             customer_electronic_card
         <where>
-            <if test="stationId !='' and stationId != null" >
+            <if test="stationId != null" >
                 station_id = #{stationId}
             </if>
             <if test="unionId !=null and unionId !=''">

+ 1 - 4
YijiaRestful/src/main/resources/mapper/StationInfoMapper.xml

@@ -34,13 +34,10 @@
         dept_address,
         oil_gun_num,
         leader,
-        phone,
         station_longitude,
         station_latitude,
         station_pic,
-        mno,
-        app_id,
-        gzh_app_id
+        mno
     FROM
         sys_dept
     <where>