jk-GitHub-coder 4 年 前
コミット
9f16855195

+ 46 - 6
YijiaRestful/src/main/java/com/platform/yijia/controller/ElectronicMembershipCardController.java

@@ -5,13 +5,13 @@ import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.parser.Feature;
 import com.google.gson.Gson;
 import com.platform.yijia.param.request.RechargeBalance;
-import com.platform.yijia.pojo.CustomerCardSetting;
-import com.platform.yijia.pojo.CustomerCardSettingDetail;
-import com.platform.yijia.pojo.CustomerCardUseRecord;
-import com.platform.yijia.pojo.CustomerElectronicCard;
+import com.platform.yijia.pojo.*;
 import com.platform.yijia.service.ElectronicMembershipCardService;
+import com.platform.yijia.service.GzhNewsTemplateService;
 import com.platform.yijia.service.StationService;
 import com.platform.yijia.utils.*;
+import com.platform.yijia.utils.weixinapp.WxPushUtil;
+import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -39,6 +39,10 @@ public class ElectronicMembershipCardController {
     private ElectronicMembershipCardService electronicMembershipCardService;
     @Resource
     private StationService stationService;
+    @Resource
+    private GzhNewsTemplateService gzhNewsTemplateService;
+    @Resource
+    private WxPushUtil wxPushUtil;
 
     //获取用户电子会员卡(储蓄卡)列表
     @RequestMapping(value = "/getElectronicCardList", method = RequestMethod.GET)
@@ -100,7 +104,7 @@ public class ElectronicMembershipCardController {
                     calendar.setTime(new Date());   //获取当前时间
                     //循环优惠规则明细
                     for (CustomerCardSettingDetail cardDetail : cardRechargeSettingList.get(0).getCustomerCardSettingDetailList()){
-                        if(amt.compareTo(cardDetail.getDiscountAmtTerm()) ==1 || amt.compareTo(cardDetail.getDiscountAmtTerm()) ==0){
+                        if(amt.compareTo(cardDetail.getDiscountAmtEnd()) ==1 || amt.compareTo(cardDetail.getDiscountAmtEnd()) ==0){
                             //String isDiscountCoupon = cardRechargeSettingList.get(0).getIsDiscountCoupon();       //是否使用优惠券
                             //充值优惠类型
                             if(cardDetail.getSettingRuleType().equals("1")){ //按充值金额
@@ -448,11 +452,14 @@ public class ElectronicMembershipCardController {
             CustomerCardUseRecord customerCardUseRecordInfo = electronicMembershipCardService.getCardRecordByOrderNo(customerCardUseRecord);
             // 0表示未支付  1表示已支付
             if(customerCardUseRecordInfo !=null && customerCardUseRecordInfo.getStatus().equals("0")){
+                logger.info("充值单号:" + ordNo);
                 CustomerElectronicCard customerElectronicCard = new CustomerElectronicCard();
                 customerElectronicCard.setUnionId(customerCardUseRecord.getUnionId());
+                customerCardUseRecord.setStationId(customerCardUseRecordInfo.getStationId());
                 //是否有赠送金额
+                BigDecimal presentAmt =new BigDecimal(0);
                 if(customerCardUseRecordInfo.getPresentAmt() !=null){
-                    BigDecimal presentAmt = customerCardUseRecordInfo.getPresentAmt();  //客户充值赠送金额
+                    presentAmt = customerCardUseRecordInfo.getPresentAmt();  //客户充值赠送金额
                     customerElectronicCard.setAmt(new BigDecimal(amt).add(presentAmt));
                 }else {
                     customerElectronicCard.setAmt(new BigDecimal(amt));
@@ -464,6 +471,39 @@ public class ElectronicMembershipCardController {
                 customerCardUseRecord.setBalance(customerElectronicCard.getAmt());
                 electronicMembershipCardService.updateCardRecordStatusByOrderNo(customerCardUseRecord);
                 logger.info("=====================电子会员卡充值成功=============================");
+                customerCardUseRecord.setUnionId(customerCardUseRecordInfo.getUnionId());
+                CustomerElectronicCard electronicCardInfo = electronicMembershipCardService.getElectronicCardInfo(customerElectronicCard);
+                if(electronicCardInfo !=null && electronicCardInfo.getBlogOpenid() !=null){
+                    String stationName = electronicCardInfo.getStationName();
+                    String blogOpenid = electronicCardInfo.getBlogOpenid();
+                    Integer stationId = electronicCardInfo.getStationId();      //油站ID
+                    String customerName = electronicCardInfo.getCustomerName(); //客户名称
+                    BigDecimal balance = electronicCardInfo.getAmt();   //当前余额
+                    String customerNo = electronicCardInfo.getCustomerNo();     //电子卡号
+                    //获取要推送充值成功模板的ID
+                    GzhNewsTemplate gzhNewsTemplate = new GzhNewsTemplate();
+                    gzhNewsTemplate.setTemplateType("3");   //3 代表电子会员卡充值成功模板类型
+                    gzhNewsTemplate.setStationId(stationId);
+                    GzhNewsTemplate gzhNewsTemplateInfo = gzhNewsTemplateService.getGzhNewsTemplate(gzhNewsTemplate);
+                    if(gzhNewsTemplateInfo !=null && gzhNewsTemplateInfo.getTemplateId() !=null){
+                        List<WxMpTemplateData> wxMpTemplate = new ArrayList<>();
+                        wxMpTemplate.add(new WxMpTemplateData("first","尊敬的"+customerName+",您好:\n" + "您在"+stationName+"的电子会员卡充值成功信息如下"));
+                        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("keyword5", new SimpleDateFormat("yyyy年MM月dd日HH时mm分").format(new Date())));
+                        wxMpTemplate.add(new WxMpTemplateData("remark","感谢您在"+ stationName+"的本次充值!"));
+                        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);
+                        }
+
+                    }
+                }
             }
         }else {
             logger.info("验签失败");

+ 3 - 0
YijiaRestful/src/main/java/com/platform/yijia/controller/IntegralShoppingMallController.java

@@ -211,6 +211,9 @@ public class IntegralShoppingMallController {
                         //插入客户积分记录
                         customerPointsRecordService.insertCustomerPointsRecordInfo(customerPointsRecord);
 
+                        if(customerPointsInfo.getMobilePhone() !=null){     //用户手机号
+                            integralOrder.setMobilePhone(customerPointsInfo.getMobilePhone());
+                        }
                         integralOrder.setWaresPic(integralWaresInfo.getWaresPic());
                         integralOrder.setWaresDetail(integralWaresInfo.getWaresDetail());
                         boolean b = integralOrderService.insertIntegralOrder(integralOrder);

+ 3 - 2
YijiaRestful/src/main/java/com/platform/yijia/pojo/CustomerCardSettingDetail.java

@@ -13,7 +13,8 @@ public class CustomerCardSettingDetail {
     private Integer cardSettingDetailId;    //规则明细ID
     private Integer parentId;       //所对应电子会员卡ID
     private String settingRuleType;     //设置充值优惠类型:1,按赠送金额;2,按赠送比例
-    private BigDecimal discountAmtTerm;     //优惠条件金额
+    private BigDecimal discountAmtStart;     //优惠条件金额起始值
+    private BigDecimal discountAmtEnd;     //优惠条件金额结束值
     private BigDecimal presentAmt;          //赠送金额值或者赠送c充值金额的比例
-    private Date  createTime;           //创建时间
+    private String  oilName;           //创建时间
 }

+ 1 - 0
YijiaRestful/src/main/java/com/platform/yijia/pojo/IntegralOrder.java

@@ -27,4 +27,5 @@ public class IntegralOrder {
     private  Integer stationId;          //油站ID
     private  String stationName;        //'会员名称',
     private  String printerStatus;      //是否已打印小票
+    private  String mobilePhone;         //手机号
 }

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

@@ -107,6 +107,7 @@ public class WeiXinUserUtil {
         if(jsonObject != null && jsonObject.containsKey("unionid")){
             resultMap.put("unionId", jsonObject.getString("unionid"));
         }
+        resultMap.put("code", code);
         return resultMap;
     }
 

+ 12 - 5
YijiaRestful/src/main/resources/mapper/ElectronicMembershipCardMapper.xml

@@ -58,8 +58,10 @@
         <id     column="cardSettingDetailId"        jdbcType="INTEGER"      property="cardSettingDetailId" />
         <result column="parent_id"                  jdbcType="INTEGER"      property="parentId"/>
         <result column="setting_rule_type"          jdbcType="VARCHAR"      property="settingRuleType" />
-        <result column="discount_amt_term"          jdbcType="DECIMAL"      property="discountAmtTerm" />
+        <result column="discount_amt_start"         jdbcType="DECIMAL"      property="discountAmtStart" />
+        <result column="discount_amt_end"           jdbcType="DECIMAL"      property="discountAmtEnd" />
         <result column="present_amt"                jdbcType="DECIMAL"      property="presentAmt"/>
+        <result column="oil_name"                   jdbcType="VARCHAR"      property="oilName" />
     </resultMap>
 
     <!--查询油站电子会员卡(储蓄卡)充值设置规则-->
@@ -79,8 +81,10 @@
             T2.id                   AS      cardSettingDetailId,
             T2.parent_id,
             T2.setting_rule_type,
-            T2.discount_amt_term,
-            T2.present_amt
+            T2.discount_amt_start,
+            T2.discount_amt_end,
+            T2.present_amt,
+            T2.oil_name
         FROM
             customer_card_setting AS T1 LEFT JOIN customer_card_setting_detail AS T2 ON T1.id = T2.parent_id
         <where>
@@ -88,11 +92,14 @@
                 T1.station_id = #{stationId}
             </if>
             <if test="cardOilsType !=null">
-               AND T1.card_oils_type = #{cardOilsType}
+                AND FIND_IN_SET(#{cardOilsType}, T1.card_oils_type)
+            </if>
+            <if test="cardOilsType !=null">
+                AND T2.oil_name = #{cardOilsType}
             </if>
         </where>
         <if test="orderBy !=null and orderBy !=''">
-            ORDER BY discount_amt_term ${orderBy}
+            ORDER BY T2.discount_amt_end ${orderBy}
         </if>
 
     </select>

+ 8 - 1
YijiaRestful/src/main/resources/mapper/IntegralOrderMapper.xml

@@ -18,12 +18,13 @@
     <result column="integral"           jdbcType="INTEGER"      property="integral" />
     <result column="station_id"         jdbcType="INTEGER"      property="stationId" />
     <result column="printer_status"     jdbcType="VARCHAR"      property="printerStatus" />
+    <result column="mobile_phone"       jdbcType="VARCHAR"      property="mobilePhone" />
   </resultMap>
 
   <!--查询列-->
   <sql id="Base_Column_List">
     id, integral_order_no, wares_type, wares_name, wares_name, wares_id, wares_pic, wares_detail, union_id, customer_name, exchange_num, exchange_time,
-    status, integral, station_id
+    status, integral, station_id, printer_status, mobile_phone
   </sql>
 
   <!--查询个人积分订单信息-->
@@ -108,6 +109,9 @@
       <if test="printerStatus !=null">
         printer_status,
       </if>
+      <if test="mobilePhone !=null">
+        mobile_phone,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="integralOrderNo !=null">
@@ -155,6 +159,9 @@
       <if test="printerStatus !=null">
         #{printerStatus},
       </if>
+      <if test="mobilePhone !=null">
+        #{mobilePhone},
+      </if>
     </trim>
   </insert>