zoujiajian před 2 roky
rodič
revize
d5d91a32d3

+ 10 - 0
netflix-dao/src/main/java/com/cyksj/model/views/DistributePosterGoodsFrontView.java

@@ -1,6 +1,7 @@
 package com.cyksj.model.views;
 
 import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.DbIgnore;
 import com.ejlchina.searcher.bean.SearchBean;
 import lombok.Getter;
 import lombok.Setter;
@@ -20,6 +21,9 @@ import java.math.BigDecimal;
 		where = "dp.status is true and g.status is true and g.deleted is true",
 		orderBy = "dp.update_time desc")
 public class DistributePosterGoodsFrontView {
+	@DbField("dp.id")
+	private Long id;
+
 	@DbField("g.id")
 	private Long goodsId;
 
@@ -49,4 +53,10 @@ public class DistributePosterGoodsFrontView {
 
 	@DbField("dp.sku_ids")
 	private String skuIds;
+
+	/**
+	 * 海报记录id
+	 */
+	@DbIgnore
+	private Long rid;
 }

+ 38 - 5
netflix-web/src/main/java/com/cyksj/web/controller/user/UserController.java

@@ -10,11 +10,9 @@ import com.cyksj.enums.GatewayApiCode;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.GoodsDonSkuMapper;
 import com.cyksj.mapper.OrderDonMapper;
+import com.cyksj.mapper.UserDistributePosterRecordMapper;
 import com.cyksj.mapper.manage.coupon.CouponUserMapper;
-import com.cyksj.mapper.manage.distribute.DistributeGeneralSkuRateMapper;
-import com.cyksj.mapper.manage.distribute.UserDistributeMapper;
-import com.cyksj.mapper.manage.distribute.UserPlatDistributeRateMapper;
-import com.cyksj.mapper.manage.distribute.UserPlatSkuDistributeRateMapper;
+import com.cyksj.mapper.manage.distribute.*;
 import com.cyksj.model.dto.UserWhoami;
 import com.cyksj.model.entity.*;
 import com.cyksj.model.manage.views.GroupsRelationView;
@@ -36,6 +34,7 @@ import com.ejlchina.searcher.param.Operator;
 import com.ejlchina.searcher.util.MapBuilder;
 import com.ejlchina.searcher.util.MapUtils;
 import lombok.RequiredArgsConstructor;
+import org.springframework.dao.DuplicateKeyException;
 import org.springframework.util.Assert;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -88,6 +87,10 @@ public class UserController {
 
     private final UserDistributeMapper userDistributeMapper;
 
+    private final UserDistributePosterRecordMapper userDistributePosterRecordMapper;
+
+    private final DistributePosterGoodsMapper distributePosterGoodsMapper;
+
     @GetMapping(value = "/wx/whoami")
     public Result<UserWhoami> whoami() {
         long userId = StpUserUtil.getLoginIdAsLong();
@@ -517,7 +520,13 @@ public class UserController {
                     }
                 }
             }
-        });
+            UserDistributePosterRecord distributePosterRecord = userDistributePosterRecordMapper.selectOne(Wrappers.lambdaQuery(UserDistributePosterRecord.class)
+                    .eq(UserDistributePosterRecord::getPosterId, e.getId())
+                    .eq(UserDistributePosterRecord::getUserId, userId)
+                    .last("limit 1"));
+            if (distributePosterRecord != null) {
+                e.setRid(distributePosterRecord.getId());
+            }        });
         return GatewayResponse.SUCCESS.newBuilder().toResult(searchAll);
     }
 
@@ -531,4 +540,28 @@ public class UserController {
                 .build());
         return GatewayResponse.SUCCESS.newBuilder().toResult(distributePosterGoodsView);
     }
+
+    /**
+     * 用户下载海报记录
+     */
+    @PostMapping("/poster/record/{posterId}")
+    public Result<Long> posterRecord(@PathVariable Long posterId) {
+        long userId = StpUserUtil.getLoginIdAsLong();
+        DistributePosterGoods distributePosterGoods = distributePosterGoodsMapper.selectById(posterId);
+        if (distributePosterGoods == null) {
+            return GatewayResponse.SUCCESS.newBuilder().toResult();
+        }
+        UserDistributePosterRecord distributePosterRecord = new UserDistributePosterRecord();
+        distributePosterRecord.setPosterId(posterId);
+        distributePosterRecord.setUserId(userId);
+        try {
+            userDistributePosterRecordMapper.insert(distributePosterRecord);
+        } catch (DuplicateKeyException e) {
+            distributePosterRecord = userDistributePosterRecordMapper.selectOne(Wrappers.lambdaQuery(UserDistributePosterRecord.class)
+                    .eq(UserDistributePosterRecord::getUserId, userId)
+                    .eq(UserDistributePosterRecord::getPosterId, posterId)
+                    .last("limit 1"));
+        }
+        return GatewayResponse.SUCCESS.newBuilder().toResult(distributePosterRecord.getId());
+    }
 }