整合nacos
This commit is contained in:
@@ -10,7 +10,20 @@
|
||||
</parent>
|
||||
|
||||
<artifactId>service-product</artifactId>
|
||||
|
||||
<dependencies>
|
||||
<!-- 阿里云oss依赖 -->
|
||||
<dependency>
|
||||
<groupId>com.aliyun.oss</groupId>
|
||||
<artifactId>aliyun-sdk-oss</artifactId>
|
||||
<version>3.9.1</version>
|
||||
</dependency>
|
||||
<!-- 日期工具栏依赖 -->
|
||||
<dependency>
|
||||
<groupId>joda-time</groupId>
|
||||
<artifactId>joda-time</artifactId>
|
||||
<version>2.10.1</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<properties>
|
||||
<maven.compiler.source>8</maven.compiler.source>
|
||||
<maven.compiler.target>8</maven.compiler.target>
|
||||
|
@@ -2,6 +2,7 @@ package com.atguigu.ssyx;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
|
||||
|
||||
/**
|
||||
* ClassName: ServiceProductApplication
|
||||
@@ -11,6 +12,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
* @Create 2023/9/15 09:47
|
||||
*/
|
||||
@SpringBootApplication
|
||||
@EnableDiscoveryClient
|
||||
public class ServiceProductApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
@@ -0,0 +1,46 @@
|
||||
package com.atguigu.ssyx.product.controller;
|
||||
|
||||
import com.atguigu.ssyx.common.result.Result;
|
||||
import com.atguigu.ssyx.product.service.FileUploadService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.CrossOrigin;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
/**
|
||||
* ClassName: FileUploadController
|
||||
* Package: com.atguigu.ssyx.product.controller
|
||||
*
|
||||
* @author yovinchen
|
||||
* @Create 2023/9/15 13:56
|
||||
*/
|
||||
@Api(tags = "文件上传接口")
|
||||
@RestController
|
||||
@CrossOrigin
|
||||
@RequestMapping("admin/product")
|
||||
public class FileUploadController {
|
||||
|
||||
@Autowired
|
||||
private FileUploadService fileUploadService;
|
||||
|
||||
/**
|
||||
* 文件上传
|
||||
*
|
||||
* @param file
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@ApiOperation("文件上传接口")
|
||||
@PostMapping("fileUpload")
|
||||
public Result fileUpload(MultipartFile file) throws Exception {
|
||||
try {
|
||||
return Result.ok(fileUploadService.fileUpload(file));
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("文件上传接口异常", e);
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,8 +1,20 @@
|
||||
package com.atguigu.ssyx.product.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
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 java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -12,9 +24,118 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
* @author atguigu
|
||||
* @since 2023-09-15
|
||||
*/
|
||||
@Api(value = "SkuInfo管理", tags = "商品Sku管理")
|
||||
@RestController
|
||||
@RequestMapping("/product/sku-info")
|
||||
@CrossOrigin
|
||||
@RequestMapping(value = "/admin/product/skuInfo")
|
||||
public class SkuInfoController {
|
||||
|
||||
@Autowired
|
||||
private SkuInfoService skuInfoService;
|
||||
|
||||
@ApiOperation(value = "获取sku分页列表")
|
||||
@GetMapping("{page}/{limit}")
|
||||
public Result<IPage<SkuInfo>> 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) {
|
||||
try {
|
||||
Page<SkuInfo> pageParam = new Page<>(page, limit);
|
||||
IPage<SkuInfo> pageModel = skuInfoService.selectPage(pageParam, skuInfoQueryVo);
|
||||
return Result.ok(pageModel);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("获取sku分页列表异常", e);
|
||||
}
|
||||
}
|
||||
|
||||
@ApiOperation(value = "新增商品sku信息")
|
||||
@PostMapping("save")
|
||||
public Result save(@RequestBody SkuInfoVo skuInfoVo) {
|
||||
try {
|
||||
skuInfoService.saveSkuInfo(skuInfoVo);
|
||||
return Result.ok(null);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("新增商品sku信息异常", e);
|
||||
}
|
||||
}
|
||||
|
||||
@ApiOperation(value = "获取商品sku信息")
|
||||
@GetMapping("get/{id}")
|
||||
public Result<SkuInfoVo> get(@PathVariable Long id) {
|
||||
try {
|
||||
SkuInfoVo skuInfoVo = skuInfoService.getSkuInfoVo(id);
|
||||
return Result.ok(skuInfoVo);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("新增商品sku信息异常", e);
|
||||
}
|
||||
}
|
||||
|
||||
@ApiOperation(value = "修改商品sku信息")
|
||||
@PutMapping("update")
|
||||
public Result updateById(@RequestBody SkuInfoVo skuInfoVo) {
|
||||
try {
|
||||
skuInfoService.updateSkuInfo(skuInfoVo);
|
||||
return Result.ok(null);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("修改商品sku信息异常", e);
|
||||
}
|
||||
}
|
||||
|
||||
@ApiOperation(value = "删除商品sku信息")
|
||||
@DeleteMapping("remove/{id}")
|
||||
public Result remove(@PathVariable Long id) {
|
||||
try {
|
||||
skuInfoService.removeById(id);
|
||||
return Result.ok(null);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("删除商品sku信息异常", e);
|
||||
}
|
||||
}
|
||||
|
||||
@ApiOperation(value = "根据id列表删除商品sku信息")
|
||||
@DeleteMapping("batchRemove")
|
||||
public Result batchRemove(@RequestBody List<Long> idList) {
|
||||
try {
|
||||
skuInfoService.removeByIds(idList);
|
||||
return Result.ok(null);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("根据id列表删除商品sku信息异常", e);
|
||||
}
|
||||
}
|
||||
|
||||
@ApiOperation(value = "商品审核")
|
||||
@GetMapping("check/{skuId}/{status}")
|
||||
public Result check(@PathVariable("skuId") Long skuId, @PathVariable("status") Integer status) {
|
||||
try {
|
||||
skuInfoService.check(skuId, status);
|
||||
return Result.ok(null);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("商品审核异常", e);
|
||||
}
|
||||
}
|
||||
|
||||
@ApiOperation(value = "商品上/下架")
|
||||
@GetMapping("publish/{skuId}/{status}")
|
||||
public Result publish(@PathVariable("skuId") Long skuId,
|
||||
@PathVariable("status") Integer status) {
|
||||
try {
|
||||
skuInfoService.publish(skuId, status);
|
||||
return Result.ok(null);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("商品上/下架异常", e);
|
||||
}
|
||||
}
|
||||
|
||||
@ApiOperation(value = "新人专享")
|
||||
@GetMapping("isNewPerson/{skuId}/{status}")
|
||||
public Result isNewPerson(@PathVariable("skuId") Long skuId,
|
||||
@PathVariable("status") Integer status) {
|
||||
try {
|
||||
skuInfoService.isNewPerson(skuId, status);
|
||||
return Result.ok(null);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("新人专享异常", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -0,0 +1,14 @@
|
||||
package com.atguigu.ssyx.product.service;
|
||||
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
/**
|
||||
* ClassName: FileUploadService
|
||||
* Package: com.atguigu.ssyx.product.service
|
||||
*
|
||||
* @author yovinchen
|
||||
* @Create 2023/9/15 13:57
|
||||
*/
|
||||
public interface FileUploadService {
|
||||
String fileUpload(MultipartFile file) throws Exception;
|
||||
}
|
@@ -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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* spu属性值 服务类
|
||||
@@ -13,4 +15,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||
*/
|
||||
public interface SkuAttrValueService extends IService<SkuAttrValue> {
|
||||
|
||||
List<SkuAttrValue> findBySkuId(Long skuId);
|
||||
}
|
||||
|
@@ -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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 商品图片 服务类
|
||||
@@ -13,4 +15,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||
*/
|
||||
public interface SkuImageService extends IService<SkuImage> {
|
||||
|
||||
List<SkuImage> findBySkuId(Long skuId);
|
||||
}
|
||||
|
@@ -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,17 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||
*/
|
||||
public interface SkuInfoService extends IService<SkuInfo> {
|
||||
|
||||
IPage<SkuInfo> selectPage(Page<SkuInfo> pageParam, SkuInfoQueryVo skuInfoQueryVo);
|
||||
|
||||
void saveSkuInfo(SkuInfoVo skuInfoVo);
|
||||
|
||||
SkuInfoVo getSkuInfoVo(Long id);
|
||||
|
||||
void updateSkuInfo(SkuInfoVo skuInfoVo);
|
||||
|
||||
void check(Long skuId, Integer status);
|
||||
|
||||
void publish(Long skuId, Integer status);
|
||||
|
||||
void isNewPerson(Long skuId, Integer status);
|
||||
}
|
||||
|
@@ -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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 商品海报表 服务类
|
||||
@@ -13,4 +15,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||
*/
|
||||
public interface SkuPosterService extends IService<SkuPoster> {
|
||||
|
||||
List<SkuPoster> findBySkuId(Long skuId);
|
||||
}
|
||||
|
@@ -0,0 +1,65 @@
|
||||
package com.atguigu.ssyx.product.service.impl;
|
||||
|
||||
import com.aliyun.oss.OSS;
|
||||
import com.aliyun.oss.OSSClientBuilder;
|
||||
import com.atguigu.ssyx.product.service.FileUploadService;
|
||||
import org.joda.time.DateTime;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* ClassName: FileUploadServiceImpl
|
||||
* Package: com.atguigu.ssyx.product.service.impl
|
||||
*
|
||||
* @author yovinchen
|
||||
* @Create 2023/9/15 13:57
|
||||
*/
|
||||
@Service
|
||||
public class FileUploadServiceImpl implements FileUploadService {
|
||||
|
||||
@Value("${aliyun.endpoint}")
|
||||
private String endPoint;
|
||||
@Value("${aliyun.keyid}")
|
||||
private String accessKey;
|
||||
@Value("${aliyun.keysecret}")
|
||||
private String secreKey;
|
||||
@Value("${aliyun.bucketname}")
|
||||
private String bucketName;
|
||||
|
||||
@Override
|
||||
public String fileUpload(MultipartFile file) throws Exception {
|
||||
try {
|
||||
// 创建OSSClient实例。
|
||||
OSS ossClient = new OSSClientBuilder().build(endPoint, accessKey, secreKey);
|
||||
// 上传文件流。
|
||||
InputStream inputStream = file.getInputStream();
|
||||
String fileName = file.getOriginalFilename();
|
||||
//生成随机唯一值,使用uuid,添加到文件名称里面
|
||||
String uuid = UUID
|
||||
.randomUUID()
|
||||
.toString()
|
||||
.replaceAll("-", "");
|
||||
fileName = uuid + fileName;
|
||||
//按照当前日期,创建文件夹,上传到创建文件夹里面
|
||||
// 2021/02/02/01.jpg
|
||||
String timeUrl = new DateTime().toString("yyyy/MM/dd");
|
||||
fileName = timeUrl + "/" + fileName;
|
||||
//调用方法实现上传
|
||||
ossClient.putObject(bucketName, fileName, inputStream);
|
||||
// 关闭OSSClient。
|
||||
ossClient.shutdown();
|
||||
//上传之后文件路径
|
||||
String url = "https://" + bucketName + "." + endPoint + "/" + fileName;
|
||||
//返回
|
||||
return url;
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
@@ -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.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* spu属性值 服务实现类
|
||||
@@ -17,4 +20,14 @@ import org.springframework.stereotype.Service;
|
||||
@Service
|
||||
public class SkuAttrValueServiceImpl extends ServiceImpl<SkuAttrValueMapper, SkuAttrValue> implements SkuAttrValueService {
|
||||
|
||||
/**
|
||||
* 根据id查询商品属性信息列表
|
||||
*
|
||||
* @param skuId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<SkuAttrValue> findBySkuId(Long skuId) {
|
||||
return baseMapper.selectList(new LambdaQueryWrapper<SkuAttrValue>().eq(SkuAttrValue::getSkuId, skuId));
|
||||
}
|
||||
}
|
||||
|
@@ -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.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 商品图片 服务实现类
|
||||
@@ -17,4 +20,14 @@ import org.springframework.stereotype.Service;
|
||||
@Service
|
||||
public class SkuImageServiceImpl extends ServiceImpl<SkuImageMapper, SkuImage> implements SkuImageService {
|
||||
|
||||
/**
|
||||
* 根据id查询商品图片列表
|
||||
*
|
||||
* @param skuId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<SkuImage> findBySkuId(Long skuId) {
|
||||
return baseMapper.selectList(new LambdaQueryWrapper<SkuImage>().eq(SkuImage::getSkuId, skuId));
|
||||
}
|
||||
}
|
||||
|
@@ -1,10 +1,28 @@
|
||||
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.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -17,4 +35,215 @@ import org.springframework.stereotype.Service;
|
||||
@Service
|
||||
public class SkuInfoServiceImpl extends ServiceImpl<SkuInfoMapper, SkuInfo> implements SkuInfoService {
|
||||
|
||||
@Autowired
|
||||
private SkuPosterService skuPosterService;
|
||||
@Autowired
|
||||
private SkuImageService skuImagesService;
|
||||
@Autowired
|
||||
private SkuAttrValueService skuAttrValueService;
|
||||
|
||||
/**
|
||||
* 获取sku分页列表
|
||||
*
|
||||
* @param pageParam
|
||||
* @param skuInfoQueryVo
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public IPage<SkuInfo> selectPage(Page<SkuInfo> pageParam, SkuInfoQueryVo skuInfoQueryVo) {
|
||||
//获取条件值
|
||||
String keyword = skuInfoQueryVo.getKeyword();
|
||||
String skuType = skuInfoQueryVo.getSkuType();
|
||||
Long categoryId = skuInfoQueryVo.getCategoryId();
|
||||
//封装条件
|
||||
LambdaQueryWrapper<SkuInfo> wrapper = new LambdaQueryWrapper<>();
|
||||
if (!StringUtils.isEmpty(keyword)) {
|
||||
wrapper.like(SkuInfo::getSkuName, keyword);
|
||||
}
|
||||
if (!StringUtils.isEmpty(skuType)) {
|
||||
wrapper.eq(SkuInfo::getSkuType, skuType);
|
||||
}
|
||||
if (!StringUtils.isEmpty(categoryId)) {
|
||||
wrapper.eq(SkuInfo::getCategoryId, categoryId);
|
||||
}
|
||||
//调用方法查询
|
||||
return baseMapper.selectPage(pageParam, wrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增商品sku信息
|
||||
*
|
||||
* @param skuInfoVo
|
||||
*/
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
@Override
|
||||
public void saveSkuInfo(SkuInfoVo skuInfoVo) {
|
||||
//保存sku信息
|
||||
SkuInfo skuInfo = new SkuInfo();
|
||||
BeanUtils.copyProperties(skuInfoVo, skuInfo);
|
||||
baseMapper.insert(skuInfo);
|
||||
|
||||
//保存sku海报
|
||||
List<SkuPoster> skuPosterList = skuInfoVo.getSkuPosterList();
|
||||
if (!CollectionUtils.isEmpty(skuPosterList)) {
|
||||
for (SkuPoster skuPoster : skuPosterList) {
|
||||
skuPoster.setSkuId(skuInfo.getId());
|
||||
}
|
||||
skuPosterService.saveBatch(skuPosterList);
|
||||
}
|
||||
|
||||
//保存sku图片
|
||||
List<SkuImage> skuImagesList = skuInfoVo.getSkuImagesList();
|
||||
if (!CollectionUtils.isEmpty(skuImagesList)) {
|
||||
int sort = 1;
|
||||
for (SkuImage skuImages : skuImagesList) {
|
||||
skuImages.setSkuId(skuInfo.getId());
|
||||
skuImages.setSort(sort);
|
||||
sort++;
|
||||
}
|
||||
skuImagesService.saveBatch(skuImagesList);
|
||||
}
|
||||
|
||||
//保存sku平台属性
|
||||
List<SkuAttrValue> skuAttrValueList = skuInfoVo.getSkuAttrValueList();
|
||||
if (!CollectionUtils.isEmpty(skuAttrValueList)) {
|
||||
int sort = 1;
|
||||
for (SkuAttrValue skuAttrValue : skuAttrValueList) {
|
||||
skuAttrValue.setSkuId(skuInfo.getId());
|
||||
skuAttrValue.setSort(sort);
|
||||
sort++;
|
||||
}
|
||||
skuAttrValueService.saveBatch(skuAttrValueList);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 商品sku信息
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public SkuInfoVo getSkuInfoVo(Long id) {
|
||||
return getSkuInfoDB(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改商品sku信息
|
||||
*
|
||||
* @param skuInfoVo
|
||||
*/
|
||||
@Override
|
||||
public void updateSkuInfo(SkuInfoVo skuInfoVo) {
|
||||
Long id = skuInfoVo.getId();
|
||||
//更新sku信息
|
||||
baseMapper.updateById(skuInfoVo);
|
||||
|
||||
//保存sku详情
|
||||
skuPosterService.remove(new LambdaQueryWrapper<SkuPoster>().eq(SkuPoster::getSkuId, id));
|
||||
//保存sku海报
|
||||
List<SkuPoster> skuPosterList = skuInfoVo.getSkuPosterList();
|
||||
if (!CollectionUtils.isEmpty(skuPosterList)) {
|
||||
for (SkuPoster skuPoster : skuPosterList) {
|
||||
skuPoster.setSkuId(id);
|
||||
}
|
||||
skuPosterService.saveBatch(skuPosterList);
|
||||
}
|
||||
|
||||
//删除sku图片
|
||||
skuImagesService.remove(new LambdaQueryWrapper<SkuImage>().eq(SkuImage::getSkuId, id));
|
||||
//保存sku图片
|
||||
List<SkuImage> skuImagesList = skuInfoVo.getSkuImagesList();
|
||||
if (!CollectionUtils.isEmpty(skuImagesList)) {
|
||||
int sort = 1;
|
||||
for (SkuImage skuImages : skuImagesList) {
|
||||
skuImages.setSkuId(id);
|
||||
skuImages.setSort(sort);
|
||||
sort++;
|
||||
}
|
||||
skuImagesService.saveBatch(skuImagesList);
|
||||
}
|
||||
|
||||
//删除sku平台属性
|
||||
skuAttrValueService.remove(new LambdaQueryWrapper<SkuAttrValue>().eq(SkuAttrValue::getSkuId, id));
|
||||
//保存sku平台属性
|
||||
List<SkuAttrValue> skuAttrValueList = skuInfoVo.getSkuAttrValueList();
|
||||
if (!CollectionUtils.isEmpty(skuAttrValueList)) {
|
||||
int sort = 1;
|
||||
for (SkuAttrValue skuAttrValue : skuAttrValueList) {
|
||||
skuAttrValue.setSkuId(id);
|
||||
skuAttrValue.setSort(sort);
|
||||
sort++;
|
||||
}
|
||||
skuAttrValueService.saveBatch(skuAttrValueList);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 商品审核
|
||||
*
|
||||
* @param skuId
|
||||
* @param status
|
||||
*/
|
||||
@Override
|
||||
public void check(Long skuId, Integer status) {
|
||||
SkuInfo skuInfo = baseMapper.selectById(skuId);
|
||||
skuInfo.setCheckStatus(status);
|
||||
baseMapper.updateById(skuInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 商品上/下架
|
||||
*
|
||||
* @param skuId
|
||||
* @param status
|
||||
*/
|
||||
@Override
|
||||
public void publish(Long skuId, Integer status) {
|
||||
// 更改发布状态
|
||||
if (status == 1) {
|
||||
SkuInfo skuInfo = baseMapper.selectById(skuId);
|
||||
skuInfo.setPublishStatus(status);
|
||||
baseMapper.updateById(skuInfo);
|
||||
//TODO 商品上架 后续会完善:发送mq消息更新es数据
|
||||
} else {
|
||||
SkuInfo skuInfo = baseMapper.selectById(skuId);
|
||||
skuInfo.setPublishStatus(status);
|
||||
baseMapper.updateById(skuInfo);
|
||||
//TODO 商品下架 后续会完善:发送mq消息更新es数据
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 新人专享
|
||||
*
|
||||
* @param skuId
|
||||
* @param status
|
||||
*/
|
||||
@Override
|
||||
public void isNewPerson(Long skuId, Integer status) {
|
||||
SkuInfo skuInfo = baseMapper.selectById(skuId);
|
||||
skuInfo.setIsNewPerson(status);
|
||||
baseMapper.updateById(skuInfo);
|
||||
}
|
||||
|
||||
private SkuInfoVo getSkuInfoDB(Long skuId) {
|
||||
SkuInfoVo skuInfoVo = new SkuInfoVo();
|
||||
|
||||
SkuInfo skuInfo = baseMapper.selectById(skuId);
|
||||
//根据id查询商品图片列表
|
||||
List<SkuImage> skuImageList = skuImagesService.findBySkuId(skuId);
|
||||
//根据id查询商品海报列表
|
||||
List<SkuPoster> skuPosterList = skuPosterService.findBySkuId(skuId);
|
||||
//根据id查询商品属性信息列表
|
||||
List<SkuAttrValue> skuAttrValueList = skuAttrValueService.findBySkuId(skuId);
|
||||
|
||||
//封装数据
|
||||
BeanUtils.copyProperties(skuInfo, skuInfoVo);
|
||||
skuInfoVo.setSkuImagesList(skuImageList);
|
||||
skuInfoVo.setSkuPosterList(skuPosterList);
|
||||
skuInfoVo.setSkuAttrValueList(skuAttrValueList);
|
||||
return skuInfoVo;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -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.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 商品海报表 服务实现类
|
||||
@@ -17,4 +20,14 @@ import org.springframework.stereotype.Service;
|
||||
@Service
|
||||
public class SkuPosterServiceImpl extends ServiceImpl<SkuPosterMapper, SkuPoster> implements SkuPosterService {
|
||||
|
||||
/**
|
||||
* 根据id查询商品海报列表
|
||||
*
|
||||
* @param skuId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<SkuPoster> findBySkuId(Long skuId) {
|
||||
return baseMapper.selectList(new LambdaQueryWrapper<SkuPoster>().eq(SkuPoster::getSkuId, skuId));
|
||||
}
|
||||
}
|
||||
|
@@ -17,3 +17,9 @@ spring:
|
||||
date-format: yyyy-MM-dd HH:mm:ss
|
||||
time-zone: GMT+8
|
||||
|
||||
aliyun:
|
||||
endpoint: oss-cn-beijing.aliyuncs.com
|
||||
keyid: LTAI5tHWGPq6o62dMMV1hn1i
|
||||
keysecret: FyUK59nlI0bf1MFHLuEvtBwXl2CJjA
|
||||
bucketname: ssyx-yovinchen
|
||||
|
||||
|
@@ -3,3 +3,9 @@ spring:
|
||||
name: service-product
|
||||
profiles:
|
||||
active: dev
|
||||
cloud:
|
||||
nacos:
|
||||
discovery:
|
||||
server-addr: localhost:8848
|
||||
username: nacos
|
||||
password: nacos
|
||||
|
Reference in New Issue
Block a user