Browse Source

在线支付开通超级会员

chao 3 years ago
parent
commit
3d232f668f

+ 1 - 0
backup.sql

@@ -43,6 +43,7 @@ CREATE TABLE `cm_svip_history`(
      `packageId` bigint(11) DEFAULT NULL COMMENT '超级会员套餐ID',
      `beginTime` DATETIME DEFAULT NULL COMMENT '生效时间',
      `endTime` DATETIME DEFAULT NULL COMMENT '到期时间',
+     `payStatus` char(1) DEFAULT '0' COMMENT '支付状态 0 未付款 1 已付款',
      `payWay` char(1) DEFAULT '0' COMMENT '用户付款方式:1线上,2线下,3余额抵扣,4采美豆抵扣',
      `payType` char(10) DEFAULT '0' COMMENT '付款类型:1建设银行7297、2广发银行0115、3中信银行7172、4中信银行0897、5中信银行0897-财付通、6中信银行0897-支付宝、7线上-支付宝、8线上-微信支付、9线上-快钱支付、10口头返佣、11广发银行5461、12PC-B2B网银、13PC-微信支付、14PC-支付宝、15小程序-微信支付、16余额抵扣、17PC-B2C网银',
      `price` FLOAT(11,2) NOT NULL COMMENT '支付金额',

+ 12 - 0
src/main/java/com/caimei365/user/controller/RegisterApi.java

@@ -260,6 +260,18 @@ public class RegisterApi {
         return registerService.superVipUpByBeans(userId, packageId,headers);
     }
 
+    @ApiOperation("在线支付开通超级会员")
+    @GetMapping("/super/pay")
+    public ResponseJson<Integer> superVipUpByPay(Integer userId,Integer packageId, @RequestHeader HttpHeaders headers) {
+        if (null == userId) {
+            return ResponseJson.error("参数异常:购买套餐不能为空!", null);
+        }
+        if (null == packageId) {
+            return ResponseJson.error("参数异常:用户id不能为空", null);
+        }
+        return registerService.superVipUpByPay(userId, packageId,headers);
+    }
+
 }
 
 

+ 1 - 1
src/main/java/com/caimei365/user/mapper/SuperVipMapper.java

@@ -96,7 +96,7 @@ public interface SuperVipMapper {
      *
      * @param payHistory
      */
-    void addPayHistory(VipPayHistoryPo payHistory);
+    int addPayHistory(VipPayHistoryPo payHistory);
 
     /**
      * 根据套餐id查套餐时间

+ 1 - 0
src/main/java/com/caimei365/user/model/po/VipPayHistoryPo.java

@@ -25,6 +25,7 @@ public class VipPayHistoryPo implements Serializable {
     private Date beginTime;
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date endTime;
+    private Integer payStatus;
     private Integer payWay;
     private Integer payType;
     private Double price;

+ 7 - 1
src/main/java/com/caimei365/user/service/RegisterService.java

@@ -144,7 +144,6 @@ public interface RegisterService {
      */
     ResponseJson<ClubTemporaryVo> temporaryData(Integer id);
 
-
     /**
      * 采美豆购买超级会员
      * @param
@@ -152,4 +151,11 @@ public interface RegisterService {
      * @return
      */
     ResponseJson superVipUpByBeans(Integer userId, Integer packageId, HttpHeaders headers);
+
+    /**
+     * 在线支付开通超级会员
+     * @param userId
+     * @param packageId
+     */
+    ResponseJson<Integer> superVipUpByPay(Integer userId, Integer packageId, HttpHeaders headers);
 }

+ 49 - 1
src/main/java/com/caimei365/user/service/impl/RegisterServiceImpl.java

@@ -980,6 +980,47 @@ public class RegisterServiceImpl implements RegisterService {
         }
     }
 
+    /**
+     * 在线支付开通超级会员
+     *
+     * @param userId
+     * @param packageId
+     * @param headers
+     */
+    @Override
+    public ResponseJson<Integer> superVipUpByPay(Integer userId, Integer packageId, HttpHeaders headers) {
+        SuperVipDto endFlag = findEnd(userId);
+        VipPackage pac = vipMapper.findUserPackage(packageId);
+        if (null == pac) {
+            return ResponseJson.error("超级会员套餐不存在!", null);
+        }
+        Calendar cal = Calendar.getInstance();
+        Date beginTime = new Date();
+        if (null != endFlag.getVipFlag() && 1 == endFlag.getVipFlag()){
+            // 有效期内续费
+            beginTime = endFlag.getEndTime();
+        }
+        cal.setTime(beginTime);
+        cal.add(Calendar.MONTH, pac.getDuration());
+        //userId, packageId, beginTime, endTime, payStatus, payWay, payType, price, userBeans, payTime
+        VipPayHistoryPo payHistory = new VipPayHistoryPo();
+        payHistory.setUserId(userId);
+        payHistory.setPackageId(packageId);
+        payHistory.setBeginTime(beginTime);
+        payHistory.setEndTime(cal.getTime());
+        // 支付状态 0 未付款 1 已付款
+        payHistory.setPayStatus(0);
+        // 线上支付
+        payHistory.setPayWay(1);
+        payHistory.setPrice(pac.getPrice());
+        // 新增超级会员购买记录
+        int id = vipMapper.addPayHistory(payHistory);
+        if (id > 0) {
+            return ResponseJson.success(id);
+        }
+        return ResponseJson.error("支付开通超级会员异常!", null);
+    }
+
 
     /**
      * 根据userId查是否过期,返回dto对象,flag=0未买过,-1过期,1有效,endTime过期时间
@@ -1038,6 +1079,8 @@ public class RegisterServiceImpl implements RegisterService {
             //2.超级会员表更改,重买标记是0生效时间就是now
             vipMapper.addVip(superVip);
             //购买记录表加数据
+            superVip.setPayStatus(1);
+            superVip.setPayWay(4);
             setHistory(superVip);
             //发短信
             message = "【采美365】恭喜您成功开通采美平台超级会员,为期" + userPackageTime + "个月,快戳采美网站链接 www.caimei365.com 或微信搜索“采美采购商城”小程序登录采美平台畅享会员特权吧。关注公众号“采美365网”可获取更多优惠和精彩资讯。";
@@ -1063,6 +1106,8 @@ public class RegisterServiceImpl implements RegisterService {
             //vip表改到期时间
             vipMapper.updateVip(superVip);
             //购买记录表加数据
+            superVip.setPayStatus(1);
+            superVip.setPayWay(4);
             setHistory(superVip);
             //发短信
             message="【采美365】恭喜您成功续费采美平台超级会员,为期" + userPackageTime + "个月,快戳采美网站链接 www.caimei365.com 或微信搜索“采美采购商城”小程序登录采美平台畅享会员特权吧。关注公众号“采美365网”可获取更多优惠和精彩资讯。";
@@ -1091,6 +1136,8 @@ public class RegisterServiceImpl implements RegisterService {
             //vip表改到期时间
             vipMapper.updateVip(superVip);
             //购买记录表加数据
+            superVip.setPayStatus(1);
+            superVip.setPayWay(4);
             setHistory(superVip);
             //发短信
             message="【采美365】恭喜您成功续费采美平台超级会员,为期" + userPackageTime + "个月,快戳采美网站链接 www.caimei365.com 或微信搜索“采美采购商城”小程序登录采美平台畅享会员特权吧。关注公众号“采美365网”可获取更多优惠和精彩资讯。";
@@ -1115,7 +1162,8 @@ public class RegisterServiceImpl implements RegisterService {
         payHistory.setUserId(vip.getUserId());
         payHistory.setUserBeans(vip.getPrice() * pac.getProportion());
         payHistory.setPayTime(vip.getUpdateTime());
-        payHistory.setPayWay(4);
+        payHistory.setPayStatus(vip.getPayStatus());
+        payHistory.setPayWay(vip.getPayWay());
         payHistory.setPackageId(vip.getPackageId());
         payHistory.setPrice(0.00);
         payHistory.setBeginTime(vip.getBeginTime());

+ 4 - 3
src/main/resources/mapper/SuperVipMapper.xml

@@ -46,12 +46,12 @@
           and delFlag = 0
     </select>
 
-    <insert id="addPayHistory">
+    <insert id="addPayHistory" keyColumn="id" keyProperty="id" parameterType="com.caimei365.user.model.po.VipPayHistoryPo" useGeneratedKeys="true">
         insert into cm_svip_history (userId, packageId, beginTime,
-                                     endTime, payWay, payType, price,
+                                     endTime, payStatus, payWay, payType, price,
                                      userBeans, payTime)
         values (#{userId}, #{packageId}, #{beginTime},
-                #{endTime}, #{payWay}, #{payType}, #{price}, #{userBeans},
+                #{endTime}, #{payStatus}, #{payWay}, #{payType}, #{price}, #{userBeans},
                 #{payTime})
     </insert>
 
@@ -89,6 +89,7 @@
         select packageId,
                beginTime,
                endTime,
+               payStatus,
                payWay,
                payType,
                price,