|
@@ -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("===================================本次充值流程结束===========================================");
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
}
|