|
@@ -8,6 +8,7 @@ import com.platform.yijia.pojo.AppUserInfo;
|
|
|
import com.platform.yijia.pojo.CustomerManage;
|
|
|
import com.platform.yijia.pojo.PayOrder;
|
|
|
import com.platform.yijia.service.AppUserInfoService;
|
|
|
+import com.platform.yijia.service.CustomerGradeServices;
|
|
|
import com.platform.yijia.service.PayOrderService;
|
|
|
import com.platform.yijia.service.StationOilGunService;
|
|
|
import com.platform.yijia.utils.*;
|
|
@@ -32,6 +33,8 @@ public class PayController {
|
|
|
private AppUserInfoService appUserInfoService;
|
|
|
@Resource
|
|
|
private StationOilGunService stationOilGunService;
|
|
|
+ @Resource
|
|
|
+ private CustomerGradeServices customerGradeServices;
|
|
|
|
|
|
/***
|
|
|
* 微信子商户支付接口
|
|
@@ -478,7 +481,7 @@ public class PayController {
|
|
|
req.put("msg","修改订单状态成功");
|
|
|
logger.info(req.toString());
|
|
|
|
|
|
- //将用户消费的信息插入顾客表 以手机号 油品名称 油站id为条件插入且存入 加油升数、实收金额、油站名称 根据订单号查询用户手机号
|
|
|
+ //将用户消费的信息插入顾客表: 以手机号 油品名称 油站id为条件插入且存入 加油升数、实收金额、油站名称 根据订单号查询用户手机号
|
|
|
Map<String, Object> infoMap = payOrderService.getOrderInfoAndUserInfoByOrderNo(payOrder); //获取该订单手机号、加油升数、实收金额、油站名称
|
|
|
//手机号必须有
|
|
|
if(infoMap != null && infoMap.containsKey("mobilePhone") && infoMap.get("mobilePhone") !=null ){
|
|
@@ -527,87 +530,86 @@ public class PayController {
|
|
|
customerManage.setRegtime(blogRegTime);
|
|
|
}
|
|
|
}
|
|
|
- //第一次判断用户是否存在原因:用户新登录时在向客户表中插入数据时没有油品名称 油站ID 只有手机号
|
|
|
- CustomerManage existCustomerNoOilName = payOrderService.isExistCustomer(customerManage);
|
|
|
- if(existCustomerNoOilName !=null && existCustomerNoOilName.getOilName() == null){
|
|
|
- customerManage.setStationId(Integer.valueOf(infoMap.get("stationId").toString())); //油站ID
|
|
|
- customerManage.setOilName(infoMap.get("oilName").toString()); //油品名称
|
|
|
- customerManage.setStationName(infoMap.get("stationName").toString()); //存入油站名称
|
|
|
- customerManage.setAmt(BigDecimal.valueOf((Double) infoMap.get("amt"))); //存入金额
|
|
|
- customerManage.setLiters(BigDecimal.valueOf((Double) infoMap.get("orderLiters"))); //存入升数
|
|
|
- //不存在 新增
|
|
|
- //logger.info("不存在客户 新增时参数: " + customerManage.toString());
|
|
|
- //只根据手机号更新
|
|
|
- payOrderService.updateCustomerByPhoneNumber(customerManage);
|
|
|
- }else{
|
|
|
- customerManage.setStationId(Integer.valueOf(infoMap.get("stationId").toString())); //油站ID
|
|
|
- customerManage.setOilName(infoMap.get("oilName").toString()); //油品名称
|
|
|
- customerManage.setStationName(infoMap.get("stationName").toString()); //存入油站名称
|
|
|
- //第二次判断用户是否存在原因:已存在客户信息 此时用户已下过订单 存在油品名称 油站ID
|
|
|
- CustomerManage existCustomer = payOrderService.isExistCustomer(customerManage);
|
|
|
- logger.info("查询出客户是否存在数据 null 表示没有" + existCustomer);
|
|
|
- //判断该用户是否已存在
|
|
|
- if(existCustomer != null){ //存在该用户时更新
|
|
|
- //此处if放null处理
|
|
|
- if(existCustomer.getAmt() !=null){
|
|
|
- //存入金额 累加原来金额
|
|
|
- customerManage.setAmt(existCustomer.getAmt().add(BigDecimal.valueOf((Double) infoMap.get("amt"))));
|
|
|
- }else {
|
|
|
- customerManage.setAmt(BigDecimal.valueOf((Double) infoMap.get("amt")));
|
|
|
- }
|
|
|
|
|
|
- if(existCustomer.getLiters() !=null){
|
|
|
- //存入升数 累加原来升数
|
|
|
- customerManage.setLiters(existCustomer.getLiters().add(BigDecimal.valueOf((Double) infoMap.get("orderLiters"))));
|
|
|
- }else {
|
|
|
- customerManage.setLiters(BigDecimal.valueOf((Double) infoMap.get("orderLiters")));
|
|
|
- }
|
|
|
- logger.info("存在客户 更新时手机号参数: " + customerManage.getPhoneNumber());
|
|
|
- //存在 更新
|
|
|
- payOrderService.updateCustomer(customerManage);
|
|
|
- }else{
|
|
|
- customerManage.setAmt(BigDecimal.valueOf((Double) infoMap.get("amt"))); //存入金额
|
|
|
- customerManage.setLiters(BigDecimal.valueOf((Double) infoMap.get("orderLiters"))); //存入升数
|
|
|
- //不存在 新增
|
|
|
- logger.info("不存在客户 新增时参数: " + customerManage.toString());
|
|
|
- payOrderService.insertCustomer(customerManage);
|
|
|
+ customerManage.setStationId(Integer.valueOf(infoMap.get("stationId").toString())); //油站ID
|
|
|
+ customerManage.setOilName(infoMap.get("oilName").toString()); //油品名称
|
|
|
+ customerManage.setStationName(infoMap.get("stationName").toString()); //存入油站名称
|
|
|
+ //已存在用户信息 existCustomer
|
|
|
+ CustomerManage existCustomer = payOrderService.isExistCustomer(customerManage);
|
|
|
+ logger.info("查询出客户是否存在数据 null 表示没有" + existCustomer);
|
|
|
+ //判断该用户是否已存在
|
|
|
+ if(existCustomer != null){ //存在该用户时更新
|
|
|
+ //此处if放null处理
|
|
|
+ if(existCustomer.getAmt() !=null){
|
|
|
+ //存入金额 累加原来金额
|
|
|
+ customerManage.setAmt(existCustomer.getAmt().add(BigDecimal.valueOf((Double) infoMap.get("amt"))));
|
|
|
+ }else {
|
|
|
+ customerManage.setAmt(BigDecimal.valueOf((Double) infoMap.get("amt")));
|
|
|
}
|
|
|
+ if(existCustomer.getLiters() !=null){
|
|
|
+ //存入升数 累加原来升数
|
|
|
+ customerManage.setLiters(existCustomer.getLiters().add(BigDecimal.valueOf((Double) infoMap.get("orderLiters"))));
|
|
|
+ }else {
|
|
|
+ customerManage.setLiters(BigDecimal.valueOf((Double) infoMap.get("orderLiters")));
|
|
|
+ }
|
|
|
+ logger.info("存在客户 更新时手机号参数: " + customerManage.getPhoneNumber());
|
|
|
|
|
|
+ //用户等级设置 说明:每个油站只存在一种优惠方案。 立减满减在另一张表故作次条件判断,如果该油站没有设置优惠方案则不去存会员等级
|
|
|
+ List<Map> customerGradeInfo = customerGradeServices.getCustomerGradeList(infoMap); //直降
|
|
|
+ if(customerGradeInfo != null && customerGradeInfo.size() >0){
|
|
|
+ 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.setMemberId(m.get("id").toString()); //存入等级ID
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ //立减满减
|
|
|
+ List<Map> customerMarkertPlanList = customerGradeServices.getCustomerMarkertPlanList(infoMap);
|
|
|
+ if(customerMarkertPlanList !=null && customerMarkertPlanList.size() >0){
|
|
|
+ for(Map m: customerMarkertPlanList){
|
|
|
+ if(Double.valueOf(customerManage.getAmt().toString()) >= Double.valueOf(m.get("discountAmt").toString())){
|
|
|
+ customerManage.setGrade(m.get("grade").toString()); //存入等级名称
|
|
|
+ customerManage.setMemberId(m.get("id").toString()); //存入等级ID
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //存在 更新
|
|
|
+ payOrderService.updateCustomer(customerManage);
|
|
|
+ }else{ //该客户不存在时插入
|
|
|
+ //用户等级设置 说明:每个油站只存在一种优惠方案。立减满减在另一张表故作此条件判断,如果该油站没有设置优惠方案则不去存会员等级
|
|
|
+ List<Map> customerGradeInfo = customerGradeServices.getCustomerGradeList(infoMap); //直降
|
|
|
+ if(customerGradeInfo != null && customerGradeInfo.size() >0){
|
|
|
+ for (Map m: customerGradeInfo){
|
|
|
+ if(Double.valueOf(infoMap.get("amt").toString()) >= Double.valueOf(m.get("memberConditStart").toString()) && Double.valueOf(infoMap.get("amt").toString()) < Double.valueOf(m.get("memberConditEnd").toString())){
|
|
|
+ customerManage.setGrade(m.get("grade").toString()); //存入等级名称
|
|
|
+ customerManage.setMemberId(m.get("id").toString()); //存入等级ID
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ //立减满减
|
|
|
+ List<Map> customerMarkertPlanList = customerGradeServices.getCustomerMarkertPlanList(infoMap);
|
|
|
+ if(customerMarkertPlanList !=null && customerMarkertPlanList.size() >0){
|
|
|
+ for(Map m: customerMarkertPlanList){
|
|
|
+ if(Double.valueOf(infoMap.get("amt").toString()) >= Double.valueOf(m.get("discountAmt").toString())){
|
|
|
+ customerManage.setGrade(m.get("grade").toString()); //存入等级名称
|
|
|
+ customerManage.setMemberId(m.get("id").toString()); //存入等级ID
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ customerManage.setAmt(BigDecimal.valueOf((Double) infoMap.get("amt"))); //存入金额
|
|
|
+ customerManage.setLiters(BigDecimal.valueOf((Double) infoMap.get("orderLiters"))); //存入升数
|
|
|
+ //不存在 新增
|
|
|
+ logger.info("不存在客户 新增时参数: " + customerManage.toString());
|
|
|
+ payOrderService.insertCustomer(customerManage);
|
|
|
}
|
|
|
|
|
|
-// customerManage.setStationId(Integer.valueOf(infoMap.get("stationId").toString())); //油站ID
|
|
|
-// customerManage.setOilName(infoMap.get("oilName").toString()); //油品名称
|
|
|
-// customerManage.setStationName(infoMap.get("stationName").toString()); //存入油站名称
|
|
|
-// //已存在用户信息 existCustomer
|
|
|
-// CustomerManage existCustomer = payOrderService.isExistCustomer(customerManage);
|
|
|
-// logger.info("查询出客户是否存在数据 null 表示没有" + existCustomer);
|
|
|
-// //判断该用户是否已存在
|
|
|
-// if(existCustomer != null){ //存在该用户时更新
|
|
|
-// //此处if放null处理
|
|
|
-// if(existCustomer.getAmt() !=null){
|
|
|
-// //存入金额 累加原来金额
|
|
|
-// customerManage.setAmt(existCustomer.getAmt().add(BigDecimal.valueOf((Double) infoMap.get("amt"))));
|
|
|
-// }else {
|
|
|
-// customerManage.setAmt(BigDecimal.valueOf((Double) infoMap.get("amt")));
|
|
|
-// }
|
|
|
-//
|
|
|
-// if(existCustomer.getLiters() !=null){
|
|
|
-// //存入升数 累加原来升数
|
|
|
-// customerManage.setLiters(existCustomer.getLiters().add(BigDecimal.valueOf((Double) infoMap.get("orderLiters"))));
|
|
|
-// }else {
|
|
|
-// customerManage.setLiters(BigDecimal.valueOf((Double) infoMap.get("orderLiters")));
|
|
|
-// }
|
|
|
-// logger.info("存在客户 更新时手机号参数: " + customerManage.getPhoneNumber());
|
|
|
-// //存在 更新
|
|
|
-// payOrderService.updateCustomer(customerManage);
|
|
|
-// }else{
|
|
|
-// customerManage.setAmt(BigDecimal.valueOf((Double) infoMap.get("amt"))); //存入金额
|
|
|
-// customerManage.setLiters(BigDecimal.valueOf((Double) infoMap.get("orderLiters"))); //存入升数
|
|
|
-// //不存在 新增
|
|
|
-// logger.info("不存在客户 新增时参数: " + customerManage.toString());
|
|
|
-// payOrderService.insertCustomer(customerManage);
|
|
|
-// }
|
|
|
-
|
|
|
//打印机打印小票
|
|
|
String content1;
|
|
|
String content2;
|