Przeglądaj źródła

超级会员套餐详情接口

zhijiezhao 3 lat temu
rodzic
commit
86d4ab51c4

+ 6 - 0
src/main/java/com/caimei365/user/controller/BaseApi.java

@@ -183,4 +183,10 @@ public class BaseApi {
         }
         return baseService.superCenter(userId,source);
     }
+
+    @ApiOperation("超级会员套餐详情")
+    @GetMapping("/super/package")
+    public ResponseJson findPackage(){
+        return baseService.findPackage();
+    }
 }

+ 0 - 1
src/main/java/com/caimei365/user/feign/ToolsFeign.java

@@ -1,7 +1,6 @@
 package com.caimei365.user.feign;
 
 import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 

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

@@ -2,6 +2,7 @@ package com.caimei365.user.mapper;
 
 import com.caimei365.user.model.ResponseJson;
 import com.caimei365.user.model.po.SuperVipPo;
+import com.caimei365.user.model.po.VipPackage;
 import com.caimei365.user.model.po.VipPayHistoryPo;
 import com.caimei365.user.model.vo.CouponVo;
 import com.caimei365.user.model.vo.ProductItemVo;
@@ -84,12 +85,11 @@ public interface SuperVipMapper {
     void updateUserIdentity(Integer userId, Integer userIdentity);
 
     /**
-     * 查买的套餐的现金价格
-     *
+     * 查套餐详情
      * @param userPackageId
      * @return
      */
-    Double findUserPackage(Integer userPackageId);
+    VipPackage findUserPackage(Integer userPackageId);
 
     /**
      * 新增支付记录
@@ -138,4 +138,10 @@ public interface SuperVipMapper {
      * @return
      */
     String findMobile(Integer userId);
+
+    /**
+     * 套餐详情
+     * @return
+     */
+    List<VipPackage> findPackage();
 }

+ 31 - 0
src/main/java/com/caimei365/user/model/po/VipPackage.java

@@ -0,0 +1,31 @@
+package com.caimei365.user.model.po;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+
+/**
+ * @author zzj
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class VipPackage implements Serializable {
+    private Integer id;
+    private String name;
+    /**
+     * 现金开通价格
+     */
+    private Double price;
+    /**
+     * 套餐时长(月)
+     */
+    private Integer duration;
+    /**
+     * 采美豆兑换现金比例
+     */
+    private Integer proportion;
+}

+ 6 - 0
src/main/java/com/caimei365/user/service/BaseService.java

@@ -94,4 +94,10 @@ public interface BaseService {
     ResponseJson findVipHistory(Integer userId, Integer pageNum, Integer pageSize);
 
     ResponseJson<Map<String, Object>> superCenter(Integer userId, Integer source);
+
+    /**
+     * 查超级会员套餐详情
+     * @return
+     */
+    ResponseJson findPackage();
 }

+ 7 - 0
src/main/java/com/caimei365/user/service/impl/BaseServiceImpl.java

@@ -10,6 +10,7 @@ import com.caimei365.user.model.dto.MobileDto;
 import com.caimei365.user.model.dto.PasswordDto;
 import com.caimei365.user.model.dto.SuperVipDto;
 import com.caimei365.user.model.po.SuperVipPo;
+import com.caimei365.user.model.po.VipPackage;
 import com.caimei365.user.model.po.VipPayHistoryPo;
 import com.caimei365.user.model.vo.*;
 import com.caimei365.user.service.BaseService;
@@ -478,6 +479,12 @@ public class BaseServiceImpl implements BaseService {
         return ResponseJson.success(map);
     }
 
+    @Override
+    public ResponseJson findPackage() {
+        List<VipPackage> pac=vipMapper.findPackage();
+        return ResponseJson.success(pac);
+    }
+
     /**
      * 根据userId查是否过期,返回dto对象,flag=0未买过,-1过期,1有效,endTime过期时间
      */

+ 11 - 10
src/main/java/com/caimei365/user/service/impl/RegisterServiceImpl.java

@@ -959,11 +959,11 @@ public class RegisterServiceImpl implements RegisterService {
     public ResponseJson superVipUpByBeans(Integer userId, Integer packageId, HttpHeaders headers) {
         SuperVipDto endFlag = findEnd(userId);
         Integer userBeans = vipMapper.findUserBeans(userId);
-        Double price = vipMapper.findUserPackage(packageId);
+        VipPackage pac = vipMapper.findUserPackage(packageId);
         //过期和没买过都是生效时间重置,到期时间=现在+套餐时间
         if (endFlag.getVipFlag() == 0 || endFlag.getVipFlag() == -1) {
             //1.查用户采美豆,够就用采美豆下单,不够就返回信息
-            if (Double.valueOf(userBeans) >= (price * 100)) {
+            if (Double.valueOf(userBeans) >= (pac.getPrice() * pac.getProportion())) {
                 //用户采美豆>=套餐需要的采美豆,调用采美豆支付方法
                 //传空表示新客户
                 beanPay(userId, packageId, null, endFlag.getVipFlag());
@@ -971,7 +971,7 @@ public class RegisterServiceImpl implements RegisterService {
             }
             return ResponseJson.error("用户采美豆不足", null);
         } else {
-            if (Double.valueOf(userBeans) >= (price * 100)) {
+            if (Double.valueOf(userBeans) >= (pac.getPrice() * pac.getProportion())) {
                 //续费生效时间不变,原到期时间+套餐时间
                 beanPay(userId, packageId, endFlag.getEndTime(), endFlag.getVipFlag());
                 return ResponseJson.success("支付采美豆购买成功");
@@ -1012,20 +1012,20 @@ public class RegisterServiceImpl implements RegisterService {
     private void beanPay(Integer userId, Integer packageId, Date beginTime, Integer repayFlag) {
         String message = "";
         //1.user表扣豆子
-        Double price = vipMapper.findUserPackage(packageId);
+        VipPackage pac = vipMapper.findUserPackage(packageId);
         Integer userBeans = vipMapper.findUserBeans(userId);
-        Long l = Math.multiplyExact(Math.round(price), 100);
+        Long l = Math.multiplyExact(Math.round(pac.getPrice()), pac.getProportion());
         Long beans = Long.valueOf(userBeans);
         Long result = Math.subtractExact(beans, l);
         String s = result.toString();
         vipMapper.updateUserBeans(userId, Integer.valueOf(s));
         //采美豆消费表记录消费
-        vipMapper.addUserBeansHistory(userId, Integer.valueOf((int) (price * 100)));
+        vipMapper.addUserBeansHistory(userId, Integer.valueOf((int) (pac.getPrice() * pac.getProportion())));
         Calendar cal = Calendar.getInstance();
         if (repayFlag == 0) {
             SuperVipPo superVip = new SuperVipPo();
             beginTime = new Date();
-            superVip.setPrice(price);
+            superVip.setPrice(pac.getPrice());
             superVip.setPackageId(packageId);
             superVip.setBeginTime(beginTime);
             superVip.setUpdateTime(beginTime);
@@ -1054,7 +1054,7 @@ public class RegisterServiceImpl implements RegisterService {
             SuperVipPo superVip = vipMapper.findSuperVip(userId);
             superVip.setUpdateTime(new Date());
             superVip.setPackageId(packageId);
-            superVip.setPrice(price);
+            superVip.setPrice(pac.getPrice());
             //续费加时间
             cal.setTime(beginTime);
             Integer userPackageTime = vipMapper.findUserPackageTime(packageId);
@@ -1079,7 +1079,7 @@ public class RegisterServiceImpl implements RegisterService {
             SuperVipPo superVip = vipMapper.findSuperVip(userId);
             superVip.setUpdateTime(new Date());
             superVip.setPackageId(packageId);
-            superVip.setPrice(price);
+            superVip.setPrice(pac.getPrice());
             //重设生效起始时间
             beginTime = new Date();
             superVip.setBeginTime(beginTime);
@@ -1111,8 +1111,9 @@ public class RegisterServiceImpl implements RegisterService {
      */
     private void setHistory(SuperVipPo vip) {
         VipPayHistoryPo payHistory = new VipPayHistoryPo();
+        VipPackage pac = vipMapper.findUserPackage(vip.getPackageId());
         payHistory.setUserId(vip.getUserId());
-        payHistory.setUserBeans(vip.getPrice() * 100);
+        payHistory.setUserBeans(vip.getPrice() * pac.getProportion());
         payHistory.setPayTime(vip.getUpdateTime());
         payHistory.setPayWay(4);
         payHistory.setPackageId(vip.getPackageId());

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

@@ -39,10 +39,11 @@
         where userId = #{userId}
     </update>
 
-    <select id="findUserPackage" resultType="java.lang.Double">
-        select price
+    <select id="findUserPackage" resultType="com.caimei365.user.model.po.VipPackage">
+        select id, price, name, duration, proportion
         from cm_svip_package
         where id = #{userPackageId}
+          and delFlag = 0
     </select>
 
     <insert id="addPayHistory">
@@ -135,7 +136,15 @@
     </select>
 
     <select id="findMobile" resultType="java.lang.String">
-        select bindMobile from user where userID=#{userId}
+        select bindMobile
+        from user
+        where userID = #{userId}
+    </select>
+
+    <select id="findPackage" resultType="java.util.List">
+        select id, price, name, duration, proportion
+        from cm_svip_package
+        where delFlag = 0
     </select>