- 前端 + 后端:商品推荐列表,增加商品名。
This commit is contained in:
parent
9a3b708738
commit
ab5d051f75
@ -79,7 +79,7 @@ function List ({ dataSource, loading, pagination, searchParams, dispatch,
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '商品',
|
title: '商品',
|
||||||
dataIndex: 'productSpuId',
|
dataIndex: 'productSpuName',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '排序值',
|
title: '排序值',
|
||||||
@ -103,7 +103,7 @@ function List ({ dataSource, loading, pagination, searchParams, dispatch,
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '操作',
|
title: '操作',
|
||||||
width: 360,
|
width: 200,
|
||||||
render: (text, record) => {
|
render: (text, record) => {
|
||||||
const statusText = record.status === 1 ? '禁用' : '开启'; // TODO 芋艿,此处要改
|
const statusText = record.status === 1 ? '禁用' : '开启'; // TODO 芋艿,此处要改
|
||||||
return (
|
return (
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
- [ ] 会员资料【待认领】
|
- [ ] 会员资料【待认领】
|
||||||
- TODO 需要补充
|
- TODO 需要补充
|
||||||
- [ ] 营销管理
|
- [ ] 营销管理
|
||||||
- [ ] 广告管理
|
- [x] 首页广告
|
||||||
- [ ] 优惠劵
|
- [ ] 优惠劵
|
||||||
- [ ] 优惠码【待认领】
|
- [ ] 优惠码【待认领】
|
||||||
- [ ] 商品推荐
|
- [ ] 商品推荐
|
||||||
|
18
pom.xml
18
pom.xml
@ -6,7 +6,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-parent</artifactId>
|
<artifactId>spring-boot-starter-parent</artifactId>
|
||||||
<version>2.1.4.RELEASE</version>
|
<version>2.1.3.RELEASE</version>
|
||||||
<relativePath/> <!-- lookup parent from repository -->
|
<relativePath/> <!-- lookup parent from repository -->
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
@ -27,14 +27,15 @@
|
|||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<springboot.version>2.1.4.RELEASE</springboot.version>
|
<springboot.version>2.1.3.RELEASE</springboot.version>
|
||||||
<!-- <com.alibab.dubbo.version>2.6.5</com.alibab.dubbo.version>-->
|
<!-- <com.alibab.dubbo.version>2.6.5</com.alibab.dubbo.version>-->
|
||||||
<dubbo.version>2.7.1</dubbo.version>
|
<dubbo.version>2.7.1</dubbo.version>
|
||||||
<mysql-connector-java.version>5.1.47</mysql-connector-java.version>
|
<mysql-connector-java.version>5.1.47</mysql-connector-java.version>
|
||||||
<!-- <dubbo-spring-boot-starter.version>0.2.1.RELEASE</dubbo-spring-boot-starter.version>-->
|
<!-- <dubbo-spring-boot-starter.version>0.2.1.RELEASE</dubbo-spring-boot-starter.version>-->
|
||||||
<org.mapstruct.version>1.3.0.Final</org.mapstruct.version>
|
<org.mapstruct.version>1.3.0.Final</org.mapstruct.version>
|
||||||
<!-- <curator.version>2.12.0</curator.version>-->
|
|
||||||
<curator.version>2.13.0</curator.version>
|
<curator.version>2.13.0</curator.version>
|
||||||
|
<!-- <curator.version>4.0.1</curator.version>-->
|
||||||
|
<!-- <zookeeper.version>3.4.14</zookeeper.version>-->
|
||||||
<springfox-swagger.version>2.9.2</springfox-swagger.version>
|
<springfox-swagger.version>2.9.2</springfox-swagger.version>
|
||||||
<mybatis-spring-boot-starter.version>2.0.0</mybatis-spring-boot-starter.version>
|
<mybatis-spring-boot-starter.version>2.0.0</mybatis-spring-boot-starter.version>
|
||||||
<xxl-job.version>2.0.1</xxl-job.version>
|
<xxl-job.version>2.0.1</xxl-job.version>
|
||||||
@ -100,12 +101,23 @@
|
|||||||
<groupId>org.apache.curator</groupId>
|
<groupId>org.apache.curator</groupId>
|
||||||
<artifactId>curator-framework</artifactId>
|
<artifactId>curator-framework</artifactId>
|
||||||
<version>${curator.version}</version>
|
<version>${curator.version}</version>
|
||||||
|
<!-- <exclusions>-->
|
||||||
|
<!-- <exclusion>-->
|
||||||
|
<!-- <groupId>org.apache.zookeeper</groupId>-->
|
||||||
|
<!-- <artifactId>zookeeper</artifactId>-->
|
||||||
|
<!-- </exclusion>-->
|
||||||
|
<!-- </exclusions>-->
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.curator</groupId>
|
<groupId>org.apache.curator</groupId>
|
||||||
<artifactId>curator-recipes</artifactId>
|
<artifactId>curator-recipes</artifactId>
|
||||||
<version>${curator.version}</version>
|
<version>${curator.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<!-- <dependency>-->
|
||||||
|
<!-- <groupId>org.apache.zookeeper</groupId>-->
|
||||||
|
<!-- <artifactId>zookeeper</artifactId>-->
|
||||||
|
<!-- <version>${zookeeper.version}</version>-->
|
||||||
|
<!-- </dependency>-->
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>io.springfox</groupId>
|
<groupId>io.springfox</groupId>
|
||||||
|
@ -31,7 +31,7 @@ import java.util.*;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Service // 实际上不用添加。添加的原因是,必须 Spring 报错提示
|
@Service // 实际上不用添加。添加的原因是,必须 Spring 报错提示
|
||||||
@org.apache.dubbo.config.annotation.Service(validation = "true")
|
@org.apache.dubbo.config.annotation.Service(validation = "true", version = "1.0.0")
|
||||||
public class ProductSpuServiceImpl implements ProductSpuService {
|
public class ProductSpuServiceImpl implements ProductSpuService {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
@ -39,7 +39,6 @@
|
|||||||
<artifactId>user-sdk</artifactId>
|
<artifactId>user-sdk</artifactId>
|
||||||
<version>1.0-SNAPSHOT</version>
|
<version>1.0-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.iocoder.mall</groupId>
|
<groupId>cn.iocoder.mall</groupId>
|
||||||
<artifactId>system-sdk</artifactId>
|
<artifactId>system-sdk</artifactId>
|
||||||
@ -56,20 +55,6 @@
|
|||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.dubbo</groupId>
|
|
||||||
<artifactId>dubbo</artifactId>
|
|
||||||
</dependency>
|
|
||||||
<!--<dependency>-->
|
|
||||||
<!--<groupId>com.alibaba.boot</groupId>-->
|
|
||||||
<!--<artifactId>dubbo-spring-boot-starter</artifactId>-->
|
|
||||||
<!--</dependency>-->
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.curator</groupId>
|
|
||||||
<artifactId>curator-framework</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>io.springfox</groupId>
|
<groupId>io.springfox</groupId>
|
||||||
<artifactId>springfox-swagger2</artifactId>
|
<artifactId>springfox-swagger2</artifactId>
|
||||||
@ -78,6 +63,12 @@
|
|||||||
<groupId>io.springfox</groupId>
|
<groupId>io.springfox</groupId>
|
||||||
<artifactId>springfox-swagger-ui</artifactId>
|
<artifactId>springfox-swagger-ui</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.iocoder.mall</groupId>
|
||||||
|
<artifactId>product-service-api</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
@ -2,7 +2,10 @@ package cn.iocoder.mall.promotion.application.controller.admins;
|
|||||||
|
|
||||||
import cn.iocoder.common.framework.vo.CommonResult;
|
import cn.iocoder.common.framework.vo.CommonResult;
|
||||||
import cn.iocoder.mall.admin.sdk.context.AdminSecurityContextHolder;
|
import cn.iocoder.mall.admin.sdk.context.AdminSecurityContextHolder;
|
||||||
|
import cn.iocoder.mall.product.api.ProductSpuService;
|
||||||
|
import cn.iocoder.mall.product.api.bo.ProductSpuBO;
|
||||||
import cn.iocoder.mall.promotion.api.ProductRecommendService;
|
import cn.iocoder.mall.promotion.api.ProductRecommendService;
|
||||||
|
import cn.iocoder.mall.promotion.api.bo.ProductRecommendBO;
|
||||||
import cn.iocoder.mall.promotion.api.bo.ProductRecommendPageBO;
|
import cn.iocoder.mall.promotion.api.bo.ProductRecommendPageBO;
|
||||||
import cn.iocoder.mall.promotion.api.dto.ProductRecommendAddDTO;
|
import cn.iocoder.mall.promotion.api.dto.ProductRecommendAddDTO;
|
||||||
import cn.iocoder.mall.promotion.api.dto.ProductRecommendPageDTO;
|
import cn.iocoder.mall.promotion.api.dto.ProductRecommendPageDTO;
|
||||||
@ -10,14 +13,20 @@ import cn.iocoder.mall.promotion.api.dto.ProductRecommendUpdateDTO;
|
|||||||
import cn.iocoder.mall.promotion.application.convert.ProductRecommendConvert;
|
import cn.iocoder.mall.promotion.application.convert.ProductRecommendConvert;
|
||||||
import cn.iocoder.mall.promotion.application.vo.admins.AdminsProductRecommendPageVO;
|
import cn.iocoder.mall.promotion.application.vo.admins.AdminsProductRecommendPageVO;
|
||||||
import cn.iocoder.mall.promotion.application.vo.admins.AdminsProductRecommendVO;
|
import cn.iocoder.mall.promotion.application.vo.admins.AdminsProductRecommendVO;
|
||||||
import org.apache.dubbo.config.annotation.Reference;
|
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiImplicitParams;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.apache.dubbo.config.annotation.Reference;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import static cn.iocoder.common.framework.vo.CommonResult.success;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("admins/product_recommend")
|
@RequestMapping("admins/product_recommend")
|
||||||
@Api("商品推荐模块")
|
@Api("商品推荐模块")
|
||||||
@ -26,6 +35,8 @@ public class AdminsProductRecommendController {
|
|||||||
@Reference(validation = "true")
|
@Reference(validation = "true")
|
||||||
@Autowired
|
@Autowired
|
||||||
private ProductRecommendService productRecommendService;
|
private ProductRecommendService productRecommendService;
|
||||||
|
@Reference(validation = "true", version = "*", lazy = true)
|
||||||
|
private ProductSpuService productSpuService;
|
||||||
|
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
@ApiOperation(value = "商品推荐分页")
|
@ApiOperation(value = "商品推荐分页")
|
||||||
@ -37,8 +48,15 @@ public class AdminsProductRecommendController {
|
|||||||
public CommonResult<AdminsProductRecommendPageVO> page(@RequestParam(value = "type", required = false) Integer type,
|
public CommonResult<AdminsProductRecommendPageVO> page(@RequestParam(value = "type", required = false) Integer type,
|
||||||
@RequestParam(value = "pageNo", defaultValue = "0") Integer pageNo,
|
@RequestParam(value = "pageNo", defaultValue = "0") Integer pageNo,
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
|
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
|
||||||
CommonResult<ProductRecommendPageBO> result = productRecommendService.getProductRecommendPage(new ProductRecommendPageDTO().setType(type).setPageNo(pageNo).setPageSize(pageSize));
|
ProductRecommendPageBO result = productRecommendService.getProductRecommendPage(new ProductRecommendPageDTO().setType(type).setPageNo(pageNo).setPageSize(pageSize));
|
||||||
return ProductRecommendConvert.INSTANCE.convert(result);
|
// 获得商品集合
|
||||||
|
List<ProductSpuBO> spus = productSpuService.getProductSpuList(
|
||||||
|
result.getList().stream().map(ProductRecommendBO::getProductSpuId).collect(Collectors.toSet()));
|
||||||
|
Map<Integer, ProductSpuBO> spuMap = spus.stream().collect(Collectors.toMap(ProductSpuBO::getId, account -> account));
|
||||||
|
// 拼装结果
|
||||||
|
AdminsProductRecommendPageVO response = ProductRecommendConvert.INSTANCE.convert(result);
|
||||||
|
response.getList().forEach(recommendVO -> recommendVO.setProductSpuName(spuMap.get(recommendVO.getProductSpuId()).getName()));
|
||||||
|
return CommonResult.success(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/add")
|
@PostMapping("/add")
|
||||||
@ -55,7 +73,7 @@ public class AdminsProductRecommendController {
|
|||||||
@RequestParam(value = "memo", required = false) String memo) {
|
@RequestParam(value = "memo", required = false) String memo) {
|
||||||
ProductRecommendAddDTO bannerAddDTO = new ProductRecommendAddDTO().setType(type).setProductSpuId(productSpuId)
|
ProductRecommendAddDTO bannerAddDTO = new ProductRecommendAddDTO().setType(type).setProductSpuId(productSpuId)
|
||||||
.setSort(sort).setMemo(memo);
|
.setSort(sort).setMemo(memo);
|
||||||
return ProductRecommendConvert.INSTANCE.convert2(productRecommendService.addProductRecommend(AdminSecurityContextHolder.getContext().getAdminId(), bannerAddDTO));
|
return success(ProductRecommendConvert.INSTANCE.convert(productRecommendService.addProductRecommend(AdminSecurityContextHolder.getContext().getAdminId(), bannerAddDTO)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/update")
|
@PostMapping("/update")
|
||||||
@ -74,7 +92,7 @@ public class AdminsProductRecommendController {
|
|||||||
@RequestParam(value = "memo", required = false) String memo) {
|
@RequestParam(value = "memo", required = false) String memo) {
|
||||||
ProductRecommendUpdateDTO bannerUpdateDTO = new ProductRecommendUpdateDTO().setId(id).setType(type).setProductSpuId(productSpuId)
|
ProductRecommendUpdateDTO bannerUpdateDTO = new ProductRecommendUpdateDTO().setId(id).setType(type).setProductSpuId(productSpuId)
|
||||||
.setSort(sort).setMemo(memo);
|
.setSort(sort).setMemo(memo);
|
||||||
return productRecommendService.updateProductRecommend(AdminSecurityContextHolder.getContext().getAdminId(), bannerUpdateDTO);
|
return success(productRecommendService.updateProductRecommend(AdminSecurityContextHolder.getContext().getAdminId(), bannerUpdateDTO));
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/update_status")
|
@PostMapping("/update_status")
|
||||||
@ -85,14 +103,14 @@ public class AdminsProductRecommendController {
|
|||||||
})
|
})
|
||||||
public CommonResult<Boolean> updateStatus(@RequestParam("id") Integer id,
|
public CommonResult<Boolean> updateStatus(@RequestParam("id") Integer id,
|
||||||
@RequestParam("status") Integer status) {
|
@RequestParam("status") Integer status) {
|
||||||
return productRecommendService.updateProductRecommendStatus(AdminSecurityContextHolder.getContext().getAdminId(), id, status);
|
return success(productRecommendService.updateProductRecommendStatus(AdminSecurityContextHolder.getContext().getAdminId(), id, status));
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/delete")
|
@PostMapping("/delete")
|
||||||
@ApiOperation(value = "删除商品推荐")
|
@ApiOperation(value = "删除商品推荐")
|
||||||
@ApiImplicitParam(name = "id", value = "商品推荐编号", required = true, example = "1")
|
@ApiImplicitParam(name = "id", value = "商品推荐编号", required = true, example = "1")
|
||||||
public CommonResult<Boolean> delete(@RequestParam("id") Integer id) {
|
public CommonResult<Boolean> delete(@RequestParam("id") Integer id) {
|
||||||
return productRecommendService.deleteProductRecommend(AdminSecurityContextHolder.getContext().getAdminId(), id);
|
return success(productRecommendService.deleteProductRecommend(AdminSecurityContextHolder.getContext().getAdminId(), id));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@ import cn.iocoder.mall.user.sdk.annotation.PermitAll;
|
|||||||
import org.apache.dubbo.config.annotation.Reference;
|
import org.apache.dubbo.config.annotation.Reference;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
@ -23,6 +24,7 @@ import java.util.List;
|
|||||||
public class UsersBannerController {
|
public class UsersBannerController {
|
||||||
|
|
||||||
@Reference(validation = "true")
|
@Reference(validation = "true")
|
||||||
|
@Autowired
|
||||||
private BannerService bannerService;
|
private BannerService bannerService;
|
||||||
|
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
|
@ -18,6 +18,7 @@ import io.swagger.annotations.Api;
|
|||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiImplicitParams;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@ -26,6 +27,7 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
public class UsersCouponController {
|
public class UsersCouponController {
|
||||||
|
|
||||||
@Reference(validation = "true")
|
@Reference(validation = "true")
|
||||||
|
@Autowired
|
||||||
private CouponService couponService;
|
private CouponService couponService;
|
||||||
|
|
||||||
// ========== 优惠劵(码)模板 ==========
|
// ========== 优惠劵(码)模板 ==========
|
||||||
|
@ -14,6 +14,7 @@ import com.google.common.collect.HashMultimap;
|
|||||||
import com.google.common.collect.Multimap;
|
import com.google.common.collect.Multimap;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
@ -30,8 +31,10 @@ import java.util.stream.Collectors;
|
|||||||
public class UsersProductRecommendController {
|
public class UsersProductRecommendController {
|
||||||
|
|
||||||
@Reference(validation = "true")
|
@Reference(validation = "true")
|
||||||
|
@Autowired
|
||||||
private ProductRecommendService productRecommendService;
|
private ProductRecommendService productRecommendService;
|
||||||
@Reference(validation = "true")
|
|
||||||
|
@Reference(validation = "true", version = "1.0.0")
|
||||||
private ProductSpuService productSpuService;
|
private ProductSpuService productSpuService;
|
||||||
|
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
@ -40,7 +43,7 @@ public class UsersProductRecommendController {
|
|||||||
public CommonResult<Map<Integer, Collection<UsersProductRecommendVO>>> list() {
|
public CommonResult<Map<Integer, Collection<UsersProductRecommendVO>>> list() {
|
||||||
// 查询商品推荐列表
|
// 查询商品推荐列表
|
||||||
List<ProductRecommendBO> productRecommends = productRecommendService.getProductRecommendList(
|
List<ProductRecommendBO> productRecommends = productRecommendService.getProductRecommendList(
|
||||||
null, CommonStatusEnum.ENABLE.getValue()).getData();
|
null, CommonStatusEnum.ENABLE.getValue());
|
||||||
// 获得商品集合
|
// 获得商品集合
|
||||||
List<ProductSpuBO> spus = productSpuService.getProductSpuList(
|
List<ProductSpuBO> spus = productSpuService.getProductSpuList(
|
||||||
productRecommends.stream().map(ProductRecommendBO::getProductSpuId).collect(Collectors.toSet()));
|
productRecommends.stream().map(ProductRecommendBO::getProductSpuId).collect(Collectors.toSet()));
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package cn.iocoder.mall.promotion.application.convert;
|
package cn.iocoder.mall.promotion.application.convert;
|
||||||
|
|
||||||
import cn.iocoder.common.framework.vo.CommonResult;
|
|
||||||
import cn.iocoder.mall.product.api.bo.ProductSpuBO;
|
import cn.iocoder.mall.product.api.bo.ProductSpuBO;
|
||||||
import cn.iocoder.mall.promotion.api.bo.ProductRecommendBO;
|
import cn.iocoder.mall.promotion.api.bo.ProductRecommendBO;
|
||||||
import cn.iocoder.mall.promotion.api.bo.ProductRecommendPageBO;
|
import cn.iocoder.mall.promotion.api.bo.ProductRecommendPageBO;
|
||||||
@ -20,10 +19,7 @@ public interface ProductRecommendConvert {
|
|||||||
AdminsProductRecommendVO convert(ProductRecommendBO bannerBO);
|
AdminsProductRecommendVO convert(ProductRecommendBO bannerBO);
|
||||||
|
|
||||||
@Mappings({})
|
@Mappings({})
|
||||||
CommonResult<AdminsProductRecommendVO> convert2(CommonResult<ProductRecommendBO> result);
|
AdminsProductRecommendPageVO convert(ProductRecommendPageBO result);
|
||||||
|
|
||||||
@Mappings({})
|
|
||||||
CommonResult<AdminsProductRecommendPageVO> convert(CommonResult<ProductRecommendPageBO> result);
|
|
||||||
|
|
||||||
@Mappings({})
|
@Mappings({})
|
||||||
UsersProductRecommendVO convert(ProductSpuBO productSpu);
|
UsersProductRecommendVO convert(ProductSpuBO productSpu);
|
||||||
@ -31,4 +27,4 @@ public interface ProductRecommendConvert {
|
|||||||
// @Mappings({})
|
// @Mappings({})
|
||||||
// List<UsersProductRecommendVO> convertList(List<ProductRecommendBO> banners);
|
// List<UsersProductRecommendVO> convertList(List<ProductRecommendBO> banners);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -27,4 +27,8 @@ public class AdminsProductRecommendVO {
|
|||||||
@ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式")
|
@ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式")
|
||||||
private Date createTime;
|
private Date createTime;
|
||||||
|
|
||||||
|
// ========== 基本信息 =========
|
||||||
|
@ApiModelProperty(value = "SPU 名字", required = true, example = "厮大牛逼")
|
||||||
|
private String productSpuName;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package cn.iocoder.mall.promotion.api;
|
package cn.iocoder.mall.promotion.api;
|
||||||
|
|
||||||
import cn.iocoder.common.framework.vo.CommonResult;
|
import cn.iocoder.common.framework.constant.CommonStatusEnum;
|
||||||
|
import cn.iocoder.common.framework.validator.InEnum;
|
||||||
import cn.iocoder.mall.promotion.api.bo.ProductRecommendBO;
|
import cn.iocoder.mall.promotion.api.bo.ProductRecommendBO;
|
||||||
import cn.iocoder.mall.promotion.api.bo.ProductRecommendPageBO;
|
import cn.iocoder.mall.promotion.api.bo.ProductRecommendPageBO;
|
||||||
import cn.iocoder.mall.promotion.api.dto.ProductRecommendAddDTO;
|
import cn.iocoder.mall.promotion.api.dto.ProductRecommendAddDTO;
|
||||||
@ -11,16 +12,17 @@ import java.util.List;
|
|||||||
|
|
||||||
public interface ProductRecommendService {
|
public interface ProductRecommendService {
|
||||||
|
|
||||||
CommonResult<List<ProductRecommendBO>> getProductRecommendList(Integer type, Integer status);
|
List<ProductRecommendBO> getProductRecommendList(Integer type, Integer status);
|
||||||
|
|
||||||
CommonResult<ProductRecommendPageBO> getProductRecommendPage(ProductRecommendPageDTO productRecommendPageDTO);
|
ProductRecommendPageBO getProductRecommendPage(ProductRecommendPageDTO productRecommendPageDTO);
|
||||||
|
|
||||||
CommonResult<ProductRecommendBO> addProductRecommend(Integer adminId, ProductRecommendAddDTO productRecommendAddDTO);
|
ProductRecommendBO addProductRecommend(Integer adminId, ProductRecommendAddDTO productRecommendAddDTO);
|
||||||
|
|
||||||
CommonResult<Boolean> updateProductRecommend(Integer adminId, ProductRecommendUpdateDTO productRecommendUpdateDTO);
|
Boolean updateProductRecommend(Integer adminId, ProductRecommendUpdateDTO productRecommendUpdateDTO);
|
||||||
|
|
||||||
CommonResult<Boolean> updateProductRecommendStatus(Integer adminId, Integer productRecommendId, Integer status);
|
Boolean updateProductRecommendStatus(Integer adminId, Integer productRecommendId,
|
||||||
|
@InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}") Integer status);
|
||||||
|
|
||||||
CommonResult<Boolean> deleteProductRecommend(Integer adminId, Integer productRecommendId);
|
Boolean deleteProductRecommend(Integer adminId, Integer productRecommendId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,15 +1,20 @@
|
|||||||
package cn.iocoder.mall.promotion.api.constant;
|
package cn.iocoder.mall.promotion.api.constant;
|
||||||
|
|
||||||
|
import cn.iocoder.common.framework.core.IntArrayValuable;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 商品推荐类型
|
* 商品推荐类型
|
||||||
*/
|
*/
|
||||||
public enum ProductRecommendTypeEnum {
|
public enum ProductRecommendTypeEnum implements IntArrayValuable {
|
||||||
|
|
||||||
HOT(1, "热卖推荐"),
|
HOT(1, "热卖推荐"),
|
||||||
NEW(2, "新品推荐"),
|
NEW(2, "新品推荐"),
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
|
public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(ProductRecommendTypeEnum::getValue).toArray();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 状态值
|
* 状态值
|
||||||
*/
|
*/
|
||||||
@ -40,4 +45,9 @@ public enum ProductRecommendTypeEnum {
|
|||||||
|| NEW.value.equals(status);
|
|| NEW.value.equals(status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] array() {
|
||||||
|
return ARRAYS;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package cn.iocoder.mall.promotion.api.dto;
|
package cn.iocoder.mall.promotion.api.dto;
|
||||||
|
|
||||||
|
import cn.iocoder.common.framework.validator.InEnum;
|
||||||
|
import cn.iocoder.mall.promotion.api.constant.ProductRecommendTypeEnum;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
import org.hibernate.validator.constraints.Length;
|
import org.hibernate.validator.constraints.Length;
|
||||||
@ -13,6 +15,7 @@ import javax.validation.constraints.NotNull;
|
|||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
public class ProductRecommendAddDTO {
|
public class ProductRecommendAddDTO {
|
||||||
|
|
||||||
|
@InEnum(value = ProductRecommendTypeEnum.class, message = "修改推荐类型必须是 {value}")
|
||||||
@NotNull(message = "推荐类型不能为空")
|
@NotNull(message = "推荐类型不能为空")
|
||||||
private Integer type;
|
private Integer type;
|
||||||
@NotNull(message = "商品编号不能为空")
|
@NotNull(message = "商品编号不能为空")
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package cn.iocoder.mall.promotion.api.dto;
|
package cn.iocoder.mall.promotion.api.dto;
|
||||||
|
|
||||||
|
import cn.iocoder.common.framework.validator.InEnum;
|
||||||
|
import cn.iocoder.mall.promotion.api.constant.ProductRecommendTypeEnum;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
import org.hibernate.validator.constraints.Length;
|
import org.hibernate.validator.constraints.Length;
|
||||||
@ -16,6 +18,7 @@ public class ProductRecommendUpdateDTO {
|
|||||||
@NotNull(message = "编号不能为空")
|
@NotNull(message = "编号不能为空")
|
||||||
private Integer id;
|
private Integer id;
|
||||||
@NotNull(message = "类型不能为空")
|
@NotNull(message = "类型不能为空")
|
||||||
|
@InEnum(value = ProductRecommendTypeEnum.class, message = "修改推荐类型必须是 {value}")
|
||||||
private Integer type;
|
private Integer type;
|
||||||
@NotNull(message = "商品编号不能为空")
|
@NotNull(message = "商品编号不能为空")
|
||||||
private Integer productSpuId;
|
private Integer productSpuId;
|
||||||
|
@ -32,6 +32,18 @@
|
|||||||
<groupId>org.apache.dubbo</groupId>
|
<groupId>org.apache.dubbo</groupId>
|
||||||
<artifactId>dubbo</artifactId>
|
<artifactId>dubbo</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.curator</groupId>
|
||||||
|
<artifactId>curator-framework</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.curator</groupId>
|
||||||
|
<artifactId>curator-recipes</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.dubbo</groupId>
|
||||||
|
<artifactId>dubbo-spring-boot-starter</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>mysql</groupId>
|
<groupId>mysql</groupId>
|
||||||
@ -40,6 +52,16 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-jdbc</artifactId>
|
<artifactId>spring-boot-starter-jdbc</artifactId>
|
||||||
|
<exclusions>
|
||||||
|
<exclusion>
|
||||||
|
<artifactId>logback-classic</artifactId>
|
||||||
|
<groupId>ch.qos.logback</groupId>
|
||||||
|
</exclusion>
|
||||||
|
<exclusion>
|
||||||
|
<artifactId>spring-boot-starter-logging</artifactId>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
</exclusion>
|
||||||
|
</exclusions>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -2,9 +2,7 @@ package cn.iocoder.mall.promotion.biz.service;
|
|||||||
|
|
||||||
import cn.iocoder.common.framework.constant.CommonStatusEnum;
|
import cn.iocoder.common.framework.constant.CommonStatusEnum;
|
||||||
import cn.iocoder.common.framework.constant.DeletedStatusEnum;
|
import cn.iocoder.common.framework.constant.DeletedStatusEnum;
|
||||||
import cn.iocoder.common.framework.constant.SysErrorCodeEnum;
|
|
||||||
import cn.iocoder.common.framework.util.ServiceExceptionUtil;
|
import cn.iocoder.common.framework.util.ServiceExceptionUtil;
|
||||||
import cn.iocoder.common.framework.vo.CommonResult;
|
|
||||||
import cn.iocoder.mall.product.api.ProductSpuService;
|
import cn.iocoder.mall.product.api.ProductSpuService;
|
||||||
import cn.iocoder.mall.promotion.api.ProductRecommendService;
|
import cn.iocoder.mall.promotion.api.ProductRecommendService;
|
||||||
import cn.iocoder.mall.promotion.api.bo.ProductRecommendBO;
|
import cn.iocoder.mall.promotion.api.bo.ProductRecommendBO;
|
||||||
@ -27,20 +25,20 @@ import java.util.List;
|
|||||||
@org.apache.dubbo.config.annotation.Service(validation = "true")
|
@org.apache.dubbo.config.annotation.Service(validation = "true")
|
||||||
public class ProductRecommendServiceImpl implements ProductRecommendService {
|
public class ProductRecommendServiceImpl implements ProductRecommendService {
|
||||||
|
|
||||||
@Reference(validation = "true")
|
@Reference(validation = "true", version = "1.0.0")
|
||||||
private ProductSpuService productSpuService;
|
private ProductSpuService productSpuService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ProductRecommendMapper productRecommendMapper;
|
private ProductRecommendMapper productRecommendMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CommonResult<List<ProductRecommendBO>> getProductRecommendList(Integer type, Integer status) {
|
public List<ProductRecommendBO> getProductRecommendList(Integer type, Integer status) {
|
||||||
List<ProductRecommendDO> productRecommends = productRecommendMapper.selectListByTypeAndStatus(type, status);
|
List<ProductRecommendDO> productRecommends = productRecommendMapper.selectListByTypeAndStatus(type, status);
|
||||||
return CommonResult.success(ProductRecommendConvert.INSTANCE.convertToBO(productRecommends));
|
return ProductRecommendConvert.INSTANCE.convertToBO(productRecommends);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CommonResult<ProductRecommendPageBO> getProductRecommendPage(ProductRecommendPageDTO productRecommendPageDTO) {
|
public ProductRecommendPageBO getProductRecommendPage(ProductRecommendPageDTO productRecommendPageDTO) {
|
||||||
ProductRecommendPageBO productRecommendPageBO = new ProductRecommendPageBO();
|
ProductRecommendPageBO productRecommendPageBO = new ProductRecommendPageBO();
|
||||||
// 查询分页数据
|
// 查询分页数据
|
||||||
int offset = (productRecommendPageDTO.getPageNo() - 1) * productRecommendPageDTO.getPageSize();
|
int offset = (productRecommendPageDTO.getPageNo() - 1) * productRecommendPageDTO.getPageSize();
|
||||||
@ -48,86 +46,74 @@ public class ProductRecommendServiceImpl implements ProductRecommendService {
|
|||||||
offset, productRecommendPageDTO.getPageSize())));
|
offset, productRecommendPageDTO.getPageSize())));
|
||||||
// 查询分页总数
|
// 查询分页总数
|
||||||
productRecommendPageBO.setTotal(productRecommendMapper.selectCountByType(productRecommendPageDTO.getType()));
|
productRecommendPageBO.setTotal(productRecommendMapper.selectCountByType(productRecommendPageDTO.getType()));
|
||||||
return CommonResult.success(productRecommendPageBO);
|
return productRecommendPageBO;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CommonResult<ProductRecommendBO> addProductRecommend(Integer adminId, ProductRecommendAddDTO productRecommendAddDTO) {
|
public ProductRecommendBO addProductRecommend(Integer adminId, ProductRecommendAddDTO productRecommendAddDTO) {
|
||||||
// 校验参数
|
|
||||||
if (!CommonStatusEnum.isValid(productRecommendAddDTO.getType())) {
|
|
||||||
return CommonResult.error(SysErrorCodeEnum.VALIDATION_REQUEST_PARAM_ERROR.getCode(), "推荐类型必须是新品(1)或热卖(2)"); // TODO 有点搓
|
|
||||||
}
|
|
||||||
// 校验商品不存在
|
// 校验商品不存在
|
||||||
if (productSpuService.getProductSpuDetail(productRecommendAddDTO.getProductSpuId()) == null) {
|
if (productSpuService.getProductSpuDetail(productRecommendAddDTO.getProductSpuId()) == null) {
|
||||||
return ServiceExceptionUtil.error(PromotionErrorCodeEnum.PRODUCT_RECOMMEND_PRODUCT_NOT_EXISTS.getCode());
|
throw ServiceExceptionUtil.exception(PromotionErrorCodeEnum.PRODUCT_RECOMMEND_PRODUCT_NOT_EXISTS.getCode());
|
||||||
}
|
}
|
||||||
// 校验商品是否已经推荐
|
// 校验商品是否已经推荐
|
||||||
if (productRecommendMapper.selectByProductSpuIdAndType(productRecommendAddDTO.getProductSpuId(), productRecommendAddDTO.getType()) != null) {
|
if (productRecommendMapper.selectByProductSpuIdAndType(productRecommendAddDTO.getProductSpuId(), productRecommendAddDTO.getType()) != null) {
|
||||||
return ServiceExceptionUtil.error(PromotionErrorCodeEnum.PRODUCT_RECOMMEND_EXISTS.getCode());
|
throw ServiceExceptionUtil.exception(PromotionErrorCodeEnum.PRODUCT_RECOMMEND_EXISTS.getCode());
|
||||||
}
|
}
|
||||||
// 保存到数据库
|
// 保存到数据库
|
||||||
ProductRecommendDO productRecommend = ProductRecommendConvert.INSTANCE.convert(productRecommendAddDTO).setStatus(CommonStatusEnum.ENABLE.getValue());
|
ProductRecommendDO productRecommend = ProductRecommendConvert.INSTANCE.convert(productRecommendAddDTO).setStatus(CommonStatusEnum.ENABLE.getValue());
|
||||||
productRecommend.setDeleted(DeletedStatusEnum.DELETED_NO.getValue()).setCreateTime(new Date());
|
productRecommend.setDeleted(DeletedStatusEnum.DELETED_NO.getValue()).setCreateTime(new Date());
|
||||||
productRecommendMapper.insert(productRecommend);
|
productRecommendMapper.insert(productRecommend);
|
||||||
// 返回成功
|
// 返回成功
|
||||||
return CommonResult.success(ProductRecommendConvert.INSTANCE.convertToBO(productRecommend));
|
return ProductRecommendConvert.INSTANCE.convertToBO(productRecommend);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CommonResult<Boolean> updateProductRecommend(Integer adminId, ProductRecommendUpdateDTO productRecommendUpdateDTO) {
|
public Boolean updateProductRecommend(Integer adminId, ProductRecommendUpdateDTO productRecommendUpdateDTO) {
|
||||||
// 校验参数
|
|
||||||
if (!CommonStatusEnum.isValid(productRecommendUpdateDTO.getType())) {
|
|
||||||
return CommonResult.error(SysErrorCodeEnum.VALIDATION_REQUEST_PARAM_ERROR.getCode(), "推荐类型必须是新品(1)或热卖(2)"); // TODO 有点搓
|
|
||||||
}
|
|
||||||
// 校验更新的商品推荐存在
|
// 校验更新的商品推荐存在
|
||||||
if (productRecommendMapper.selectById(productRecommendUpdateDTO.getId()) == null) {
|
if (productRecommendMapper.selectById(productRecommendUpdateDTO.getId()) == null) {
|
||||||
return ServiceExceptionUtil.error(PromotionErrorCodeEnum.PRODUCT_RECOMMEND_NOT_EXISTS.getCode());
|
throw ServiceExceptionUtil.exception(PromotionErrorCodeEnum.PRODUCT_RECOMMEND_NOT_EXISTS.getCode());
|
||||||
}
|
}
|
||||||
// 校验商品不存在
|
// 校验商品不存在
|
||||||
if (productSpuService.getProductSpuDetail(productRecommendUpdateDTO.getProductSpuId()) == null) {
|
if (productSpuService.getProductSpuDetail(productRecommendUpdateDTO.getProductSpuId()) == null) {
|
||||||
return ServiceExceptionUtil.error(PromotionErrorCodeEnum.PRODUCT_RECOMMEND_PRODUCT_NOT_EXISTS.getCode());
|
throw ServiceExceptionUtil.exception(PromotionErrorCodeEnum.PRODUCT_RECOMMEND_PRODUCT_NOT_EXISTS.getCode());
|
||||||
}
|
}
|
||||||
// 校验商品是否已经推荐
|
// 校验商品是否已经推荐
|
||||||
ProductRecommendDO existProductRecommend = productRecommendMapper.selectByProductSpuIdAndType(productRecommendUpdateDTO.getProductSpuId(), productRecommendUpdateDTO.getType());
|
ProductRecommendDO existProductRecommend = productRecommendMapper.selectByProductSpuIdAndType(productRecommendUpdateDTO.getProductSpuId(), productRecommendUpdateDTO.getType());
|
||||||
if (existProductRecommend != null && !existProductRecommend.getId().equals(productRecommendUpdateDTO.getId())) {
|
if (existProductRecommend != null && !existProductRecommend.getId().equals(productRecommendUpdateDTO.getId())) {
|
||||||
return ServiceExceptionUtil.error(PromotionErrorCodeEnum.PRODUCT_RECOMMEND_EXISTS.getCode());
|
throw ServiceExceptionUtil.exception(PromotionErrorCodeEnum.PRODUCT_RECOMMEND_EXISTS.getCode());
|
||||||
}
|
}
|
||||||
// 更新到数据库
|
// 更新到数据库
|
||||||
ProductRecommendDO updateProductRecommend = ProductRecommendConvert.INSTANCE.convert(productRecommendUpdateDTO);
|
ProductRecommendDO updateProductRecommend = ProductRecommendConvert.INSTANCE.convert(productRecommendUpdateDTO);
|
||||||
productRecommendMapper.update(updateProductRecommend);
|
productRecommendMapper.update(updateProductRecommend);
|
||||||
// 返回成功
|
// 返回成功
|
||||||
return CommonResult.success(true);
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CommonResult<Boolean> updateProductRecommendStatus(Integer adminId, Integer productRecommendId, Integer status) {
|
public Boolean updateProductRecommendStatus(Integer adminId, Integer productRecommendId, Integer status) {
|
||||||
// 校验参数
|
|
||||||
if (!CommonStatusEnum.isValid(status)) {
|
|
||||||
return CommonResult.error(SysErrorCodeEnum.VALIDATION_REQUEST_PARAM_ERROR.getCode(), "变更状态必须是开启(1)或关闭(2)"); // TODO 有点搓
|
|
||||||
}
|
|
||||||
// 校验更新的商品推荐存在
|
// 校验更新的商品推荐存在
|
||||||
if (productRecommendMapper.selectById(productRecommendId) == null) {
|
if (productRecommendMapper.selectById(productRecommendId) == null) {
|
||||||
return ServiceExceptionUtil.error(PromotionErrorCodeEnum.PRODUCT_RECOMMEND_NOT_EXISTS.getCode());
|
throw ServiceExceptionUtil.exception(PromotionErrorCodeEnum.PRODUCT_RECOMMEND_NOT_EXISTS.getCode());
|
||||||
}
|
}
|
||||||
// 更新到数据库
|
// 更新到数据库
|
||||||
ProductRecommendDO updateProductRecommend = new ProductRecommendDO().setId(productRecommendId).setStatus(status);
|
ProductRecommendDO updateProductRecommend = new ProductRecommendDO().setId(productRecommendId).setStatus(status);
|
||||||
productRecommendMapper.update(updateProductRecommend);
|
productRecommendMapper.update(updateProductRecommend);
|
||||||
// 返回成功
|
// 返回成功
|
||||||
return CommonResult.success(true);
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CommonResult<Boolean> deleteProductRecommend(Integer adminId, Integer productRecommendId) {
|
public Boolean deleteProductRecommend(Integer adminId, Integer productRecommendId) {
|
||||||
// 校验更新的商品推荐存在
|
// 校验更新的商品推荐存在
|
||||||
if (productRecommendMapper.selectById(productRecommendId) == null) {
|
if (productRecommendMapper.selectById(productRecommendId) == null) {
|
||||||
return ServiceExceptionUtil.error(PromotionErrorCodeEnum.PRODUCT_RECOMMEND_NOT_EXISTS.getCode());
|
throw ServiceExceptionUtil.exception(PromotionErrorCodeEnum.PRODUCT_RECOMMEND_NOT_EXISTS.getCode());
|
||||||
}
|
}
|
||||||
// 更新到数据库
|
// 更新到数据库
|
||||||
ProductRecommendDO updateProductRecommend = new ProductRecommendDO().setId(productRecommendId);
|
ProductRecommendDO updateProductRecommend = new ProductRecommendDO().setId(productRecommendId);
|
||||||
updateProductRecommend.setDeleted(DeletedStatusEnum.DELETED_YES.getValue());
|
updateProductRecommend.setDeleted(DeletedStatusEnum.DELETED_YES.getValue());
|
||||||
productRecommendMapper.update(updateProductRecommend);
|
productRecommendMapper.update(updateProductRecommend);
|
||||||
// 返回成功
|
// 返回成功
|
||||||
return CommonResult.success(true);
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user