|
@@ -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("验签失败");
|