Browse Source

add:浏览记录

lyx 3 months ago
parent
commit
8fc92a7152

+ 5 - 0
alien-entity/src/main/java/shop/alien/entity/store/LifeBrowseRecord.java

@@ -30,6 +30,11 @@ public class LifeBrowseRecord {
     private String orderId;
 
     private String expertId;
+    @TableField("dynamics_id")
+    private String dynamicsId;
+
+    @TableField("coupon_id")
+    private String couponId;
 
     @ApiModelProperty("浏览类型 1:用户端, 2:商家端")
     @TableField("browse_type")

+ 18 - 2
alien-entity/src/main/java/shop/alien/mapper/LifeBrowseRecordMapper.java

@@ -11,8 +11,8 @@ import java.util.Map;
 @Mapper
 public interface LifeBrowseRecordMapper extends BaseMapper<LifeBrowseRecord> {
 
-    @Select("SELECT a.liulan_date liulanDate, b.store_type storeType, b.store_position storePosition, a.liulan_time liulanTime, " +
-            "c.img_url image, b.store_name storeName, b.store_address storeDetailAddress, b.id storeId, a.created_time, d.img_url entranceImage, dict.dict_detail storeTypeStr " +
+    @Select("SELECT a.id,a.liulan_date liulanDate, b.store_type storeType, b.store_position storePosition, a.liulan_time liulanTime, " +
+            "c.img_url image, b.store_name storeName, b.store_address storeDetailAddress, b.id storeId, a.created_time, d.img_url entranceImage, dict.dict_detail storeTypeStr,b.score_avg scoreAvg,b.business_types_name businessTypesName " +
             "FROM life_browse_record a " +
             "LEFT JOIN store_info b ON a.store_id = b.id " +
             "LEFT JOIN store_img c on b.id = c.store_id and c.img_type = 11 and c.delete_flag = 0 " +
@@ -20,5 +20,21 @@ public interface LifeBrowseRecordMapper extends BaseMapper<LifeBrowseRecord> {
             "left join store_dictionary dict on dict.type_name = 'storeType' and dict.dict_id = b.store_type and dict.delete_flag = 0 " +
             "WHERE a.user_id = #{userId} AND a.delete_flag = 0 AND b.delete_flag = 0 ORDER BY a.liulan_time desc")
     List<Map<String, Object>> getBrowseRecordByUserId(String userId);
+    @Select("select lbr.id,lgbm.group_name groupName,lgbm.id couponId,si.id storeId,original_price originalPrice,preferential_price preferentialPrice,lbr.liulan_date liulanDate,si.store_name storeName,si2.img_url\n" +
+            "from life_browse_record lbr \n" +
+            "inner join life_group_buy_main lgbm on lgbm.id = lbr.coupon_id \n" +
+            "and lgbm.delete_flag = 0 and lbr.delete_flag = 0\n" +
+            "left join store_info si on si.id = lgbm.store_id and si.delete_flag = 0\n" +
+            "left join store_img si2 on si2.id = SUBSTRING_INDEX(lgbm.image_id, ',', 1) and si2.delete_flag = 0\n" +
+            "where lbr.user_id = #{userId} and lbr.coupon_id is not null\n" +
+            "Order by lbr.liulan_time")
+    List<Map<String, Object>> getGroupBuyBrowseRecordByUserId(String userId);
 
+    @Select("select lbr.id,lud.*,lbr.liulan_date liulanDate\n" +
+            "from life_browse_record lbr \n" +
+            "inner join life_user_dynamics lud on lud.id = lbr.dynamics_id \n" +
+            "and lud.delete_flag = 0 and lbr.delete_flag = 0 \n" +
+            "where lbr.user_id = #{userId} and lbr.dynamics_id is not null\n" +
+            "Order by lbr.liulan_time")
+    List<Map<String, Object>> getDynamicsBrowseRecordByUserId(String userId);
 }

+ 17 - 16
alien-store/src/main/java/shop/alien/store/controller/LifeBrowseRecordController.java

@@ -16,7 +16,7 @@ import java.util.stream.Collectors;
 /**
  * 浏览记录
  */
-@Api(tags = {"期-浏览记录"})
+@Api(tags = {"2.5期-浏览记录"})
 @Slf4j
 @CrossOrigin
 @RestController
@@ -31,19 +31,17 @@ public class LifeBrowseRecordController {
     @ApiImplicitParams({
             @ApiImplicitParam(name = "userId", value = "用户id", dataType = "String", paramType = "query"),
             @ApiImplicitParam(name = "storeId", value = "门店id", dataType = "String", paramType = "query"),
-            @ApiImplicitParam(name = "orderId", value = "订单id", dataType = "String", paramType = "query"),
-            @ApiImplicitParam(name = "expertId", value = "达人id", dataType = "String", paramType = "query"),
-            @ApiImplicitParam(name = "browseType", value = "浏览类型 1:用户端, 2:商家端", dataType = "Integer", paramType = "query")
+            @ApiImplicitParam(name = "dynamicsId", value = "动态id", dataType = "String", paramType = "query"),
+            @ApiImplicitParam(name = "couponId", value = "团购id", dataType = "String", paramType = "query")
     })
     @PostMapping("/save")
-    public R<Boolean> save(@RequestParam("userId") String userId, @RequestParam("storeId") String storeId, String orderId, String expertId, Integer browseType) {
-        log.info("LifeBrowseRecordController.save?userId={}&storeId={}&browseType={}", userId, storeId, browseType);
+    public R<Boolean> save(@RequestParam(value = "userId",required = false) String userId, @RequestParam(value = "storeId",required = false) String storeId, @RequestParam(value = "dynamicsId",required = false) String dynamicsId,@RequestParam(value = "couponId",required = false) String couponId) {
+        log.info("LifeBrowseRecordController.save?userId={},storeId={},dynamicsId={},couponId={}", userId,storeId, dynamicsId, couponId);
         LifeBrowseRecord record = new LifeBrowseRecord();
         record.setUserId(userId);
         record.setStoreId(storeId);
-        record.setBrowseType(browseType);
-        record.setOrderId(orderId);
-        record.setExpertId(expertId);
+        record.setDynamicsId(dynamicsId);
+        record.setCouponId(couponId);
         if (lifeBrowseRecordService.save(record) > 0) {
             return R.success("操作成功");
         }
@@ -54,12 +52,13 @@ public class LifeBrowseRecordController {
     @ApiOperationSupport(order = 2)
     @ApiImplicitParams({@ApiImplicitParam(name = "page", value = "分页页数", dataType = "String", paramType = "query", required = true),
             @ApiImplicitParam(name = "size", value = "分页条数", dataType = "String", paramType = "query", required = true),
+            @ApiImplicitParam(name = "type", value = "类型 1:商家;2:团购;3:动态", dataType = "String", paramType = "query", required = true),
             @ApiImplicitParam(name = "userId", value = "用户id", dataType = "String", paramType = "query")})
     @GetMapping("/getBrowseRecord")
-    public R<IPage<Map<String, Object>>> getBrowseRecord(@RequestParam("userId") String userId, @RequestParam(defaultValue = "1") int page, @RequestParam(defaultValue = "10") int size) {
-        log.info("LifeBrowseRecordController.getBrowseRecord?userId={},page={},size={}", userId, page, size);
+    public R<IPage<Map<String, Object>>> getBrowseRecord(@RequestParam("userId") String userId,@RequestParam("type") String type, @RequestParam(defaultValue = "1") int page, @RequestParam(defaultValue = "10") int size) {
+        log.info("LifeBrowseRecordController.getBrowseRecord?userId={},type={},page={},size={}", userId,type, page, size);
         List<Map<String, Object>> dataList = new ArrayList<>();
-        Map<String, List<Map<String, Object>>> map = lifeBrowseRecordService.getBrowseRecord(userId);
+        Map<String, List<Map<String, Object>>> map = lifeBrowseRecordService.getBrowseRecord(userId,type);
         for (Map.Entry<String, List<Map<String, Object>>> entry : map.entrySet()) {
             String year = entry.getKey();
             List<Map<String, Object>> records = entry.getValue();
@@ -77,11 +76,13 @@ public class LifeBrowseRecordController {
 
     @ApiOperation("清除浏览记录")
     @ApiOperationSupport(order = 3)
-    @ApiImplicitParams({@ApiImplicitParam(name = "userId", value = "用户id", dataType = "String", paramType = "query")})
+    @ApiImplicitParams({@ApiImplicitParam(name = "userId", value = "用户id", dataType = "String", paramType = "query"),
+            @ApiImplicitParam(name = "recordId", value = "浏览记录id", dataType = "String", paramType = "query"),
+            @ApiImplicitParam(name = "type", value = "类型:1店铺,2团购,3动态", dataType = "String", paramType = "query")})
     @PostMapping("/clearBrowseRecord")
-    public R<Boolean> clearBrowseRecord(@RequestParam("userId") String userId) {
-        log.info("LifeBrowseRecordController.clearBrowseRecord?userId={}", userId);
-        int num = lifeBrowseRecordService.clearBrowseRecord(userId);
+    public R<Boolean> clearBrowseRecord(@RequestParam("userId") String userId, @RequestParam(value = "recordId",required = false) String recordId,@RequestParam(value = "type",required = false) String type) {
+        log.info("LifeBrowseRecordController.clearBrowseRecord?userId={}&recordId={}&type={}", userId, recordId,type);
+        int num = lifeBrowseRecordService.clearBrowseRecord(userId, recordId,type);
         if (num == 0) {
             return R.fail("操作失败");
         }

+ 30 - 9
alien-store/src/main/java/shop/alien/store/service/LifeBrowseRecordService.java

@@ -3,16 +3,14 @@ package shop.alien.store.service;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 import shop.alien.entity.store.LifeBrowseRecord;
 import shop.alien.mapper.LifeBrowseRecordMapper;
 
 import java.time.LocalDate;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -29,8 +27,10 @@ public class LifeBrowseRecordService {
 
         LambdaQueryWrapper<LifeBrowseRecord> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(LifeBrowseRecord::getUserId, record.getUserId());
-        wrapper.eq(LifeBrowseRecord::getStoreId, record.getStoreId());
-        wrapper.eq(LifeBrowseRecord::getLiulanDate, now.toString());
+        wrapper.eq(record.getStoreId() != null, LifeBrowseRecord::getStoreId, record.getStoreId());
+        wrapper.eq(record.getCouponId() != null, LifeBrowseRecord::getCouponId, record.getCouponId());
+        wrapper.eq(record.getDynamicsId() != null, LifeBrowseRecord::getDynamicsId, record.getDynamicsId());
+//        wrapper.eq(LifeBrowseRecord::getLiulanDate, now.toString());
         List<LifeBrowseRecord> recordList = lifeBrowseRecordMapper.selectList(wrapper);
 
         if (!CollectionUtils.isEmpty(recordList)) {
@@ -42,8 +42,15 @@ public class LifeBrowseRecordService {
         return lifeBrowseRecordMapper.insert(record);
     }
 
-    public Map<String, List<Map<String, Object>>> getBrowseRecord(String userId) {
-        List<Map<String, Object>> list = lifeBrowseRecordMapper.getBrowseRecordByUserId(userId);
+    public Map<String, List<Map<String, Object>>> getBrowseRecord(String userId, String type) {
+        List<Map<String, Object>> list = new ArrayList<>();
+        if("1".equals(type)){
+            list = lifeBrowseRecordMapper.getBrowseRecordByUserId(userId);
+        }else if("2".equals(type)){
+            list = lifeBrowseRecordMapper.getGroupBuyBrowseRecordByUserId(userId);
+        }else if("3".equals(type)){
+            list = lifeBrowseRecordMapper.getDynamicsBrowseRecordByUserId(userId);
+        }
         Map<String, List<Map<String, Object>>> listMap = new HashMap<>();
         if (!CollectionUtils.isEmpty(list)) {
             listMap = list.stream().collect(Collectors.groupingBy(
@@ -53,10 +60,24 @@ public class LifeBrowseRecordService {
         return listMap;
     }
 
-    public int clearBrowseRecord(String userId) {
+    public int clearBrowseRecord(String userId, String recordId,String type) {
+        if(StringUtils.isNotBlank(recordId)){
+            return lifeBrowseRecordMapper.deleteById(recordId);
+        }
         LambdaUpdateWrapper<LifeBrowseRecord> wrapper = new LambdaUpdateWrapper<>();
         wrapper.eq(LifeBrowseRecord::getUserId, userId);
         wrapper.set(LifeBrowseRecord::getDeleteFlag, 1);
+        switch (type){
+            case "1":
+                wrapper.isNotNull(LifeBrowseRecord::getStoreId);
+                break;
+            case "2":
+                wrapper.isNotNull(LifeBrowseRecord::getCouponId);
+                break;
+            case "3":
+                wrapper.isNotNull(LifeBrowseRecord::getDynamicsId);
+                break;
+        }
         return lifeBrowseRecordMapper.update(null, wrapper);
     }
 }