package com.ishop.merchant.pub; import com.iplatform.base.Constants; import com.ishop.merchant.BaseController; import com.ishop.merchant.ProductConstants; import com.ishop.merchant.util.ImageUtils; import com.ishop.merchant.util.ProductAttrUtils; import com.ishop.merchant.util.VoUtils; import com.ishop.model.po.EbProduct; import com.ishop.model.po.EbProductAttr; import com.ishop.model.po.EbProductAttrValue; import com.ishop.model.po.EbProductBrand; import com.ishop.model.po.EbProductDescription; import com.ishop.model.vo.ProductInfoVo; import com.walker.infrastructure.utils.StringUtils; import com.walker.web.ResponseValue; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * 公共控制器定义,商品两端通用方法。 * @author 时克英 * @date 2023-06-15 */ @RestController @RequestMapping("/pub/product") public class ProductInfoController extends BaseController { /** * 商品品牌缓存集合,平台、商户端都要使用,看到相同数据。 * @return * @date 2023-06-15 */ @RequestMapping(value = "/brand/cache/list", method = RequestMethod.GET) public ResponseValue getCacheAllList(){ List data = this.getProductBrandCache().getList(); return ResponseValue.success(data); } @RequestMapping(value = "/info", method = RequestMethod.GET) public ResponseValue info(Long id){ if(id == null || id.longValue() <= 0){ return ResponseValue.error(Constants.ERROR_ARGUMENT); } EbProduct product = this.getProductService().get(new EbProduct(id)); if(product == null){ return ResponseValue.error("商品不存在"); } ProductInfoVo productInfoVo = new ProductInfoVo(); VoUtils.setupProductInfoVo(product, productInfoVo); if(StringUtils.isNotEmpty(productInfoVo.getImage())){ productInfoVo.setImage(this.getCdnUrl() + productInfoVo.getImage()); } if(StringUtils.isNotEmpty(productInfoVo.getSliderImage())){ productInfoVo.setSliderImage(ImageUtils.combineMultiImageUrl(productInfoVo.getSliderImage(), this.getCdnUrl())); } // 2: 设置商品型号属性,如:颜色、类别等 List productAttrs = this.getProductAttrCache().getList(ProductAttrUtils.combineKey(ProductConstants.PRODUCT_TYPE_NORMAL, product.getId())); if(!StringUtils.isEmptyList(productAttrs)){ productInfoVo.setAttr(productAttrs); } // 3: 设置商品属性型号值 List attrValues = this.getProductAttrValueService().queryProductAttrValueList(ProductConstants.PRODUCT_TYPE_NORMAL, product.getId()); if(!StringUtils.isEmptyList(attrValues)){ productInfoVo.setAttrValue(attrValues); } EbProductDescription description = this.getProductDescriptionService().queryProductDescription(ProductConstants.PRODUCT_TYPE_NORMAL, product.getId()); if(description != null){ productInfoVo.setContent(description.getDescription() == null? StringUtils.EMPTY_STRING: description.getDescription()); } // 获取已关联的优惠券 // List productCouponList = productCouponService.getListByProductId(Product.getId()); // if (CollUtil.isNotEmpty(productCouponList)) { // List ids = productCouponList.stream().map(ProductCoupon::getCouponId).collect(Collectors.toList()); // SystemAdmin systemAdmin = SecurityUtil.getLoginUserVo().getUser(); // if (systemAdmin.getMerId() > 0) { // ProductResponse.setCouponIds(ids); // } else { // ProductResponse.setCouponList(couponService.findSimpleListByIdList(ids)); // } // } return ResponseValue.success(productInfoVo); } }