+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 708b841..df6b8c1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -121,6 +121,13 @@
okhttp
4.9.3
+
+
+
+ cn.hutool
+ hutool-all
+ 5.8.25
+
diff --git a/service/pom.xml b/service/pom.xml
index 1013f23..c36e6ba 100644
--- a/service/pom.xml
+++ b/service/pom.xml
@@ -16,6 +16,7 @@
service-acl
service-sys
service-product
+ service-search
diff --git a/service/service-acl/src/main/resources/application.yml b/service/service-acl/src/main/resources/application.yml
index 4b98984..5c9022d 100644
--- a/service/service-acl/src/main/resources/application.yml
+++ b/service/service-acl/src/main/resources/application.yml
@@ -11,7 +11,7 @@ spring:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://${bunny.datasource.host}:${bunny.datasource.port}/${bunny.datasource.sqlData}?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true
username: ${bunny.datasource.username}
- password: "${bunny.datasource.password}"
+ password: ${bunny.datasource.password}
cloud:
sentinel:
diff --git a/service/service-product/Dockerfile b/service/service-product/Dockerfile
new file mode 100644
index 0000000..ef109ac
--- /dev/null
+++ b/service/service-product/Dockerfile
@@ -0,0 +1,21 @@
+FROM openjdk:17
+MAINTAINER bunny
+
+#系统编码
+ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
+
+# 设置时区,构建镜像时执行的命令
+RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
+RUN echo "Asia/Shanghai" > /etc/timezone
+
+# 设定工作目录
+WORKDIR /home/bunny
+
+# 复制jar包
+COPY target/*.jar /home/bunny/app.jar
+
+#启动容器时的进程
+ENTRYPOINT ["java","-jar","/home/bunny/app.jar"]
+
+#暴露 8080 端口
+EXPOSE 8080
\ No newline at end of file
diff --git a/service/service-product/pom.xml b/service/service-product/pom.xml
index 921dc11..5683617 100644
--- a/service/service-product/pom.xml
+++ b/service/service-product/pom.xml
@@ -18,6 +18,9 @@
-
+
+ cn.hutool
+ hutool-all
+
diff --git a/service/service-product/src/main/java/com/atguigu/ssyx/product/controller/SkuInfoController.java b/service/service-product/src/main/java/com/atguigu/ssyx/product/controller/SkuInfoController.java
index cd6dbc0..1f69e01 100644
--- a/service/service-product/src/main/java/com/atguigu/ssyx/product/controller/SkuInfoController.java
+++ b/service/service-product/src/main/java/com/atguigu/ssyx/product/controller/SkuInfoController.java
@@ -1,9 +1,20 @@
package com.atguigu.ssyx.product.controller;
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.atguigu.ssyx.common.result.Result;
+import com.atguigu.ssyx.model.product.SkuInfo;
+import com.atguigu.ssyx.product.service.SkuInfoService;
+import com.atguigu.ssyx.vo.product.SkuInfoQueryVo;
+import com.atguigu.ssyx.vo.product.SkuInfoVo;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
-import org.springframework.web.bind.annotation.RestController;
+import java.util.List;
/**
*
@@ -13,9 +24,84 @@ import org.springframework.web.bind.annotation.RestController;
* @author bunny
* @since 2024-04-03
*/
+@Api(value = "SkuInfo管理", tags = "商品Sku管理")
@RestController
-@RequestMapping("/product/sku-info")
+@RequestMapping(value = "/admin/product/skuInfo")
public class SkuInfoController {
+ @Autowired
+ private SkuInfoService skuInfoService;
+ @ApiOperation(value = "获取sku分页列表")
+ @GetMapping("{page}/{limit}")
+ public Result> index(
+ @ApiParam(name = "page", value = "当前页码", required = true)
+ @PathVariable Long page,
+
+ @ApiParam(name = "limit", value = "每页记录数", required = true)
+ @PathVariable Long limit,
+
+ @ApiParam(name = "skuInfoQueryVo", value = "查询对象", required = false)
+ SkuInfoQueryVo skuInfoQueryVo) {
+ Page pageParam = new Page<>(page, limit);
+ IPage pageModel = skuInfoService.selectPage(pageParam, skuInfoQueryVo);
+ return Result.success(pageModel);
+ }
+
+ @ApiOperation(value = "商品添加方法")
+ @PostMapping("save")
+ public Result save(@RequestBody SkuInfoVo skuInfoVo) {
+ skuInfoService.saveSkuInfo(skuInfoVo);
+ return Result.success();
+ }
+
+ @ApiOperation(value = "获取商品SKU信息")
+ @GetMapping("get/{id}")
+ public Result get(@PathVariable Long id) {
+ SkuInfoVo skuInfoVo = skuInfoService.getSkuInfoVo(id);
+ return Result.success(skuInfoVo);
+ }
+
+ @ApiOperation(value = "修改商品sku信息")
+ @PutMapping("update")
+ public Result updateById(@RequestBody SkuInfoVo skuInfoVo) {
+ skuInfoService.updateSkuInfo(skuInfoVo);
+ return Result.success();
+ }
+
+ @ApiOperation(value = "商品SKU删除")
+ @DeleteMapping("remove/{id}")
+ public Result remove(@PathVariable Long id) {
+ skuInfoService.removeById(id);
+ return Result.success();
+ }
+
+ @ApiOperation(value = "根据id列表删除")
+ @DeleteMapping("batchRemove")
+ public Result batchRemove(@RequestBody List ids) {
+ skuInfoService.removeByIds(ids);
+ return Result.success();
+ }
+
+ @ApiOperation(value = "商品审核")
+ @GetMapping("check/{skuId}/{status}")
+ public Result check(@PathVariable Long skuId, @PathVariable Integer status) {
+ skuInfoService.check(skuId, status);
+ return Result.success();
+ }
+
+ @ApiOperation(value = "商品上架")
+ @GetMapping("publish/{skuId}/{status}")
+ public Result publish(@PathVariable("skuId") Long skuId,
+ @PathVariable("status") Integer status) {
+ skuInfoService.publish(skuId, status);
+ return Result.success();
+ }
+
+ @ApiOperation(value = "新人专享")
+ @GetMapping("isNewPerson/{skuId}/{status}")
+ public Result isNewPerson(@PathVariable Long skuId, @PathVariable Integer status) {
+ skuInfoService.isNewPerson(skuId, status);
+ return Result.success();
+ }
}
diff --git a/service/service-product/src/main/java/com/atguigu/ssyx/product/service/SkuAttrValueService.java b/service/service-product/src/main/java/com/atguigu/ssyx/product/service/SkuAttrValueService.java
index 120f6b1..bf55e8e 100644
--- a/service/service-product/src/main/java/com/atguigu/ssyx/product/service/SkuAttrValueService.java
+++ b/service/service-product/src/main/java/com/atguigu/ssyx/product/service/SkuAttrValueService.java
@@ -3,6 +3,8 @@ package com.atguigu.ssyx.product.service;
import com.atguigu.ssyx.model.product.SkuAttrValue;
import com.baomidou.mybatisplus.extension.service.IService;
+import java.util.List;
+
/**
*
* spu属性值 服务类
@@ -13,4 +15,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface SkuAttrValueService extends IService {
+ /**
+ * 根据id查询商品属性信息列表
+ *
+ * @param id 商品id
+ * @return 图片列表
+ */
+ List getAttrValueListBySkuId(Long id);
}
diff --git a/service/service-product/src/main/java/com/atguigu/ssyx/product/service/SkuImageService.java b/service/service-product/src/main/java/com/atguigu/ssyx/product/service/SkuImageService.java
index 26c3e76..5ce3529 100644
--- a/service/service-product/src/main/java/com/atguigu/ssyx/product/service/SkuImageService.java
+++ b/service/service-product/src/main/java/com/atguigu/ssyx/product/service/SkuImageService.java
@@ -3,6 +3,8 @@ package com.atguigu.ssyx.product.service;
import com.atguigu.ssyx.model.product.SkuImage;
import com.baomidou.mybatisplus.extension.service.IService;
+import java.util.List;
+
/**
*
* 商品图片 服务类
@@ -13,4 +15,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface SkuImageService extends IService {
+ /**
+ * 根据id查询商品图片列表
+ *
+ * @param id 商品id
+ * @return 商品图片列表
+ */
+ List getImageListBySkuId(Long id);
}
diff --git a/service/service-product/src/main/java/com/atguigu/ssyx/product/service/SkuInfoService.java b/service/service-product/src/main/java/com/atguigu/ssyx/product/service/SkuInfoService.java
index d9b08c9..a76aa13 100644
--- a/service/service-product/src/main/java/com/atguigu/ssyx/product/service/SkuInfoService.java
+++ b/service/service-product/src/main/java/com/atguigu/ssyx/product/service/SkuInfoService.java
@@ -1,6 +1,10 @@
package com.atguigu.ssyx.product.service;
import com.atguigu.ssyx.model.product.SkuInfo;
+import com.atguigu.ssyx.vo.product.SkuInfoQueryVo;
+import com.atguigu.ssyx.vo.product.SkuInfoVo;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
/**
@@ -13,4 +17,58 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface SkuInfoService extends IService {
+ /**
+ * 获取sku分页列表
+ *
+ * @param pageParam 分页查询条件
+ * @param skuInfoQueryVo 商品查询条件
+ * @return 分页结果
+ */
+ IPage selectPage(Page pageParam, SkuInfoQueryVo skuInfoQueryVo);
+
+ /**
+ * 商品添加方法
+ *
+ * @param skuInfoVo 商品信息
+ */
+ void saveSkuInfo(SkuInfoVo skuInfoVo);
+
+ /**
+ * 获取商品SKU信息
+ *
+ * @param id 商品id
+ * @return 商品信息
+ */
+ SkuInfoVo getSkuInfoVo(Long id);
+
+ /**
+ * 修改商品sku信息
+ *
+ * @param skuInfoVo 商品信息
+ */
+ void updateSkuInfo(SkuInfoVo skuInfoVo);
+
+ /**
+ * 商品审核
+ *
+ * @param skuId 商品ID
+ * @param status 商品状态
+ */
+ void check(Long skuId, Integer status);
+
+ /**
+ * 商品上架
+ *
+ * @param skuId 商品ID
+ * @param status 商品状态
+ */
+ void publish(Long skuId, Integer status);
+
+ /**
+ * 新人专享
+ *
+ * @param skuId 商品ID
+ * @param status 商品状态
+ */
+ void isNewPerson(Long skuId, Integer status);
}
diff --git a/service/service-product/src/main/java/com/atguigu/ssyx/product/service/SkuPosterService.java b/service/service-product/src/main/java/com/atguigu/ssyx/product/service/SkuPosterService.java
index abf22d1..52be52b 100644
--- a/service/service-product/src/main/java/com/atguigu/ssyx/product/service/SkuPosterService.java
+++ b/service/service-product/src/main/java/com/atguigu/ssyx/product/service/SkuPosterService.java
@@ -3,6 +3,8 @@ package com.atguigu.ssyx.product.service;
import com.atguigu.ssyx.model.product.SkuPoster;
import com.baomidou.mybatisplus.extension.service.IService;
+import java.util.List;
+
/**
*
* 商品海报表 服务类
@@ -13,4 +15,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface SkuPosterService extends IService {
+ /**
+ * 根据id查询商品海报列表
+ *
+ * @param id 商品id
+ * @return 图片列表
+ */
+ List getPosterListBySkuId(Long id);
}
diff --git a/service/service-product/src/main/java/com/atguigu/ssyx/product/service/impl/SkuAttrValueServiceImpl.java b/service/service-product/src/main/java/com/atguigu/ssyx/product/service/impl/SkuAttrValueServiceImpl.java
index 4f84a47..e65d7c0 100644
--- a/service/service-product/src/main/java/com/atguigu/ssyx/product/service/impl/SkuAttrValueServiceImpl.java
+++ b/service/service-product/src/main/java/com/atguigu/ssyx/product/service/impl/SkuAttrValueServiceImpl.java
@@ -3,9 +3,12 @@ package com.atguigu.ssyx.product.service.impl;
import com.atguigu.ssyx.model.product.SkuAttrValue;
import com.atguigu.ssyx.product.mapper.SkuAttrValueMapper;
import com.atguigu.ssyx.product.service.SkuAttrValueService;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
+import java.util.List;
+
/**
*
* spu属性值 服务实现类
@@ -17,4 +20,14 @@ import org.springframework.stereotype.Service;
@Service
public class SkuAttrValueServiceImpl extends ServiceImpl implements SkuAttrValueService {
+ /**
+ * 根据id查询商品属性信息列表
+ *
+ * @param id 商品id
+ * @return 图片列表
+ */
+ @Override
+ public List getAttrValueListBySkuId(Long id) {
+ return baseMapper.selectList(Wrappers.lambdaQuery().eq(SkuAttrValue::getSkuId, id));
+ }
}
diff --git a/service/service-product/src/main/java/com/atguigu/ssyx/product/service/impl/SkuImageServiceImpl.java b/service/service-product/src/main/java/com/atguigu/ssyx/product/service/impl/SkuImageServiceImpl.java
index c16cc9a..b6a363a 100644
--- a/service/service-product/src/main/java/com/atguigu/ssyx/product/service/impl/SkuImageServiceImpl.java
+++ b/service/service-product/src/main/java/com/atguigu/ssyx/product/service/impl/SkuImageServiceImpl.java
@@ -3,9 +3,12 @@ package com.atguigu.ssyx.product.service.impl;
import com.atguigu.ssyx.model.product.SkuImage;
import com.atguigu.ssyx.product.mapper.SkuImageMapper;
import com.atguigu.ssyx.product.service.SkuImageService;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
+import java.util.List;
+
/**
*
* 商品图片 服务实现类
@@ -16,5 +19,14 @@ import org.springframework.stereotype.Service;
*/
@Service
public class SkuImageServiceImpl extends ServiceImpl implements SkuImageService {
-
+ /**
+ * 根据id查询商品图片列表
+ *
+ * @param id 商品id
+ * @return 商品图片列表
+ */
+ @Override
+ public List getImageListBySkuId(Long id) {
+ return baseMapper.selectList(Wrappers.lambdaQuery().eq(SkuImage::getSkuId, id));
+ }
}
diff --git a/service/service-product/src/main/java/com/atguigu/ssyx/product/service/impl/SkuInfoServiceImpl.java b/service/service-product/src/main/java/com/atguigu/ssyx/product/service/impl/SkuInfoServiceImpl.java
index a6cb98b..f740277 100644
--- a/service/service-product/src/main/java/com/atguigu/ssyx/product/service/impl/SkuInfoServiceImpl.java
+++ b/service/service-product/src/main/java/com/atguigu/ssyx/product/service/impl/SkuInfoServiceImpl.java
@@ -1,10 +1,29 @@
package com.atguigu.ssyx.product.service.impl;
+import com.atguigu.ssyx.model.product.SkuAttrValue;
+import com.atguigu.ssyx.model.product.SkuImage;
import com.atguigu.ssyx.model.product.SkuInfo;
+import com.atguigu.ssyx.model.product.SkuPoster;
import com.atguigu.ssyx.product.mapper.SkuInfoMapper;
+import com.atguigu.ssyx.product.service.SkuAttrValueService;
+import com.atguigu.ssyx.product.service.SkuImageService;
import com.atguigu.ssyx.product.service.SkuInfoService;
+import com.atguigu.ssyx.product.service.SkuPosterService;
+import com.atguigu.ssyx.vo.product.SkuInfoQueryVo;
+import com.atguigu.ssyx.vo.product.SkuInfoVo;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import io.jsonwebtoken.lang.Collections;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
+
+import java.util.List;
/**
*
@@ -16,5 +35,185 @@ import org.springframework.stereotype.Service;
*/
@Service
public class SkuInfoServiceImpl extends ServiceImpl implements SkuInfoService {
+ @Autowired
+ private SkuAttrValueService skuAttrValueService;
+ @Autowired
+ private SkuImageService skuImageService;
+ @Autowired
+ private SkuPosterService skuPosterService;
+
+ /**
+ * 获取sku分页列表
+ *
+ * @param pageParam 分页查询条件
+ * @param vo 商品查询条件
+ * @return 分页结果
+ */
+ @Override
+ public IPage selectPage(Page pageParam, SkuInfoQueryVo vo) {
+ String keyword = vo.getKeyword();
+ String skuType = vo.getSkuType();
+ Long categoryId = vo.getCategoryId();
+
+ // 封装查询条件
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.like(!StringUtils.isEmpty(keyword), SkuInfo::getSkuName, keyword);
+ wrapper.eq(!StringUtils.isEmpty(skuType), SkuInfo::getSkuType, skuType);
+ wrapper.eq(categoryId != null, SkuInfo::getCategoryId, categoryId);
+
+ // 返回结果
+ return page(pageParam, wrapper);
+ }
+
+ /**
+ * 商品添加方法
+ *
+ * @param skuInfoVo 商品信息
+ */
+ @Override
+ public void saveSkuInfo(SkuInfoVo skuInfoVo) {
+ // 添加sku基本信息
+ SkuInfo skuInfo = new SkuInfo();
+ BeanUtils.copyProperties(skuInfoVo, skuInfo);
+ baseMapper.insert(skuInfo);
+ // 保存sku海报
+ List skuPosterList = skuInfoVo.getSkuPosterList();
+ if (!Collections.isEmpty(skuPosterList)) {
+ skuPosterList.forEach(skuPoster -> skuPoster.setSkuId(skuInfo.getId()));
+ skuPosterService.saveBatch(skuPosterList);
+ }
+ // 保存sku图片
+ List skuImagesList = skuInfoVo.getSkuImagesList();
+ if (!Collections.isEmpty(skuImagesList)) {
+ skuImagesList.forEach(skuImage -> skuImage.setSkuId(skuImage.getId()));
+ skuImageService.saveBatch(skuImagesList);
+ }
+ // 保存sku属性
+ List skuAttrValueList = skuInfoVo.getSkuAttrValueList();
+ if (!Collections.isEmpty(skuImagesList)) {
+ skuAttrValueList.forEach(skuAttrValue -> skuAttrValue.setSkuId(skuInfo.getId()));
+ skuAttrValueService.saveBatch(skuAttrValueList);
+ }
+ }
+
+ /**
+ * 获取商品SKU信息
+ *
+ * @param id 商品id
+ * @return 商品信息
+ */
+ @Override
+ public SkuInfoVo getSkuInfoVo(Long id) {
+ SkuInfoVo skuInfoVo = new SkuInfoVo();
+
+ // 根据id查询sku基本信息
+ SkuInfo skuInfo = baseMapper.selectById(id);
+
+ // 根据id查询商品图片列表
+ List skuImageList = skuImageService.getImageListBySkuId(id);
+
+ // 根据id查询商品海报列表
+ List skuPosterList = skuPosterService.getPosterListBySkuId(id);
+
+ // 根据id查询商品属性信息列表
+ List skuAttrValueList = skuAttrValueService.getAttrValueListBySkuId(id);
+
+ BeanUtils.copyProperties(skuInfo, skuInfoVo);
+ skuInfoVo.setSkuAttrValueList(skuAttrValueList);
+ skuInfoVo.setSkuImagesList(skuImageList);
+ skuInfoVo.setSkuPosterList(skuPosterList);
+
+ // 封装数据返回
+ return skuInfoVo;
+ }
+
+ /**
+ * 修改商品sku信息
+ *
+ * @param skuInfoVo 商品信息
+ */
+ @Override
+ public void updateSkuInfo(SkuInfoVo skuInfoVo) {
+ // 修改sku基本信息
+ SkuInfo skuInfo = new SkuInfo();
+ BeanUtils.copyProperties(skuInfo, skuInfo);
+ baseMapper.updateById(skuInfo);
+
+ // 海报信息
+ Long skuId = skuInfoVo.getId();
+ // 创建查询条件,并删除之前的海报内容
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(SkuPoster::getSkuId, skuId);
+ skuPosterService.remove(wrapper);
+
+ // 设置海报图片skuId值,并完成添加
+ List skuPosterList = skuInfoVo.getSkuPosterList();
+ if (!CollectionUtils.isEmpty(skuPosterList)) {
+ skuPosterList.forEach(skuPoster -> skuPoster.setSkuId(skuId));
+ skuPosterService.saveBatch(skuPosterList);
+ }
+
+ // 商品图片
+ skuImageService.remove(Wrappers.lambdaQuery().eq(SkuImage::getSkuId, skuId));
+ List skuImagesList = skuInfoVo.getSkuImagesList();
+ if (!Collections.isEmpty(skuImagesList)) {
+ skuImagesList.forEach(skuImage -> skuImage.setSkuId(skuId));
+ skuImageService.saveBatch(skuImagesList);
+ }
+
+ // 商品属性
+ skuAttrValueService.remove(Wrappers.lambdaQuery().eq(SkuAttrValue::getSkuId, skuId));
+ List skuAttrValueList = skuInfoVo.getSkuAttrValueList();
+ if (!Collections.isEmpty(skuAttrValueList)) {
+ skuAttrValueList.forEach(skuAttrValue -> skuAttrValue.setSkuId(skuId));
+ skuAttrValueService.saveBatch(skuAttrValueList);
+ }
+ }
+
+ /**
+ * 商品审核
+ *
+ * @param skuId 商品ID
+ * @param status 商品状态
+ */
+ @Override
+ public void check(Long skuId, Integer status) {
+ SkuInfo skuInfo = new SkuInfo();
+ skuInfo.setId(skuId);
+ skuInfo.setCheckStatus(status);
+ updateById(skuInfo);
+ }
+
+ /**
+ * 商品上架
+ *
+ * @param skuId 商品ID
+ * @param status 商品状态
+ */
+ @Override
+ public void publish(Long skuId, Integer status) {
+ SkuInfo skuInfo = new SkuInfo();
+ skuInfo.setId(skuId);
+ if (status == 1) {
+ skuInfo.setPublishStatus(status);
+ } else {
+ skuInfo.setPublishStatus(0);
+ }
+ baseMapper.updateById(skuInfo);
+ }
+
+ /**
+ * 新人专享
+ *
+ * @param skuId 商品ID
+ * @param status 商品状态
+ */
+ @Override
+ public void isNewPerson(Long skuId, Integer status) {
+ SkuInfo skuInfo = new SkuInfo();
+ skuInfo.setId(skuId);
+ skuInfo.setIsNewPerson(status);
+ baseMapper.updateById(skuInfo);
+ }
}
diff --git a/service/service-product/src/main/java/com/atguigu/ssyx/product/service/impl/SkuPosterServiceImpl.java b/service/service-product/src/main/java/com/atguigu/ssyx/product/service/impl/SkuPosterServiceImpl.java
index 35edf9b..c7bba8c 100644
--- a/service/service-product/src/main/java/com/atguigu/ssyx/product/service/impl/SkuPosterServiceImpl.java
+++ b/service/service-product/src/main/java/com/atguigu/ssyx/product/service/impl/SkuPosterServiceImpl.java
@@ -3,9 +3,12 @@ package com.atguigu.ssyx.product.service.impl;
import com.atguigu.ssyx.model.product.SkuPoster;
import com.atguigu.ssyx.product.mapper.SkuPosterMapper;
import com.atguigu.ssyx.product.service.SkuPosterService;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
+import java.util.List;
+
/**
*
* 商品海报表 服务实现类
@@ -16,5 +19,14 @@ import org.springframework.stereotype.Service;
*/
@Service
public class SkuPosterServiceImpl extends ServiceImpl implements SkuPosterService {
-
+ /**
+ * 根据id查询商品海报列表
+ *
+ * @param id 商品id
+ * @return 图片列表
+ */
+ @Override
+ public List getPosterListBySkuId(Long id) {
+ return baseMapper.selectList(Wrappers.lambdaQuery().eq(SkuPoster::getSkuId, id));
+ }
}
diff --git a/service/service-product/src/main/resources/application.yml b/service/service-product/src/main/resources/application.yml
index 1d69fb6..8d33931 100644
--- a/service/service-product/src/main/resources/application.yml
+++ b/service/service-product/src/main/resources/application.yml
@@ -11,7 +11,7 @@ spring:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://${bunny.datasource.host}:${bunny.datasource.port}/${bunny.datasource.sqlData}?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true
username: ${bunny.datasource.username}
- password: "${bunny.datasource.password}"
+ password: ${bunny.datasource.password}
cloud:
sentinel:
diff --git a/service/service-search/Dockerfile b/service/service-search/Dockerfile
new file mode 100644
index 0000000..ef109ac
--- /dev/null
+++ b/service/service-search/Dockerfile
@@ -0,0 +1,21 @@
+FROM openjdk:17
+MAINTAINER bunny
+
+#系统编码
+ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
+
+# 设置时区,构建镜像时执行的命令
+RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
+RUN echo "Asia/Shanghai" > /etc/timezone
+
+# 设定工作目录
+WORKDIR /home/bunny
+
+# 复制jar包
+COPY target/*.jar /home/bunny/app.jar
+
+#启动容器时的进程
+ENTRYPOINT ["java","-jar","/home/bunny/app.jar"]
+
+#暴露 8080 端口
+EXPOSE 8080
\ No newline at end of file
diff --git a/service/service-search/pom.xml b/service/service-search/pom.xml
new file mode 100644
index 0000000..7d73f9f
--- /dev/null
+++ b/service/service-search/pom.xml
@@ -0,0 +1,32 @@
+
+ 4.0.0
+
+ com.atguigu
+ service
+ 1.0-SNAPSHOT
+
+
+ service-search
+ jar
+
+ service-search
+ https://maven.apache.org
+
+
+ UTF-8
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-elasticsearch
+
+
+
+
+
+
+
+
+
diff --git a/service/service-search/src/main/resources/application-dev.yml b/service/service-search/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..642acdd
--- /dev/null
+++ b/service/service-search/src/main/resources/application-dev.yml
@@ -0,0 +1,27 @@
+server:
+ port: 8203
+
+bunny:
+ datasource:
+ host: 106.15.251.123
+ port: 3305
+ sqlData: shequ-product
+ username: root
+ password: "02120212"
+
+ nacos:
+ server-addr: z-bunny.cn:8848
+ discovery:
+ namespace: ssyx
+
+ redis:
+ host: 47.120.65.66
+ port: 6379
+ database: 2
+ password: "02120212"
+
+ minio:
+ endpointUrl: "http://129.211.31.58:9000"
+ bucket-name: ssyx
+ accessKey: bunny
+ secretKey: "02120212"
\ No newline at end of file
diff --git a/service/service-search/src/main/resources/application.yml b/service/service-search/src/main/resources/application.yml
new file mode 100644
index 0000000..8d33931
--- /dev/null
+++ b/service/service-search/src/main/resources/application.yml
@@ -0,0 +1,62 @@
+server:
+ port: 8203
+spring:
+ application:
+ name: service-product
+ profiles:
+ active: dev
+
+ datasource:
+ type: com.zaxxer.hikari.HikariDataSource
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://${bunny.datasource.host}:${bunny.datasource.port}/${bunny.datasource.sqlData}?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true
+ username: ${bunny.datasource.username}
+ password: ${bunny.datasource.password}
+
+ cloud:
+ sentinel:
+ log:
+ dir: logs/${spring.application.name}/sentinel
+ nacos:
+ discovery:
+ namespace: ${bunny.nacos.discovery.namespace}
+ server-addr: ${bunny.nacos.server-addr}
+
+ jackson:
+ date-format: yyyy-MM-dd HH:mm:ss
+ time-zone: GMT+8
+
+
+mybatis-plus:
+ type-aliases-package: com.atguigu.model # 配置每个包前缀
+ mapper-locations: classpath:mapper/*.xml
+ configuration:
+ map-underscore-to-camel-case: true
+ auto-mapping-behavior: full
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 查看日志
+ global-config:
+ db-config:
+ # 设置表名前缀,不用在每个tableName添加前缀
+ # table-prefix: t_
+ # 全局配置主键值方式
+ id-type: assign_id
+ logic-not-delete-value: 0 # 未删除默认为0
+ logic-delete-value: 1 # 删除
+ logic-delete-field: deleted # 全局配置逻辑删除
+
+logging:
+ level:
+ com.atguigu.ssyx.acl.mapper: debug
+ com.atguigu.ssyx.acl.controller: info
+ com.atguigu.ssyx.acl.service: info
+ pattern:
+ dateformat: HH:mm:ss:SSS
+ file:
+ path: "logs/${spring.application.name}"
+
+bunny:
+ minio:
+ endpointUrl: ${bunny.minio.endpointUrl}
+ accessKey: ${bunny.minio.accessKey}
+ secretKey: ${bunny.minio.secretKey}
+ bucket-name: ${bunny.minio.bucket-name}
\ No newline at end of file
diff --git a/service/service-search/src/main/resources/banner.txt b/service/service-search/src/main/resources/banner.txt
new file mode 100644
index 0000000..cc77fc2
--- /dev/null
+++ b/service/service-search/src/main/resources/banner.txt
@@ -0,0 +1,16 @@
+-----------------▄██-█▄---------
+-----------------███▄██▄--------
+-----------------███████--------
+-----------------▀███████-------
+-------------------██████▄▄-----
+-------------------█████████▄---
+-------------------██████▄████--
+-------▄███████████████████████-
+-----▄███████████████████████▀--
+---▄██████████████████████------
+---███████████████████████------
+---███████████████████████------
+-▄▄██████████████████████▀------
+-█████████████████▀█████--------
+-▀██████████████▀▀-▀█████▄------
+-------▀▀▀▀▀▀▀▀▀------▀▀▀▀------
\ No newline at end of file
diff --git a/service/service-search/src/main/resources/favicon.ico b/service/service-search/src/main/resources/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..1ba397c45de65f92b238bb9f94608320bf32209b
GIT binary patch
literal 13342
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
literal 0
HcmV?d00001
diff --git a/service/service-sys/src/main/resources/application.yml b/service/service-sys/src/main/resources/application.yml
index 35787e2..ae79b49 100644
--- a/service/service-sys/src/main/resources/application.yml
+++ b/service/service-sys/src/main/resources/application.yml
@@ -12,7 +12,7 @@ spring:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://${bunny.datasource.host}:${bunny.datasource.port}/${bunny.datasource.sqlData}?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true
username: ${bunny.datasource.username}
- password: "${bunny.datasource.password}"
+ password: ${bunny.datasource.password}
cloud:
sentinel: