|
@@ -59,7 +59,72 @@ public class ElectronicMembershipCardController {
|
|
|
//用户充值储蓄卡拉起随行付支付接口
|
|
|
@RequestMapping(value = "/rechargeBalance", method = RequestMethod.POST)
|
|
|
@ResponseBody
|
|
|
- public String rechargeBalance(@RequestBody RechargeBalance rechargeBalance){
|
|
|
+ public String rechargeBalance(RechargeBalance rechargeBalance){
|
|
|
+ Gson gson =new Gson();
|
|
|
+ //返回结果集
|
|
|
+ ResultData resultData = null;
|
|
|
+ if(rechargeBalance !=null){
|
|
|
+ BigDecimal amt = new BigDecimal(rechargeBalance.getAmt());
|
|
|
+ String openId = rechargeBalance.getOpenId(); //公众号的openId
|
|
|
+ Integer stationId = rechargeBalance.getStationId();
|
|
|
+ BigDecimal presentAmt = new BigDecimal(rechargeBalance.getPresentAmt());
|
|
|
+ String customerName = rechargeBalance.getCustomerName();
|
|
|
+ String cardOilsType = rechargeBalance.getCardOilsType();
|
|
|
+ String unionId = rechargeBalance.getUnionId();
|
|
|
+ String stationName = rechargeBalance.getStationName();
|
|
|
+ //电子会员卡使用记录
|
|
|
+ CustomerCardUseRecord customerCardUseRecord = new CustomerCardUseRecord();
|
|
|
+ customerCardUseRecord.setUnionId(unionId);
|
|
|
+ customerCardUseRecord.setStationId(stationId);
|
|
|
+ customerCardUseRecord.setAmt(amt);
|
|
|
+ customerCardUseRecord.setPresentAmt(presentAmt);
|
|
|
+ customerCardUseRecord.setCardOilsType(cardOilsType);
|
|
|
+ customerCardUseRecord.setStationName(stationName);
|
|
|
+ customerCardUseRecord.setCustomerName(customerName);
|
|
|
+ customerCardUseRecord.setUsageType("+");
|
|
|
+ customerCardUseRecord.setType("1"); //1表示微信
|
|
|
+ customerCardUseRecord.setCreateTime(new Date());
|
|
|
+ customerCardUseRecord.setStatus("0");
|
|
|
+ //订单规则 时间+6位随机数
|
|
|
+ Random random = new Random();
|
|
|
+ String str="";
|
|
|
+ for(int i=0; i<6; i++){
|
|
|
+ str+=random.nextInt(10);
|
|
|
+ }
|
|
|
+ String orderNo = System.nanoTime()+str;
|
|
|
+ customerCardUseRecord.setOrderNo(orderNo);
|
|
|
+
|
|
|
+ //电子会员卡
|
|
|
+ CustomerElectronicCard customerElectronicCard = new CustomerElectronicCard();
|
|
|
+// customerElectronicCard.setUnionId(unionId);
|
|
|
+// customerElectronicCard.setStationId(stationId);
|
|
|
+// customerElectronicCard.setCardOilsType(cardOilsType);
|
|
|
+ customerElectronicCard.setId(rechargeBalance.getId());
|
|
|
+ customerElectronicCard.setRecentlyTime(new Date());
|
|
|
+
|
|
|
+ //获取当前用户要充值的的电子会员卡信息
|
|
|
+ CustomerElectronicCard electronicCardInfo = electronicMembershipCardService.getElectronicCardInfo(customerElectronicCard);
|
|
|
+ if(electronicCardInfo != null){
|
|
|
+ BigDecimal amtBalance = electronicCardInfo.getAmt(); //用户当前卡内余额
|
|
|
+ if(presentAmt !=null){ //有赠送金额时
|
|
|
+ customerElectronicCard.setAmt(amtBalance.add(presentAmt).add(amt));
|
|
|
+ }else { //无赠送金额时
|
|
|
+ customerElectronicCard.setAmt(amtBalance.add(amt));
|
|
|
+ }
|
|
|
+ electronicMembershipCardService.updateElectronicCardInfo(customerElectronicCard); //更新电子会员看余额信息
|
|
|
+ electronicMembershipCardService.insetCardUseRecord(customerCardUseRecord); //插入电子会员卡的使用记录
|
|
|
+ resultData = ResultData.success(orderNo);
|
|
|
+ }else {
|
|
|
+ resultData = ResultData.error(CodeMsg.USER_EXSIST_CARD);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return gson.toJson(resultData);
|
|
|
+ }
|
|
|
+
|
|
|
+ //用户充值储蓄卡拉起随行付支付接口
|
|
|
+ @RequestMapping(value = "/rechargeBalanceSXFPay", method = RequestMethod.POST)
|
|
|
+ @ResponseBody
|
|
|
+ public String rechargeBalanceSXFPay(@RequestBody RechargeBalance rechargeBalance){
|
|
|
Gson gson =new Gson();
|
|
|
//返回结果集
|
|
|
ResultData resultData = null;
|
|
@@ -289,10 +354,25 @@ public class ElectronicMembershipCardController {
|
|
|
HashMap<String, Object> result = JSON.parseObject(gson.toJson(reqData), LinkedHashMap.class, Feature.OrderedField);
|
|
|
//验签
|
|
|
String resultStr = RSASignature.getOrderContent(result);
|
|
|
- JSONObject req = new JSONObject();
|
|
|
+ //JSONObject req = new JSONObject();
|
|
|
System.out.println(resultStr);
|
|
|
if (RSASignature.doCheck(resultStr, sign, SXFPaySign.sxfPublic)) {
|
|
|
logger.info("验签成功");
|
|
|
+ //随行付回调验签成功更新客户电子卡余额 和 更新客户充值记录状态
|
|
|
+ CustomerCardUseRecord customerCardUseRecord = new CustomerCardUseRecord();
|
|
|
+ customerCardUseRecord.setOrderNo(ordNo);
|
|
|
+ CustomerCardUseRecord customerCardUseRecordInfo = electronicMembershipCardService.getCardRecordByOrderNo(customerCardUseRecord);
|
|
|
+ // 0表示未支付 1表示已支付
|
|
|
+ if(customerCardUseRecordInfo !=null && customerCardUseRecordInfo.getStatus().equals("0")){
|
|
|
+ CustomerElectronicCard customerElectronicCard = new CustomerElectronicCard();
|
|
|
+ customerElectronicCard.setUnionId(customerCardUseRecord.getUnionId());
|
|
|
+ customerElectronicCard.setAmt(new BigDecimal(amt));
|
|
|
+ customerElectronicCard.setRecentlyTime(new Date());
|
|
|
+ electronicMembershipCardService.updateElectronicCardInfo(customerElectronicCard);
|
|
|
+ customerCardUseRecord.setStatus("1");
|
|
|
+ electronicMembershipCardService.updateCardRecordStatusByOrderNo(customerCardUseRecord);
|
|
|
+ logger.info("=====================电子会员卡充值成功=============================");
|
|
|
+ }
|
|
|
}else {
|
|
|
logger.info("验签失败");
|
|
|
}
|