|
@@ -1,238 +0,0 @@
|
|
|
-package com.caimei.service.impl;
|
|
|
-
|
|
|
-import com.caimei.mapper.ProductMapper;
|
|
|
-import com.caimei.model.ResponseJson;
|
|
|
-import com.caimei.model.po.CmHeheCollageProductPo;
|
|
|
-import com.caimei.model.vo.*;
|
|
|
-import com.caimei.service.ProductService;
|
|
|
-import com.caimei.util.MathUtil;
|
|
|
-import com.caimei.util.ProductUtils;
|
|
|
-import org.springframework.beans.factory.annotation.Value;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-
|
|
|
-import javax.annotation.Resource;
|
|
|
-import java.math.BigDecimal;
|
|
|
-import java.util.*;
|
|
|
-
|
|
|
-/**
|
|
|
- * Description
|
|
|
- *
|
|
|
- * @author : plf
|
|
|
- * @date : 2021/4/22
|
|
|
- */
|
|
|
-@Service
|
|
|
-public class ProductServiceImpl implements ProductService {
|
|
|
- @Resource
|
|
|
- private ProductMapper productMapper;
|
|
|
- @Value("${caimei.oldapi}")
|
|
|
- private String domain;
|
|
|
-
|
|
|
- @Override
|
|
|
- public ResponseJson<List<CmHeHeImageVo>> carouselFigure() {
|
|
|
- List<CmHeHeImageVo> images = productMapper.findAllImage();
|
|
|
- return ResponseJson.success(images);
|
|
|
- }
|
|
|
-
|
|
|
- /*@Override
|
|
|
- public ResponseJson<PageInfo<ProductVo>> productList(String name, Integer userId, Integer pageNum, Integer pageSize) {
|
|
|
- PageHelper.startPage(pageNum, pageSize);
|
|
|
- List<ProductVo> productList = productMapper.findProductList(name);
|
|
|
- productList.forEach(product -> setProductDetails(product, userId));
|
|
|
- PageInfo<ProductVo> pageInfo = new PageInfo<>(productList);
|
|
|
-
|
|
|
- //搜索关键字
|
|
|
- if (StringUtils.isNotBlank(name) && userId != null && userId > 0) {
|
|
|
- Integer recordId = productMapper.findSearchHistory(userId, name);
|
|
|
- if (recordId != null && recordId > 0) {
|
|
|
- productMapper.updateHistoryByDate(recordId);
|
|
|
- } else {
|
|
|
- UserSearchHistoryPo history = new UserSearchHistoryPo();
|
|
|
- history.setUserId(Long.valueOf(userId));
|
|
|
- history.setDelFlag("0");
|
|
|
- history.setSearchWord(name);
|
|
|
- history.setSearchDate(new Date());
|
|
|
- productMapper.insertSearchHistory(history);
|
|
|
- }
|
|
|
- }
|
|
|
- return ResponseJson.success(pageInfo);
|
|
|
- }*/
|
|
|
-
|
|
|
- /*@Override
|
|
|
- public void setProductDetails(ProductVo product, Integer userId) {
|
|
|
- product.setMainImage(ProductUtils.getImageURL("product", product.getMainImage(), 0, domain));
|
|
|
- Integer activityId = productMapper.getActivityIdByProductId(product.getProductId());
|
|
|
- // 拼团商品
|
|
|
- CmHeheCollageProductPo collageProduct = productMapper.findCollageProduct(product.getProductId());
|
|
|
- if (activityId != null && activityId > 0) {
|
|
|
- product.setActiveStatus(1);
|
|
|
- //活动阶梯
|
|
|
- List<ActivityLadderVo> ladderList = productMapper.getActivityLadderList(activityId, product.getProductId());
|
|
|
- if (ladderList != null && ladderList.size() > 0) {
|
|
|
- ActivityLadderVo ladder = ladderList.get(0);
|
|
|
- // 没有起订量概念,默认显示购买1个商品的价格,若第一阶梯为一个商品,则取第一阶梯时间
|
|
|
- product.setPrice(1 == ladder.getBuyNum() ? ladder.getBuyPrice() : product.getPrice());
|
|
|
- }
|
|
|
- } else if (collageProduct != null) {
|
|
|
- // 拼团价
|
|
|
- product.setNormalPrice(product.getPrice());
|
|
|
- product.setPrice(collageProduct.getPrice());
|
|
|
- product.setCollageStatus(1);
|
|
|
- product.setCollageProduct(collageProduct);
|
|
|
- }
|
|
|
- Integer discount = productMapper.findProductDiscount(product.getProductId(), userId);
|
|
|
- if (null != discount && discount > 0) {
|
|
|
- product.setPrice(MathUtil.div(MathUtil.mul(product.getPrice(), discount), 100));
|
|
|
- if (null != product.getNormalPrice()) {
|
|
|
- product.setNormalPrice(MathUtil.div(MathUtil.mul(product.getNormalPrice(), discount), 100));
|
|
|
- }
|
|
|
- }
|
|
|
- //税费
|
|
|
- boolean addTaxFlag = ("0".equals(product.getIncludedTax()) && ("1".equals(product.getInvoiceType()) || "2".equals(product.getInvoiceType())));
|
|
|
- if (addTaxFlag) {
|
|
|
- BigDecimal addedValueTax = MathUtil.div(MathUtil.mul(product.getPrice(), product.getClubTaxPoint()), BigDecimal.valueOf(100), 2);
|
|
|
- BigDecimal price = MathUtil.add(product.getPrice(), addedValueTax);
|
|
|
- product.setPrice(price);
|
|
|
- if (null != product.getNormalPrice()) {
|
|
|
- addedValueTax = MathUtil.div(MathUtil.mul(product.getNormalPrice(), product.getClubTaxPoint()), BigDecimal.valueOf(100), 2);
|
|
|
- price = MathUtil.add(product.getNormalPrice(), addedValueTax);
|
|
|
- product.setNormalPrice(price);
|
|
|
- }
|
|
|
- }
|
|
|
- // 正在进行的全商城商品优惠券数量
|
|
|
- Integer allCount = productMapper.findAllProductCouponCount();
|
|
|
- if (allCount > 0) {
|
|
|
- product.setCouponsLogo(true);
|
|
|
- }
|
|
|
- // 该商品参与的正在进行的部分商品优惠券
|
|
|
- Integer partCount = productMapper.findPartProductCounponCount(product.getProductId());
|
|
|
- if (partCount > 0) {
|
|
|
- product.setCouponsLogo(true);
|
|
|
- }
|
|
|
- }*/
|
|
|
-
|
|
|
- /*@Override
|
|
|
- public ResponseJson<ProductVo> productDetails(Integer productId, Integer userId) {
|
|
|
- ProductDetailsVo product = productMapper.findProductByProductId(productId);
|
|
|
- if (product == null) {
|
|
|
- //商品不存在
|
|
|
- return ResponseJson.error("商品不存在", null);
|
|
|
- }
|
|
|
- String[] split = null;
|
|
|
- //商品标签
|
|
|
- if (product.getTags() != null) {
|
|
|
- String tags = product.getTags();
|
|
|
- tags = tags.replace(" ", ",").replace("、", ",").replace(",", ",");
|
|
|
- split = tags.split(",");
|
|
|
- List<String> list = new ArrayList<>();
|
|
|
- for (String s : split) {
|
|
|
- if (StringUtils.isNotBlank(s)) {
|
|
|
- list.add(s);
|
|
|
- }
|
|
|
- }
|
|
|
- split = list.toArray(new String[list.size()]);
|
|
|
- }
|
|
|
- product.setTagsList(split);
|
|
|
- //商品图片
|
|
|
- List<String> list = new ArrayList<>();
|
|
|
- List<String> imageList = productMapper.findProductImages(product.getProductId());
|
|
|
- for (String image : imageList) {
|
|
|
- image = ProductUtils.getImageURL("product", image, 0, domain);
|
|
|
- list.add(image);
|
|
|
- }
|
|
|
- product.setImageList(list);
|
|
|
- //商品详情
|
|
|
- ProductDetailInfoPo productDetail = productMapper.findProductDetail(product.getProductId());
|
|
|
- product.setProductDetail(productDetail);
|
|
|
- //商品分类
|
|
|
- String typeName = productMapper.findTypeName(product.getBigTypeId(), product.getSmallTypeId(), product.getTinyTypeId());
|
|
|
- product.setTypeName(typeName);
|
|
|
- //品牌名称
|
|
|
- String brandName = productMapper.findBrandName(product.getBrandId());
|
|
|
- if (StringUtils.isNotBlank(brandName)) {
|
|
|
- product.setBrandName(brandName);
|
|
|
- }
|
|
|
- //相关参数
|
|
|
- List<RelatedParametersVo> parametersList = productMapper.findParameters(product.getProductId());
|
|
|
- product.setParametersList(parametersList);
|
|
|
- Integer activityId = productMapper.findActivityByProductId(product.getProductId());
|
|
|
- //内部优惠折扣
|
|
|
- Integer discount = productMapper.findProductDiscount(product.getProductId(), userId);
|
|
|
- //税费
|
|
|
- boolean addTaxFlag = ("0".equals(product.getIncludedTax()) && ("1".equals(product.getInvoiceType()) || "2".equals(product.getInvoiceType())));
|
|
|
- if (activityId != null && activityId > 0) {
|
|
|
- //活动阶梯
|
|
|
- List<ActivityLadderVo> ladderList = productMapper.findActivityLadder(activityId, product.getProductId());
|
|
|
- if (null != discount && discount > 0 && null != ladderList && ladderList.size() > 0) {
|
|
|
- ladderList.forEach(ladder-> ladder.setBuyPrice(MathUtil.div(MathUtil.mul(ladder.getBuyPrice(), discount), 100)));
|
|
|
- }
|
|
|
- if (addTaxFlag && null != ladderList && ladderList.size() > 0) {
|
|
|
- ladderList.forEach(ladder->{
|
|
|
- BigDecimal addedValueTax = MathUtil.div(MathUtil.mul(ladder.getBuyPrice(), product.getClubTaxPoint()), BigDecimal.valueOf(100), 2);
|
|
|
- BigDecimal price = MathUtil.add(ladder.getBuyPrice(), addedValueTax);
|
|
|
- ladder.setBuyPrice(price);
|
|
|
- });
|
|
|
- }
|
|
|
- product.setLadderList(ladderList);
|
|
|
- }
|
|
|
- setProductDetails(product, userId);
|
|
|
- return ResponseJson.success(product);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public ResponseJson<List<String>> searchHistory(Integer userId) {
|
|
|
- List<String> searchList = productMapper.searchHistory(userId);
|
|
|
- if (searchList.size() == 10) {
|
|
|
- //只保留10条记录
|
|
|
- productMapper.deleteHistoryByUserId(userId);
|
|
|
- }
|
|
|
- return ResponseJson.success(searchList);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public ResponseJson<String> deleteHistory(Integer userId) {
|
|
|
- productMapper.deleteHistory(userId);
|
|
|
- return ResponseJson.success(null);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public ResponseJson<PageInfo<HeHeActivityVo>> activityArea(Integer userId, Integer pageNum, Integer pageSize) {
|
|
|
- PageHelper.startPage(pageNum, pageSize);
|
|
|
- List<HeHeActivityVo> activityList = productMapper.findActivityAll(userId);
|
|
|
- PageInfo<HeHeActivityVo> pageInfo = new PageInfo<>(activityList);
|
|
|
- return ResponseJson.success(pageInfo);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public ResponseJson<Map<String, Object>> activityDetails(Integer userId, Integer activityId, Integer pageNum, Integer pageSize) {
|
|
|
- Map<String, Object> map = new HashMap<>(2);
|
|
|
- String image = productMapper.findActivityById(activityId);
|
|
|
- PageHelper.startPage(pageNum, pageSize);
|
|
|
- List<ProductVo> productList = productMapper.findActivityProduct(userId, activityId);
|
|
|
- productList.forEach(product -> setProductDetails(product, userId));
|
|
|
- PageInfo<ProductVo> pageInfo = new PageInfo<>(productList);
|
|
|
- map.put("image", image);
|
|
|
- map.put("pageInfo", pageInfo);
|
|
|
- return ResponseJson.success(map);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- @Override
|
|
|
- public ResponseJson<List<FloorVo>> productFloor(Integer userId) {
|
|
|
- List<FloorVo> floorList = productMapper.findAllFloor();
|
|
|
- floorList.forEach(floor -> {
|
|
|
- List<ProductVo> productList = productMapper.findFloorProductList(floor.getFloorId(), null, 6);
|
|
|
- productList.forEach(product -> setProductDetails(product, userId));
|
|
|
- floor.setProductList(productList);
|
|
|
- });
|
|
|
- return ResponseJson.success(floorList);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public ResponseJson<PageInfo<ProductVo>> floorDetail(Integer floorId, Integer userId, String productName, Integer pageNum, Integer pageSize) {
|
|
|
- PageHelper.startPage(pageNum, pageSize);
|
|
|
- List<ProductVo> productList = productMapper.findFloorProductList(floorId, productName, null);
|
|
|
- productList.forEach(product -> setProductDetails(product, userId));
|
|
|
- PageInfo<ProductVo> pageInfo = new PageInfo<>(productList);
|
|
|
- return ResponseJson.success(pageInfo);
|
|
|
- }*/
|
|
|
-}
|