|
@@ -179,172 +179,60 @@ public class PayOrderController {
|
|
|
payOrder.setReceivableAmt(payOrderRequest.getReceivableAmt()); //订单应收金额
|
|
|
String oilName =payOrderRequest.getOilName();
|
|
|
payOrder.setOilName(oilName); //油品名称
|
|
|
- String cardOilsType ="";
|
|
|
switch (oilName){ //根据油品名称存储油品类型 1.柴油 2 汽油
|
|
|
case "92#":
|
|
|
payOrder.setOilType("1");
|
|
|
- cardOilsType ="1";
|
|
|
break;
|
|
|
case "95#":
|
|
|
payOrder.setOilType("1");
|
|
|
- cardOilsType ="1";
|
|
|
break;
|
|
|
case "97#":
|
|
|
payOrder.setOilType("1");
|
|
|
- cardOilsType ="1";
|
|
|
break;
|
|
|
case "0#":
|
|
|
payOrder.setOilType("2");
|
|
|
- cardOilsType ="2";
|
|
|
break;
|
|
|
case "-10#":
|
|
|
payOrder.setOilType("2");
|
|
|
- cardOilsType ="2";
|
|
|
break;
|
|
|
case "-20#":
|
|
|
payOrder.setOilType("2");
|
|
|
- cardOilsType ="2";
|
|
|
break;
|
|
|
}
|
|
|
payOrder.setOilType(orderType);
|
|
|
- //判断当前传来支付类型是电子卡支付 还是微信
|
|
|
- if(payOrderRequest.getPayType().equals("wx")){
|
|
|
- payOrder.setPayType("wx"); //支付类型
|
|
|
- switch (orderType){
|
|
|
- case "1": //油品
|
|
|
- payOrderMapper.insertSelective(payOrder);
|
|
|
- resultMap.put("ordNo", ordNo);
|
|
|
- resultData = ResultData.success(resultMap);
|
|
|
- break;
|
|
|
- case "2": //非油品
|
|
|
- Map<String, String> m = stationService.getStationAppIdAndAppSecret(payOrderRequest.getStationId());
|
|
|
- if(m.containsKey("stationName") && m.get("stationName") !=null){
|
|
|
- payOrder.setStationName(m.get("stationName"));
|
|
|
- }
|
|
|
- payOrder.setAmt(Double.valueOf(payOrderRequest.getReceivableAmt())); //非油品金额
|
|
|
- payOrder.setDiscountAmt(Double.valueOf(0)); //优惠金额
|
|
|
- payOrder.setOilPirce(payOrderRequest.getReceivableAmt().toString()); //非油品价格
|
|
|
- payOrder.setOrderLiters("0");
|
|
|
- resultMap.put("discountAmt", "0"); //优惠价格
|
|
|
- resultMap.put("amt", payOrderRequest.getReceivableAmt()); //实收价格
|
|
|
- resultMap.put("receivableAmt", payOrderRequest.getReceivableAmt()); //应收价格
|
|
|
- resultMap.put("oilLiters", "0");
|
|
|
- resultMap.put("discountPrice", "0");
|
|
|
- payOrderMapper.insertSelective(payOrder);
|
|
|
- resultMap.put("ordNo", ordNo);
|
|
|
- resultData = ResultData.success(resultMap);
|
|
|
- break;
|
|
|
- }
|
|
|
- }else if(payOrderRequest.getPayType().equals("dzk")){ //电子会员卡
|
|
|
- payOrder.setPayType("dzk"); //支付类型
|
|
|
- payOrder.setPayDate(new Date()); //支付时间
|
|
|
- payOrder.setReceivedAmt(Double.valueOf(resultMap.get("amt").toString())); //实收金额
|
|
|
- CustomerCardUseRecord customerCardUseRecord = new CustomerCardUseRecord(); //电子会员卡插入消费记录
|
|
|
- BigDecimal balance = null; //电子会员卡余额
|
|
|
- payOrder.setDzkAmt(Double.valueOf(resultMap.get("amt").toString())); //订单电子会员卡消费金额
|
|
|
- CustomerElectronicCard customerElectronicCard = new CustomerElectronicCard();
|
|
|
- customerElectronicCard.setCardOilsType(cardOilsType);
|
|
|
- //customerElectronicCard.setMinaOpenid(payOrderRequest.getOpenId());
|
|
|
- customerElectronicCard.setUnionId(appUserInfoList.get(0).getUnionId());
|
|
|
- customerElectronicCard.setStationId(payOrderRequest.getStationId());
|
|
|
- //获取用户电子会员卡信息
|
|
|
- CustomerElectronicCard cardInfo = electronicMembershipCardService.getElectronicCardInfoByMinaOpenId(customerElectronicCard);
|
|
|
- if(cardInfo !=null ){
|
|
|
- customerCardUseRecord.setOrderNo(ordNo); //电子会员卡记录订单号
|
|
|
- customerCardUseRecord.setUnionId(cardInfo.getUnionId()); //电子会员卡记录用户唯一标识
|
|
|
- customerCardUseRecord.setCustomerNo(cardInfo.getCustomerNo());
|
|
|
- customerCardUseRecord.setAmt(new BigDecimal(resultMap.get("amt").toString())); //电子会员卡记录用户余额
|
|
|
- customerCardUseRecord.setStatus("1");
|
|
|
- customerCardUseRecord.setCardOilsType(cardInfo.getCardOilsType());
|
|
|
- customerCardUseRecord.setBalance(cardInfo.getAmt().subtract(new BigDecimal(resultMap.get("amt").toString())));
|
|
|
- customerCardUseRecord.setStationName(cardInfo.getStationName());
|
|
|
- customerCardUseRecord.setStationId(cardInfo.getStationId());
|
|
|
- customerCardUseRecord.setUsageType("-");
|
|
|
- customerCardUseRecord.setCustomerName(payOrder.getConsumer());
|
|
|
- customerCardUseRecord.setCreateTime(new Date());
|
|
|
- balance = cardInfo.getAmt();
|
|
|
- }
|
|
|
- //判断订单金额是否小于电子会员卡的余额
|
|
|
- if(balance !=null && customerCardUseRecord.getAmt().compareTo(balance) == -1){
|
|
|
- electronicMembershipCardService.insetCardUseRecord(customerCardUseRecord);
|
|
|
- //更新电子会员卡余额
|
|
|
- CustomerElectronicCard c = new CustomerElectronicCard();
|
|
|
- c.setAmt(balance.subtract(customerCardUseRecord.getAmt()));
|
|
|
- c.setUnionId(customerCardUseRecord.getUnionId());
|
|
|
- c.setStationId(customerCardUseRecord.getStationId());
|
|
|
- c.setCardOilsType(cardOilsType);
|
|
|
- electronicMembershipCardService.updateElectronicCardInfoByUnionId(c);
|
|
|
- payOrder.setStatus("1");
|
|
|
+ StationInfo stationInfo = new StationInfo();
|
|
|
+ stationInfo.setStationId(payOrderRequest.getStationId());
|
|
|
+ StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
|
|
|
+ if(stationInfos !=null){
|
|
|
+ //获取油站图片和名称
|
|
|
+ resultMap.put("stationPic", stationInfos.getStationPic());
|
|
|
+ resultMap.put("stationName", stationInfos.getStationName());
|
|
|
+ }
|
|
|
+ payOrder.setPayType("wx"); //支付类型
|
|
|
+ switch (orderType){
|
|
|
+ case "1": //油品
|
|
|
payOrderMapper.insertSelective(payOrder);
|
|
|
- //更新客户表
|
|
|
- CustomerManage customerManage = new CustomerManage();
|
|
|
- customerManage.setStationId(payOrderRequest.getStationId());
|
|
|
- customerManage.setMinaOpenid(payOrderRequest.getOpenId());
|
|
|
- customerManage.setOilName(payOrderRequest.getOilName());
|
|
|
- Map<String, Object> params_1 = new HashMap<>();
|
|
|
- params_1.put("stationId", payOrderRequest.getStationId().toString());
|
|
|
- params_1.put("oilName", payOrderRequest.getOilName());
|
|
|
- //获取该油站的优惠方式
|
|
|
- String discountPlanType = stationService.getStationDiscountWay(payOrderRequest.getStationId().toString());
|
|
|
- logger.info("油站优惠方式:"+discountPlanType);
|
|
|
- CustomerManage customerManageInfo = customerManagerService.getCustomerManageInfo(customerManage);
|
|
|
- if(customerManageInfo !=null){
|
|
|
- customerManage.setPhoneNumber(appUserInfoList.get(0).getMobilePhone());
|
|
|
- customerManage.setAmt(customerManageInfo.getAmt().add(new BigDecimal(resultMap.get("amt").toString())));
|
|
|
- customerManage.setLiters(customerManageInfo.getLiters().add(new BigDecimal(resultMap.get("oilLiters").toString())));
|
|
|
- if(discountPlanType !=null && discountPlanType.equals("1")){
|
|
|
- List<Map> customerGradeInfo = customerGradeServices.getCustomerGradeList(params_1); //直降
|
|
|
- logger.info("该站直降等级信息:"+ customerGradeInfo);
|
|
|
- for (Map m: customerGradeInfo){
|
|
|
- if(Double.valueOf(customerManage.getAmt().toString()) >= Double.valueOf(m.get("memberConditStart").toString()) && Double.valueOf(customerManage.getAmt().toString()) < Double.valueOf(m.get("memberConditEnd").toString())){
|
|
|
- customerManage.setGrade(m.get("grade").toString()); //存入等级名称
|
|
|
- customerManage.setMemberGrade(m.get("id").toString()); //存入等级ID
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- logger.info("直降等级信息是否存入客户表:"+ "直降ID:"+ customerManage.getMemberGrade()+ "直降名称: "+customerManage.getGrade());
|
|
|
- }
|
|
|
- customerManagerService.updateCustomerInfo(customerManage);
|
|
|
- }else {
|
|
|
- customerManage.setCustomerName(payOrder.getConsumer());
|
|
|
- customerManage.setStationName(payOrder.getStationName());
|
|
|
- customerManage.setLiters(new BigDecimal(resultMap.get("oilLiters").toString()));
|
|
|
- customerManage.setAmt(new BigDecimal(resultMap.get("amt").toString()));
|
|
|
- customerManage.setPhoneNumber(appUserInfoList.get(0).getMobilePhone());
|
|
|
- customerManage.setMinaUserId(appUserInfoList.get(0).getUserId());
|
|
|
- customerManage.setUnionId(appUserInfoList.get(0).getUnionId());
|
|
|
- if(discountPlanType !=null && discountPlanType.equals("1")){
|
|
|
- List<Map> customerGradeInfo = customerGradeServices.getCustomerGradeList(params_1); //直降
|
|
|
- logger.info("该站直降等级信息:"+ customerGradeInfo);
|
|
|
- if(customerGradeInfo !=null && customerGradeInfo.size() >0){
|
|
|
- customerManage.setGrade(customerGradeInfo.get(0).get("grade").toString()); //存入等级名称
|
|
|
- customerManage.setMemberGrade(customerGradeInfo.get(0).get("id").toString()); //存入等级ID
|
|
|
- }
|
|
|
- logger.info("直降等级信息是否存入客户表:"+ "直降ID:"+ customerManage.getMemberGrade()+ "直降名称: "+customerManage.getGrade());
|
|
|
- }
|
|
|
- customerManagerService.insertCustomerInfo(customerManage);
|
|
|
+ resultMap.put("ordNo", ordNo);
|
|
|
+ break;
|
|
|
+ case "2": //非油品
|
|
|
+ Map<String, String> m = stationService.getStationAppIdAndAppSecret(payOrderRequest.getStationId());
|
|
|
+ if(m.containsKey("stationName") && m.get("stationName") !=null){
|
|
|
+ payOrder.setStationName(m.get("stationName"));
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
- //计算积分
|
|
|
- CalculateIntegral calculateIntegral = new CalculateIntegral();
|
|
|
- calculateIntegral.setAmt(new BigDecimal(payOrder.getAmt()));
|
|
|
- calculateIntegral.setReceivableAmt(new BigDecimal(payOrder.getReceivableAmt()));
|
|
|
- calculateIntegral.setOilLiters(new BigDecimal(payOrder.getOrderLiters()));
|
|
|
- calculateIntegral.setOilName(payOrder.getOilName());
|
|
|
- calculateIntegral.setOilType(payOrder.getOrderType());
|
|
|
- calculateIntegral.setStationId(payOrder.getStationId());
|
|
|
- calculateIntegral.setUnionId(appUserInfoList.get(0).getUnionId());
|
|
|
- calculateIntegral.setOpenId(payOrderRequest.getOpenId()); //小程序openId
|
|
|
- //计算积分且推送积分
|
|
|
- //CustomerManage customerManage = new CustomerManage();
|
|
|
- this.calculateIntegralAndPushIntegral(calculateIntegral, customerManage);
|
|
|
+ payOrder.setAmt(Double.valueOf(payOrderRequest.getReceivableAmt())); //非油品金额
|
|
|
+ payOrder.setDiscountAmt(Double.valueOf(0)); //优惠金额
|
|
|
+ payOrder.setOilPirce(payOrderRequest.getReceivableAmt().toString()); //非油品价格
|
|
|
+ payOrder.setOrderLiters("0");
|
|
|
+ resultMap.put("discountAmt", "0"); //优惠价格
|
|
|
+ resultMap.put("amt", payOrderRequest.getReceivableAmt()); //实收价格
|
|
|
+ resultMap.put("receivableAmt", payOrderRequest.getReceivableAmt()); //应收价格
|
|
|
+ resultMap.put("oilLiters", "0");
|
|
|
+ resultMap.put("discountPrice", "0");
|
|
|
+ payOrderMapper.insertSelective(payOrder);
|
|
|
resultMap.put("ordNo", ordNo);
|
|
|
- resultData = ResultData.success(resultMap);
|
|
|
- }else {
|
|
|
- resultData=ResultData.error(CodeMsg.BALANCE_NOT_EENOUGH);
|
|
|
- }
|
|
|
+ break;
|
|
|
}
|
|
|
+ resultData = ResultData.success(resultMap);
|
|
|
}else{
|
|
|
//登录人验证失败
|
|
|
resultData=ResultData.error(CodeMsg.USER_NOT_EXSIST);
|
|
@@ -371,11 +259,13 @@ public class PayOrderController {
|
|
|
stationOilPrice.setOilName(oilName);
|
|
|
StationOilPrice oilPriceInfo = stationService.getStationOilPrice(stationOilPrice);
|
|
|
String oilPrice = oilPriceInfo.getOilPrice();
|
|
|
+ String stationNanme = oilPriceInfo.getStationNanme();
|
|
|
BigDecimal oilLiters = null;
|
|
|
BigDecimal discountAmt =null;
|
|
|
BigDecimal discountPrice = null;
|
|
|
BigDecimal amt = null;
|
|
|
|
|
|
+ //resultMap.put("stationName", stationNanme);
|
|
|
resultMap.put("oilPrice", oilPrice); //油品价格
|
|
|
resultMap.put("receivableAmt", receivableAmt); //应收价格
|
|
|
//该油站的优惠方式
|