|
@@ -9,6 +9,7 @@ import com.caimei365.order.model.bo.VipRecordBo;
|
|
import com.caimei365.order.model.dto.PaySecondDto;
|
|
import com.caimei365.order.model.dto.PaySecondDto;
|
|
import com.caimei365.order.model.dto.PayVipDto;
|
|
import com.caimei365.order.model.dto.PayVipDto;
|
|
import com.caimei365.order.model.po.SplitAccountPo;
|
|
import com.caimei365.order.model.po.SplitAccountPo;
|
|
|
|
+import com.caimei365.order.model.po.UserVipPo;
|
|
import com.caimei365.order.service.PayNonOrderService;
|
|
import com.caimei365.order.service.PayNonOrderService;
|
|
import com.caimei365.order.utils.MathUtil;
|
|
import com.caimei365.order.utils.MathUtil;
|
|
import com.caimei365.order.utils.PayUtil;
|
|
import com.caimei365.order.utils.PayUtil;
|
|
@@ -24,10 +25,8 @@ import javax.annotation.Resource;
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
import java.security.NoSuchAlgorithmException;
|
|
import java.security.NoSuchAlgorithmException;
|
|
import java.security.spec.InvalidKeySpecException;
|
|
import java.security.spec.InvalidKeySpecException;
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.HashMap;
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.Map;
|
|
|
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
/**
|
|
* Description
|
|
* Description
|
|
@@ -332,6 +331,9 @@ public class PayNonOrderServiceImpl implements PayNonOrderService {
|
|
PayParamBo payParam = jsonParam.getData();
|
|
PayParamBo payParam = jsonParam.getData();
|
|
// 获取会员套餐记录
|
|
// 获取会员套餐记录
|
|
VipRecordBo record = payOrderMapper.getVipPackageRecord(payParam.getVipRecordId());
|
|
VipRecordBo record = payOrderMapper.getVipPackageRecord(payParam.getVipRecordId());
|
|
|
|
+ if (null != record.getPayStatus() && 1 == record.getPayStatus()){
|
|
|
|
+ return ResponseJson.error("该笔记录已支付,请勿重复支付!", null);
|
|
|
|
+ }
|
|
payParam.setVipId(record.getPackageId());
|
|
payParam.setVipId(record.getPackageId());
|
|
payParam.setUserId(record.getUserId());
|
|
payParam.setUserId(record.getUserId());
|
|
// 获取会员套餐价格
|
|
// 获取会员套餐价格
|
|
@@ -361,6 +363,9 @@ public class PayNonOrderServiceImpl implements PayNonOrderService {
|
|
payParam.setPayType("ALIPAY_H5");
|
|
payParam.setPayType("ALIPAY_H5");
|
|
// 获取会员套餐记录
|
|
// 获取会员套餐记录
|
|
VipRecordBo record = payOrderMapper.getVipPackageRecord(payParam.getVipRecordId());
|
|
VipRecordBo record = payOrderMapper.getVipPackageRecord(payParam.getVipRecordId());
|
|
|
|
+ if (null != record.getPayStatus() && 1 == record.getPayStatus()){
|
|
|
|
+ return ResponseJson.error("该笔记录已支付,请勿重复支付!", null);
|
|
|
|
+ }
|
|
payParam.setVipId(record.getPackageId());
|
|
payParam.setVipId(record.getPackageId());
|
|
payParam.setUserId(record.getUserId());
|
|
payParam.setUserId(record.getUserId());
|
|
// 获取会员套餐价格
|
|
// 获取会员套餐价格
|
|
@@ -392,6 +397,9 @@ public class PayNonOrderServiceImpl implements PayNonOrderService {
|
|
payParam.setPayType("GATEWAY_UNIONPAY");
|
|
payParam.setPayType("GATEWAY_UNIONPAY");
|
|
// 获取会员套餐记录
|
|
// 获取会员套餐记录
|
|
VipRecordBo record = payOrderMapper.getVipPackageRecord(payParam.getVipRecordId());
|
|
VipRecordBo record = payOrderMapper.getVipPackageRecord(payParam.getVipRecordId());
|
|
|
|
+ if (null != record.getPayStatus() && 1 == record.getPayStatus()){
|
|
|
|
+ return ResponseJson.error("该笔记录已支付,请勿重复支付!", null);
|
|
|
|
+ }
|
|
payParam.setVipId(record.getPackageId());
|
|
payParam.setVipId(record.getPackageId());
|
|
payParam.setUserId(record.getUserId());
|
|
payParam.setUserId(record.getUserId());
|
|
// 获取会员套餐价格
|
|
// 获取会员套餐价格
|
|
@@ -427,7 +435,7 @@ public class PayNonOrderServiceImpl implements PayNonOrderService {
|
|
//商品名称
|
|
//商品名称
|
|
String product = "采美订单" + orderId;
|
|
String product = "采美订单" + orderId;
|
|
json.put("product", product);
|
|
json.put("product", product);
|
|
- String attach = payParam.getVipId() + "," + payParam.getPayType()+ "," + payParam.getUserId() + "," + payParam.getVipRecordId();
|
|
|
|
|
|
+ String attach = payParam.getVipId() + "," + payParam.getUserId() + "," + payParam.getVipRecordId() + "," + payParam.getPayWay() + "," + payParam.getPayType();
|
|
json.put("attach", attach);
|
|
json.put("attach", attach);
|
|
// 升级超级会员默认公账
|
|
// 升级超级会员默认公账
|
|
List<Map<String, String>> list = new ArrayList<>();
|
|
List<Map<String, String>> list = new ArrayList<>();
|
|
@@ -520,17 +528,62 @@ public class PayNonOrderServiceImpl implements PayNonOrderService {
|
|
String[] split = attach.split(",");
|
|
String[] split = attach.split(",");
|
|
// 会员套餐Id
|
|
// 会员套餐Id
|
|
Integer vipId = Integer.valueOf(split[0]);
|
|
Integer vipId = Integer.valueOf(split[0]);
|
|
- // 支付类型
|
|
|
|
- String payType = split[1];
|
|
|
|
// 用户Id
|
|
// 用户Id
|
|
- Integer userId = Integer.valueOf(split[2]);
|
|
|
|
|
|
+ Integer userId = Integer.valueOf(split[1]);
|
|
// 购买历史记录Id
|
|
// 购买历史记录Id
|
|
- Integer recordId = Integer.valueOf(split[3]);
|
|
|
|
|
|
+ Integer recordId = Integer.valueOf(split[2]);
|
|
|
|
+ // 支付方式
|
|
|
|
+ String payWay = split[3];
|
|
|
|
+ // 区分微信支付
|
|
|
|
+ String payType = split[4];
|
|
// 金额
|
|
// 金额
|
|
double payAmount = amount.doubleValue();
|
|
double payAmount = amount.doubleValue();
|
|
String payFormData = json.toJSONString();
|
|
String payFormData = json.toJSONString();
|
|
-
|
|
|
|
- //todo 支付成功-超级会员数据库修改
|
|
|
|
|
|
+ // todo 支付成功-超级会员数据库修改
|
|
|
|
+ UserVipPo userVip = new UserVipPo();
|
|
|
|
+ UserVipPo dbUserVip = payOrderMapper.getUserVipInfo(userId);
|
|
|
|
+ Date beginTime = new Date();
|
|
|
|
+ if (null != dbUserVip && null != dbUserVip.getEndTime()) {
|
|
|
|
+ // 有效期内续费
|
|
|
|
+ beginTime = dbUserVip.getEndTime();
|
|
|
|
+ userVip.setId(dbUserVip.getId());
|
|
|
|
+ }
|
|
|
|
+ userVip.setUserId(userId);
|
|
|
|
+ userVip.setUpdateTime(new Date());
|
|
|
|
+ userVip.setBeginTime(beginTime);
|
|
|
|
+ Calendar cal = Calendar.getInstance();
|
|
|
|
+ cal.setTime(beginTime);
|
|
|
|
+ // 超级会员套餐时长(月)
|
|
|
|
+ Integer mouth = payOrderMapper.getVipPackageDurationById(vipId);
|
|
|
|
+ cal.add(Calendar.MONTH, mouth);
|
|
|
|
+ userVip.setEndTime(cal.getTime());
|
|
|
|
+ userVip.setDelFlag(0);
|
|
|
|
+ if (null != userVip.getId()) {
|
|
|
|
+ // 更新会员信息
|
|
|
|
+ payOrderMapper.updateUserVipInfo(userVip);
|
|
|
|
+ } else {
|
|
|
|
+ // 新增会员信息
|
|
|
|
+ payOrderMapper.insertUserVipInfo(userVip);
|
|
|
|
+ }
|
|
|
|
+ // 修改会员历史记录支付状态
|
|
|
|
+ VipRecordBo record = payOrderMapper.getVipPackageRecord(recordId);
|
|
|
|
+ record.setPayStatus(1);
|
|
|
|
+ record.setBeginTime(beginTime);
|
|
|
|
+ record.setEndTime(cal.getTime());
|
|
|
|
+ record.setPayWay(1);
|
|
|
|
+ if ("WEIXIN".equals(payWay)){
|
|
|
|
+ record.setPayType(8);
|
|
|
|
+ if ("MINIAPP_WEIXIN".equals(payType)) {
|
|
|
|
+ record.setPayType(15);
|
|
|
|
+ } else if ("JSAPI_WEIXIN".equals(payType)) {
|
|
|
|
+ record.setPayType(13);
|
|
|
|
+ }
|
|
|
|
+ } else if ("ALIPAY".equals(payWay)) {
|
|
|
|
+ record.setPayType(7);
|
|
|
|
+ }else if("UNIONPAY".equals(payWay)) {
|
|
|
|
+ record.setPayType(12);
|
|
|
|
+ }
|
|
|
|
+ payOrderMapper.updateVipPackageRecord(recordId);
|
|
|
|
|
|
//修改分账付款状态
|
|
//修改分账付款状态
|
|
payOrderMapper.updateSplitAccountByPay(mbOrderId);
|
|
payOrderMapper.updateSplitAccountByPay(mbOrderId);
|