- 前端 + 后端:商品推荐列表,增加商品名。
This commit is contained in:
@@ -2,7 +2,10 @@ package cn.iocoder.mall.promotion.application.controller.admins;
|
||||
|
||||
import cn.iocoder.common.framework.vo.CommonResult;
|
||||
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.bo.ProductRecommendBO;
|
||||
import cn.iocoder.mall.promotion.api.bo.ProductRecommendPageBO;
|
||||
import cn.iocoder.mall.promotion.api.dto.ProductRecommendAddDTO;
|
||||
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.vo.admins.AdminsProductRecommendPageVO;
|
||||
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.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.apache.dubbo.config.annotation.Reference;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
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
|
||||
@RequestMapping("admins/product_recommend")
|
||||
@Api("商品推荐模块")
|
||||
@@ -26,6 +35,8 @@ public class AdminsProductRecommendController {
|
||||
@Reference(validation = "true")
|
||||
@Autowired
|
||||
private ProductRecommendService productRecommendService;
|
||||
@Reference(validation = "true", version = "*", lazy = true)
|
||||
private ProductSpuService productSpuService;
|
||||
|
||||
@GetMapping("/page")
|
||||
@ApiOperation(value = "商品推荐分页")
|
||||
@@ -37,8 +48,15 @@ public class AdminsProductRecommendController {
|
||||
public CommonResult<AdminsProductRecommendPageVO> page(@RequestParam(value = "type", required = false) Integer type,
|
||||
@RequestParam(value = "pageNo", defaultValue = "0") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
|
||||
CommonResult<ProductRecommendPageBO> result = productRecommendService.getProductRecommendPage(new ProductRecommendPageDTO().setType(type).setPageNo(pageNo).setPageSize(pageSize));
|
||||
return ProductRecommendConvert.INSTANCE.convert(result);
|
||||
ProductRecommendPageBO result = productRecommendService.getProductRecommendPage(new ProductRecommendPageDTO().setType(type).setPageNo(pageNo).setPageSize(pageSize));
|
||||
// 获得商品集合
|
||||
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")
|
||||
@@ -55,7 +73,7 @@ public class AdminsProductRecommendController {
|
||||
@RequestParam(value = "memo", required = false) String memo) {
|
||||
ProductRecommendAddDTO bannerAddDTO = new ProductRecommendAddDTO().setType(type).setProductSpuId(productSpuId)
|
||||
.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")
|
||||
@@ -74,7 +92,7 @@ public class AdminsProductRecommendController {
|
||||
@RequestParam(value = "memo", required = false) String memo) {
|
||||
ProductRecommendUpdateDTO bannerUpdateDTO = new ProductRecommendUpdateDTO().setId(id).setType(type).setProductSpuId(productSpuId)
|
||||
.setSort(sort).setMemo(memo);
|
||||
return productRecommendService.updateProductRecommend(AdminSecurityContextHolder.getContext().getAdminId(), bannerUpdateDTO);
|
||||
return success(productRecommendService.updateProductRecommend(AdminSecurityContextHolder.getContext().getAdminId(), bannerUpdateDTO));
|
||||
}
|
||||
|
||||
@PostMapping("/update_status")
|
||||
@@ -85,14 +103,14 @@ public class AdminsProductRecommendController {
|
||||
})
|
||||
public CommonResult<Boolean> updateStatus(@RequestParam("id") Integer id,
|
||||
@RequestParam("status") Integer status) {
|
||||
return productRecommendService.updateProductRecommendStatus(AdminSecurityContextHolder.getContext().getAdminId(), id, status);
|
||||
return success(productRecommendService.updateProductRecommendStatus(AdminSecurityContextHolder.getContext().getAdminId(), id, status));
|
||||
}
|
||||
|
||||
@PostMapping("/delete")
|
||||
@ApiOperation(value = "删除商品推荐")
|
||||
@ApiImplicitParam(name = "id", value = "商品推荐编号", required = true, example = "1")
|
||||
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 io.swagger.annotations.Api;
|
||||
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.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
@@ -23,6 +24,7 @@ import java.util.List;
|
||||
public class UsersBannerController {
|
||||
|
||||
@Reference(validation = "true")
|
||||
@Autowired
|
||||
private BannerService bannerService;
|
||||
|
||||
@GetMapping("/list")
|
||||
|
||||
@@ -18,6 +18,7 @@ import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@RestController
|
||||
@@ -26,6 +27,7 @@ import org.springframework.web.bind.annotation.*;
|
||||
public class UsersCouponController {
|
||||
|
||||
@Reference(validation = "true")
|
||||
@Autowired
|
||||
private CouponService couponService;
|
||||
|
||||
// ========== 优惠劵(码)模板 ==========
|
||||
|
||||
@@ -14,6 +14,7 @@ import com.google.common.collect.HashMultimap;
|
||||
import com.google.common.collect.Multimap;
|
||||
import io.swagger.annotations.Api;
|
||||
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.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
@@ -30,8 +31,10 @@ import java.util.stream.Collectors;
|
||||
public class UsersProductRecommendController {
|
||||
|
||||
@Reference(validation = "true")
|
||||
@Autowired
|
||||
private ProductRecommendService productRecommendService;
|
||||
@Reference(validation = "true")
|
||||
|
||||
@Reference(validation = "true", version = "1.0.0")
|
||||
private ProductSpuService productSpuService;
|
||||
|
||||
@GetMapping("/list")
|
||||
@@ -40,7 +43,7 @@ public class UsersProductRecommendController {
|
||||
public CommonResult<Map<Integer, Collection<UsersProductRecommendVO>>> list() {
|
||||
// 查询商品推荐列表
|
||||
List<ProductRecommendBO> productRecommends = productRecommendService.getProductRecommendList(
|
||||
null, CommonStatusEnum.ENABLE.getValue()).getData();
|
||||
null, CommonStatusEnum.ENABLE.getValue());
|
||||
// 获得商品集合
|
||||
List<ProductSpuBO> spus = productSpuService.getProductSpuList(
|
||||
productRecommends.stream().map(ProductRecommendBO::getProductSpuId).collect(Collectors.toSet()));
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
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.promotion.api.bo.ProductRecommendBO;
|
||||
import cn.iocoder.mall.promotion.api.bo.ProductRecommendPageBO;
|
||||
@@ -20,10 +19,7 @@ public interface ProductRecommendConvert {
|
||||
AdminsProductRecommendVO convert(ProductRecommendBO bannerBO);
|
||||
|
||||
@Mappings({})
|
||||
CommonResult<AdminsProductRecommendVO> convert2(CommonResult<ProductRecommendBO> result);
|
||||
|
||||
@Mappings({})
|
||||
CommonResult<AdminsProductRecommendPageVO> convert(CommonResult<ProductRecommendPageBO> result);
|
||||
AdminsProductRecommendPageVO convert(ProductRecommendPageBO result);
|
||||
|
||||
@Mappings({})
|
||||
UsersProductRecommendVO convert(ProductSpuBO productSpu);
|
||||
@@ -31,4 +27,4 @@ public interface ProductRecommendConvert {
|
||||
// @Mappings({})
|
||||
// List<UsersProductRecommendVO> convertList(List<ProductRecommendBO> banners);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,4 +27,8 @@ public class AdminsProductRecommendVO {
|
||||
@ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式")
|
||||
private Date createTime;
|
||||
|
||||
// ========== 基本信息 =========
|
||||
@ApiModelProperty(value = "SPU 名字", required = true, example = "厮大牛逼")
|
||||
private String productSpuName;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user