Pārlūkot izejas kodu

商品资料part1

Aslee 3 gadi atpakaļ
vecāks
revīzija
b33a63c14b

+ 12 - 1
src/main/java/com/caimei365/user/controller/ClubApi.java

@@ -129,5 +129,16 @@ public class ClubApi {
         return clubService.beansHistory(userId, year, month, type, pageNum, pageSize);
     }
 
-
+    @ApiOperation("查看商品资料抵扣采美豆")
+    @ApiImplicitParams({
+            @ApiImplicitParam(required = true, name = "userId", value = "用户Id"),
+            @ApiImplicitParam(required = true, name = "archiveId", value = "资料id")
+    })
+    @PostMapping("/beans/history")
+    public ResponseJson archiveDeduction(Integer userId, Integer archiveId) {
+        if (userId == null || archiveId == null) {
+            return ResponseJson.error("参数异常");
+        }
+        return clubService.archiveDeduction(userId, archiveId);
+    }
 }

+ 15 - 0
src/main/java/com/caimei365/user/mapper/ClubMapper.java

@@ -116,4 +116,19 @@ public interface ClubMapper {
      * @return
      */
     Integer findCountCoupon(Integer userId);
+
+    /**
+     * 查询商品资料抵扣采美豆记录
+     * @param userId
+     * @param archiveId
+     * @return
+     */
+    Integer findBeansHistoryByArchiveId(@Param("userId") Integer userId,@Param("archiveId") Integer archiveId);
+
+    /**
+     * 查询用户采美豆数量
+     * @param userId
+     * @return
+     */
+    Integer getBeansNumByUserId(Integer userId);
 }

+ 5 - 0
src/main/java/com/caimei365/user/model/po/UserBeansHistoryPo.java

@@ -35,6 +35,11 @@ public class UserBeansHistoryPo implements Serializable {
      */
     private Integer orderId;
 
+    /**
+     * 商品资料id
+     */
+    private Integer archiveId;
+
     /**
      * 采美豆数量
      */

+ 8 - 0
src/main/java/com/caimei365/user/service/ClubService.java

@@ -79,4 +79,12 @@ public interface ClubService {
      * @return
      */
     ResponseJson<Map<String, Object>> beansHistory(Integer userId, Integer year, Integer month, Integer type, int pageNum, int pageSize);
+
+    /**
+     * 查看商品资料抵扣采美豆
+     * @param userId        用户Id
+     * @param archiveId     商品资料id
+     * @return
+     */
+    ResponseJson archiveDeduction(Integer userId, Integer archiveId);
 }

+ 26 - 0
src/main/java/com/caimei365/user/service/impl/ClubServiceImpl.java

@@ -292,4 +292,30 @@ public class ClubServiceImpl implements ClubService {
         map.put("userBeans", user.getUserBeans());
         return ResponseJson.success(map);
     }
+
+    @Override
+    public ResponseJson archiveDeduction(Integer userId, Integer archiveId) {
+        // 查询是否已存在用户对该资料的抵扣记录
+        Integer historyId = clubMapper.findBeansHistoryByArchiveId(userId, archiveId);
+        if (null != historyId) {
+            return ResponseJson.error(-1,"请勿重复抵扣");
+        }
+        // 查询用户采美豆数量
+        Integer beansNum = clubMapper.getBeansNumByUserId(userId);
+        if (null == beansNum || beansNum < 50) {
+            return ResponseJson.error(-2, "抱歉,您的采美豆不足以抵扣,无法访问该商品资料");
+        }
+        UserBeansHistoryPo beansHistory = new UserBeansHistoryPo();
+        beansHistory.setUserId(userId);
+        beansHistory.setArchiveId(archiveId);
+        beansHistory.setBeansType(13);
+        beansHistory.setType(1);
+        beansHistory.setNum(500);
+        beansHistory.setPushStatus(0);
+        beansHistory.setAddTime(new Date());
+        registerMapper.insertBeansHistory(beansHistory);
+        beansNum = beansNum - 50;
+        clubMapper.updateUserBeans(userId, beansNum);
+        return ResponseJson.success("抵扣成功");
+    }
 }

+ 8 - 0
src/main/resources/mapper/ClubMapper.xml

@@ -162,4 +162,12 @@
           AND cc.endDate
           AND cc.status != 2
     </select>
+    <select id="findBeansHistoryByArchiveId" resultType="java.lang.Integer">
+        select id from user_beans_history where userId = #{userId} and archiveId = #{archiveId}
+    </select>
+    <select id="getBeansNumByUserId" resultType="java.lang.Integer">
+        select userBeans
+        from user
+        where userID = #{userId}
+    </select>
 </mapper>

+ 2 - 2
src/main/resources/mapper/RegisterMapper.xml

@@ -167,12 +167,12 @@
 
     <insert id="insertBeansHistory">
         INSERT INTO `user_beans_history` (
-          `userId`, `type`, `beansType`, `orderId`,
+          `userId`, `type`, `beansType`, `orderId`, `archiveId`,
           `num`, `pushStatus`, `addTime`, delFlag
         )
         VALUES
           (
-            #{userId}, #{type}, #{beansType}, #{orderId},
+            #{userId}, #{type}, #{beansType}, #{orderId}, #{archiveId},
             #{num}, #{pushStatus}, #{addTime}, 0
           )
     </insert>