From 7e536551c09cea3b50c773308fb80d90d98d472a Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Tue, 29 Jun 2021 16:52:57 +0800
Subject: [PATCH] 20210629 商品搜索

---
 gc-shop/src/main/java/com/xzx/gc/shop/dto/GoodsSearchDto.java            |   11 +++
 gc-shop/src/main/java/com/xzx/gc/shop/mapper/ScoreGoodsSearchMapper.java |   14 ++++
 gc-shop/src/main/java/com/xzx/gc/shop/controller/ApiGoodsController.java |   29 +++++++--
 gc-shop/src/main/java/com/xzx/gc/shop/dto/XcxGoodsListDto.java           |    3 +
 gc-core/src/main/java/com/xzx/gc/entity/ScoreGoodsSearch.java            |   28 +++++++++
 gc-shop/src/main/resources/mapper/shop/ScoreGoodsSearchMapper.xml        |   14 ++++
 gc-shop/src/main/java/com/xzx/gc/shop/service/GoodsService.java          |   24 +++++++
 gc-shop/src/main/java/com/xzx/gc/shop/vo/GoodsSearchVo.java              |   20 ++++++
 8 files changed, 135 insertions(+), 8 deletions(-)

diff --git a/gc-core/src/main/java/com/xzx/gc/entity/ScoreGoodsSearch.java b/gc-core/src/main/java/com/xzx/gc/entity/ScoreGoodsSearch.java
new file mode 100644
index 0000000..cbf4a91
--- /dev/null
+++ b/gc-core/src/main/java/com/xzx/gc/entity/ScoreGoodsSearch.java
@@ -0,0 +1,28 @@
+package com.xzx.gc.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.util.Date;
+
+@Data
+@Table(name = "xzx_score_goods_search")
+public class ScoreGoodsSearch {
+
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long id;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createdTime;
+
+    private String userId;
+
+    private String contents;
+
+}
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/controller/ApiGoodsController.java b/gc-shop/src/main/java/com/xzx/gc/shop/controller/ApiGoodsController.java
index 5689033..4f7147b 100644
--- a/gc-shop/src/main/java/com/xzx/gc/shop/controller/ApiGoodsController.java
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/controller/ApiGoodsController.java
@@ -6,16 +6,11 @@
 import com.xzx.gc.common.request.BaseController;
 import com.xzx.gc.model.JsonResult;
 import com.xzx.gc.service.BaseAccountService;
-import com.xzx.gc.shop.dto.AddGoodsOrderDto;
-import com.xzx.gc.shop.dto.XcxGoodsListDto;
-import com.xzx.gc.shop.dto.XcxScoreDetailsDto;
+import com.xzx.gc.shop.dto.*;
 import com.xzx.gc.shop.service.GoodsService;
 import com.xzx.gc.shop.service.OrderService;
 import com.xzx.gc.shop.service.ScoreDetailsService;
-import com.xzx.gc.shop.vo.GoodsCategoryVo;
-import com.xzx.gc.shop.vo.XcxGoodsDetailVo;
-import com.xzx.gc.shop.vo.XcxGoodsListVo;
-import com.xzx.gc.shop.vo.XcxScoreDetailsVo;
+import com.xzx.gc.shop.vo.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiResponse;
@@ -51,6 +46,8 @@
     )
     @PostMapping(value = "/goods/goodsList")
     public JsonResult<PageInfo<XcxGoodsListVo>> goodsList(@RequestBody XcxGoodsListDto xcxGoodsListDto, HttpServletRequest request) {
+        String userId = getUserId(request);
+        xcxGoodsListDto.setUserId(userId);
         return JsonResult.success(goodsService.findGoodsListInPage(xcxGoodsListDto));
     }
 
@@ -63,4 +60,22 @@
         return JsonResult.success(goodsService.findGoodsDetails(id));
     }
 
+    @ApiOperation("商品搜索历史记录")
+    @ApiResponses(
+            @ApiResponse(code = 200, message = "success", response = GoodsSearchVo.class)
+    )
+    @PostMapping(value = "/goods/goodsSearch")
+    public JsonResult<List<GoodsSearchVo>> goodsSearch(@RequestBody GoodsSearchDto goodsSearchDto, HttpServletRequest request) {
+        String userId = getUserId(request);
+        goodsSearchDto.setUserId(userId);
+        return JsonResult.success(goodsService.goodsSearch(goodsSearchDto));
+    }
+
+    @ApiOperation("商品搜索历史记录--删除")
+    @PostMapping(value = "/goods/delGoodsSearch/{id}")
+    public Result<String> delGoodsSearch (@PathVariable("id") Long id, HttpServletRequest request) {
+        goodsService.delGoodsSearch(id, getUserId(request));
+        return Result.success();
+    }
+
 }
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/dto/GoodsSearchDto.java b/gc-shop/src/main/java/com/xzx/gc/shop/dto/GoodsSearchDto.java
new file mode 100644
index 0000000..315ffba
--- /dev/null
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/dto/GoodsSearchDto.java
@@ -0,0 +1,11 @@
+package com.xzx.gc.shop.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class GoodsSearchDto {
+
+    @ApiModelProperty(hidden = true)
+    private String userId;
+}
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/dto/XcxGoodsListDto.java b/gc-shop/src/main/java/com/xzx/gc/shop/dto/XcxGoodsListDto.java
index d3be1d6..4eed143 100644
--- a/gc-shop/src/main/java/com/xzx/gc/shop/dto/XcxGoodsListDto.java
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/dto/XcxGoodsListDto.java
@@ -32,4 +32,7 @@
     @ApiModelProperty(value="每页显示记录数")
     private int pageSize=10;
 
+    @ApiModelProperty(hidden = true)
+    private String userId;
+
 }
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/mapper/ScoreGoodsSearchMapper.java b/gc-shop/src/main/java/com/xzx/gc/shop/mapper/ScoreGoodsSearchMapper.java
new file mode 100644
index 0000000..44f4713
--- /dev/null
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/mapper/ScoreGoodsSearchMapper.java
@@ -0,0 +1,14 @@
+package com.xzx.gc.shop.mapper;
+
+import com.xzx.gc.entity.ScoreGoodsSearch;
+import com.xzx.gc.shop.dto.GoodsSearchDto;
+import com.xzx.gc.shop.vo.GoodsSearchVo;
+import com.xzx.gc.util.GcMapper;
+
+import java.util.List;
+
+public interface ScoreGoodsSearchMapper extends GcMapper<ScoreGoodsSearch> {
+
+    List<GoodsSearchVo> goodsSearch(GoodsSearchDto goodsSearchDto);
+
+}
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/service/GoodsService.java b/gc-shop/src/main/java/com/xzx/gc/shop/service/GoodsService.java
index d66a17b..e8c8c03 100644
--- a/gc-shop/src/main/java/com/xzx/gc/shop/service/GoodsService.java
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/service/GoodsService.java
@@ -3,9 +3,11 @@
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.convert.Convert;
+import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.github.pagehelper.PageHelper;
@@ -42,6 +44,8 @@
     ScoreGoodsImagesMapper scoreGoodsImagesMapper;
     @Resource
     ScoreGoodsStyleMapper scoreGoodsStyleMapper;
+    @Resource
+    ScoreGoodsSearchMapper scoreGoodsSearchMapper;
 
     @Autowired
     private MqUtil mqUtil;
@@ -313,7 +317,13 @@
 
         PageHelper.startPage(xcxGoodsListDto.getPageNo(), xcxGoodsListDto.getPageSize());
         List<XcxGoodsListVo> data = scoreGoodsMapper.selectXcxGoodsList(xcxGoodsListDto);
-
+        if(StrUtil.isNotEmpty(xcxGoodsListDto.getName())){
+            ScoreGoodsSearch scoreGoodsSearch = new ScoreGoodsSearch();
+            scoreGoodsSearch.setUserId(xcxGoodsListDto.getUserId());
+            scoreGoodsSearch.setContents(xcxGoodsListDto.getName());
+            scoreGoodsSearch.setCreatedTime(new DateTime());
+            scoreGoodsSearchMapper.insert(scoreGoodsSearch);
+        }
         return new PageInfo<>(data);
     }
 
@@ -341,4 +351,16 @@
         }
         return data;
     }
+
+    public List<GoodsSearchVo> goodsSearch(GoodsSearchDto goodsSearchDto) {
+        return scoreGoodsSearchMapper.goodsSearch(goodsSearchDto);
+    }
+
+    public void delGoodsSearch(Long id, String userId) {
+        Example exampleSearch = new Example(ScoreGoodsSearch.class);
+        Example.Criteria criteriaSearch = exampleSearch.createCriteria();
+        criteriaSearch.andEqualTo("id",id);
+        criteriaSearch.andEqualTo("userId",userId);
+        scoreGoodsSearchMapper.deleteByExample(exampleSearch);
+    }
 }
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/vo/GoodsSearchVo.java b/gc-shop/src/main/java/com/xzx/gc/shop/vo/GoodsSearchVo.java
new file mode 100644
index 0000000..232c297
--- /dev/null
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/vo/GoodsSearchVo.java
@@ -0,0 +1,20 @@
+package com.xzx.gc.shop.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "GoodsSearchVo", description = "小程序分类接口返回参数类")
+public class GoodsSearchVo {
+
+    private Long id;
+
+    private String userId;
+
+    @ApiModelProperty(value = "内容")
+    private String contents;
+
+    @ApiModelProperty(value = "创建时间")
+    private String createTime;
+}
diff --git a/gc-shop/src/main/resources/mapper/shop/ScoreGoodsSearchMapper.xml b/gc-shop/src/main/resources/mapper/shop/ScoreGoodsSearchMapper.xml
new file mode 100644
index 0000000..534851d
--- /dev/null
+++ b/gc-shop/src/main/resources/mapper/shop/ScoreGoodsSearchMapper.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xzx.gc.shop.mapper.ScoreGoodsSearchMapper">
+
+    <select id="goodsSearch" resultType="com.xzx.gc.shop.vo.GoodsSearchVo">
+        select a.id id,
+               a.user_id userId,
+               date_format(a.CREATED_TIME,'%Y-%m-%d') createTime,
+               a.contents contents
+        from xzx_score_goods_search a
+        where a.user_id=#{record.userId}
+    </select>
+
+</mapper>

--
Gitblit v1.9.1