From eb80b83a3d4a0b59325e90405dc6c687c2904d3a Mon Sep 17 00:00:00 2001
From: puhanshu <a9236326>
Date: 星期三, 05 一月 2022 14:45:16 +0800
Subject: [PATCH] 商家后台相关代码提交

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsProductServiceImpl.java |  178 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 174 insertions(+), 4 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsProductServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsProductServiceImpl.java
index 728d3d4..a7a8ef6 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsProductServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsProductServiceImpl.java
@@ -1,10 +1,35 @@
 package com.panzhihua.service_community.service.impl;
 
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.panzhihua.service_community.dao.McsProductDAO;
-import com.panzhihua.service_community.entity.McsProduct;
-import com.panzhihua.service_community.service.McsProductService;
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsProductDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsProductDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.SetShelfForProductDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsProductVO;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.service_community.dao.McsLabelDAO;
+import com.panzhihua.service_community.dao.McsMerchantDAO;
+import com.panzhihua.service_community.dao.McsProductDAO;
+import com.panzhihua.service_community.dao.McsProductLabelDAO;
+import com.panzhihua.service_community.entity.McsLabel;
+import com.panzhihua.service_community.entity.McsMerchant;
+import com.panzhihua.service_community.entity.McsProduct;
+import com.panzhihua.service_community.entity.McsProductLabel;
+import com.panzhihua.service_community.service.McsProductService;
 
 /**
  * (McsProduct)表服务实现类
@@ -15,4 +40,149 @@
 @Service("mcsProductService")
 public class McsProductServiceImpl extends ServiceImpl<McsProductDAO, McsProduct> implements McsProductService {
 
+    @Resource
+    private McsMerchantDAO mcsMerchantDAO;
+    @Resource
+    private McsLabelDAO mcsLabelDAO;
+    @Resource
+    private McsProductLabelDAO mcsProductLabelDAO;
+
+    /**
+     * 新增产品信息
+     * @param mcsProductDTO
+     * @return
+     */
+    @Override
+    public R addMcsProduct(McsProductDTO mcsProductDTO) {
+        Long userId = mcsProductDTO.getCreatedBy();
+        McsMerchant mcsMerchant = mcsMerchantDAO.selectOne(new QueryWrapper<McsMerchant>().lambda().eq(McsMerchant::getUserId, userId));
+        if (isNull(mcsMerchant)) {
+            return R.fail("商家信息不存在");
+        }
+        McsProduct mcsProduct = new McsProduct();
+        BeanUtils.copyProperties(mcsProductDTO, mcsProduct);
+        mcsProduct.setMerchantId(mcsMerchant.getId());
+        mcsProduct.setStatus(McsProduct.Status.yxj);
+        mcsProduct.setId(Snowflake.getId());
+        int num = this.baseMapper.insert(mcsProduct);
+        if (num > 0) {
+            List<Long> labelIds = mcsProductDTO.getLabelIds();
+            if (nonNull(labelIds) && !labelIds.isEmpty()) {
+                List<McsLabel> mcsLabels = mcsLabelDAO.selectBatchIds(labelIds);
+                if (nonNull(mcsLabels) && !mcsLabels.isEmpty()) {
+                    List<McsProductLabel> mcsProductLabelList = new ArrayList<>();
+                    mcsLabels.forEach(e -> {
+                        McsProductLabel productLabel = new McsProductLabel();
+                        productLabel.setLabelId(e.getId());
+                        productLabel.setProductId(mcsProduct.getId());
+                        productLabel.setLabelName(e.getName());
+                        mcsProductLabelList.add(productLabel);
+                    });
+                    mcsProductLabelDAO.insertBatch(mcsProductLabelList);
+                }
+            }
+            return R.ok();
+        }
+        return R.fail("新增失败,请重新尝试");
+    }
+
+    /**
+     * 编辑产品信息
+     * @param mcsProductDTO
+     * @return
+     */
+    @Override
+    public R putMcsProduct(McsProductDTO mcsProductDTO) {
+        McsProduct mcsProduct = this.baseMapper.selectById(mcsProductDTO.getId());
+        if (isNull(mcsProduct)) {
+            return R.fail("资源不存在");
+        }
+        BeanUtils.copyProperties(mcsProductDTO, mcsProduct);
+        int num = this.baseMapper.updateById(mcsProduct);
+        if (num > 0) {
+            List<Long> labelIds = mcsProductDTO.getLabelIds();
+            mcsProductLabelDAO.delete(new QueryWrapper<McsProductLabel>().lambda().eq(McsProductLabel::getProductId, mcsProduct.getId()));
+            if (nonNull(labelIds) && !labelIds.isEmpty()) {
+                List<McsLabel> mcsLabels = mcsLabelDAO.selectBatchIds(labelIds);
+                if (nonNull(mcsLabels) && !mcsLabels.isEmpty()) {
+                    List<McsProductLabel> mcsProductLabelList = new ArrayList<>();
+                    mcsLabels.forEach(e -> {
+                        McsProductLabel productLabel = new McsProductLabel();
+                        productLabel.setLabelId(e.getId());
+                        productLabel.setProductId(mcsProduct.getId());
+                        productLabel.setLabelName(e.getName());
+                        mcsProductLabelList.add(productLabel);
+                    });
+                    mcsProductLabelDAO.insertBatch(mcsProductLabelList);
+                }
+            }
+            return R.ok();
+        }
+        return R.fail("编辑失败,请重新尝试");
+    }
+
+    /**
+     * 删除产品信息
+     * @param productId
+     * @param userId
+     * @return
+     */
+    @Override
+    public R deleteMcsProduct(Long productId, Long userId) {
+        McsProduct mcsProduct = this.baseMapper.selectById(productId);
+        if (isNull(mcsProduct)) {
+            return R.fail("资源不存在");
+        }
+        mcsProduct.setIsDel(true);
+        mcsProduct.setUpdatedBy(userId);
+        int num = this.baseMapper.updateById(mcsProduct);
+        if (num > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败,请重新尝试");
+    }
+
+    /**
+     * 上架/下架产品信息
+     * @param setShelfForProductDTO
+     * @return
+     */
+    @Override
+    public R setShelfForMcsProduct(SetShelfForProductDTO setShelfForProductDTO) {
+        Integer type = setShelfForProductDTO.getType();
+        List<McsProduct> mcsProducts = this.baseMapper.selectBatchIds(setShelfForProductDTO.getProductIds());
+        if (nonNull(mcsProducts) && !mcsProducts.isEmpty()) {
+            if (type.equals(1)) {
+                //上架
+                mcsProducts.forEach(e -> {
+                    e.setStatus(McsProduct.Status.sjz);
+                    e.setUpdatedBy(setShelfForProductDTO.getUpdatedBy());
+                });
+            } else if (type.equals(2)) {
+                //下架
+                mcsProducts.forEach(e -> {
+                    e.setStatus(McsProduct.Status.yxj);
+                    e.setUpdatedBy(setShelfForProductDTO.getUpdatedBy());
+                });
+            } else {
+                return R.fail("未知错误");
+            }
+            this.updateBatchById(mcsProducts);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 分页查询产品信息
+     * @param pageMcsProductDTO
+     * @return
+     */
+    @Override
+    public R pageMcsProduct(PageMcsProductDTO pageMcsProductDTO) {
+        Page page = new Page<>();
+        page.setSize(pageMcsProductDTO.getPageSize());
+        page.setCurrent(pageMcsProductDTO.getPageNum());
+        IPage<McsProductVO> mcsProduct = this.baseMapper.pageMcsProduct(page, pageMcsProductDTO);
+        return R.ok(mcsProduct);
+    }
 }

--
Gitblit v1.7.1