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/McsMerchantServiceImpl.java |  131 ++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 128 insertions(+), 3 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsMerchantServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsMerchantServiceImpl.java
index 885340f..4594b34 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsMerchantServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsMerchantServiceImpl.java
@@ -1,24 +1,36 @@
 package com.panzhihua.service_community.service.impl;
 
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+import java.util.Arrays;
 import java.util.Date;
 
 import javax.annotation.Resource;
 
-import com.panzhihua.common.utlis.DateUtils;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.panzhihua.service_community.dao.McsConfigDAO;
+import com.panzhihua.service_community.dao.McsGameDAO;
+import com.panzhihua.service_community.entity.McsConfig;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+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.exceptions.ServiceException;
+import com.panzhihua.common.model.dtos.community.convenient.DisableOrEnableConvenientMerchantDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.DisableOrEnableMcsMerchantDTO;
 import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsMerchantDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsMerchantDTO;
 import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsMerchantVO;
 import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.DateUtils;
 import com.panzhihua.service_community.dao.McsMerchantDAO;
 import com.panzhihua.service_community.entity.McsMerchant;
 import com.panzhihua.service_community.service.McsMerchantService;
-
-import static java.util.Objects.isNull;
 
 /**
  * (McsMerchant)表服务实现类
@@ -29,8 +41,15 @@
 @Service("mcsMerchantService")
 public class McsMerchantServiceImpl extends ServiceImpl<McsMerchantDAO, McsMerchant> implements McsMerchantService {
 
+    private static final String MERCHANT_PUBLISH_LIMIT_KEY = "MERCHANT_PUBLISH_LIMIT";
+    private static final int DEFAULT_PUBLISH_LIMIT = 2;
+
     @Resource
     private UserService userService;
+    @Resource
+    private McsConfigDAO mcsConfigDAO;
+    @Resource
+    private McsGameDAO mcsGameDAO;
 
     /**
      * 新增数字商业街商家
@@ -49,6 +68,8 @@
             }
             mcsMerchant.setExpireAt(DateUtils.addDay(new Date(), litDays));
         }
+        McsConfig publishLimitConfig = mcsConfigDAO.selectOne(new QueryWrapper<McsConfig>().lambda().eq(McsConfig::getKey, MERCHANT_PUBLISH_LIMIT_KEY));
+        mcsMerchant.setPublishLimit(nonNull(publishLimitConfig) ? Integer.parseInt(publishLimitConfig.getValue()) : DEFAULT_PUBLISH_LIMIT);
         mcsMerchant.setUserId(0L);
         int insertResult = this.baseMapper.insert(mcsMerchant);
         if (insertResult > 0) {
@@ -65,4 +86,108 @@
         }
         return R.fail("添加失败");
     }
+
+    /**
+     * 编辑数字商业街商家
+     * @param mcsMerchantDTO
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R putMcsMerchant(McsMerchantDTO mcsMerchantDTO) {
+        McsMerchant mcsMerchant = this.baseMapper.selectById(mcsMerchantDTO.getId());
+        if (isNull(mcsMerchant)) {
+            return R.fail("商家不存在");
+        }
+        if (mcsMerchantDTO.getLevel().equals(1)) {
+            Integer litDays = mcsMerchantDTO.getLitDays();
+            if (nonNull(litDays)) {
+                mcsMerchant.setExpireAt(DateUtils.addDay(new Date(), litDays));
+            }
+        }
+        BeanUtils.copyProperties(mcsMerchantDTO, mcsMerchant);
+        int result = this.baseMapper.updateById(mcsMerchant);
+        if (result > 0) {
+            //修改商家绑定账户号
+            mcsMerchantDTO.setUserId(mcsMerchant.getUserId());
+            R putResult = userService.putMcsMerchantUser(mcsMerchantDTO);
+            if (!R.isOk(putResult)) {
+                throw new ServiceException("406", putResult.getMsg());
+            }
+            return R.ok();
+        }
+        return R.fail("修改失败,请重新尝试");
+    }
+
+    /**
+     * 查询数字商业街商家详情
+     * @param merchantId
+     * @return
+     */
+    @Override
+    public R getMcsMerchant(Long merchantId) {
+        McsMerchantVO merchantVO = this.baseMapper.getMcsMerchantById(merchantId);
+        if (nonNull(merchantVO)) {
+            Integer publishLimit = merchantVO.getPublishLimit();
+            Integer publishCount = mcsGameDAO.selectPublishCount(merchantVO.getId());
+            Integer idleTotal = publishLimit - publishCount;
+            merchantVO.setIdleTotal(idleTotal > 0 ? idleTotal : 0);
+        }
+        return R.ok(merchantVO);
+    }
+
+    /**
+     * 删除数字商业街商家
+     * @param merchantId
+     * @param userId
+     * @return
+     */
+    @Override
+    public R deleteMcsMerchant(Long merchantId, Long userId) {
+        McsMerchant mcsMerchant = this.baseMapper.selectById(merchantId);
+        if (isNull(mcsMerchant)) {
+            return R.fail("商家不存在");
+        }
+        mcsMerchant.setIsDel(true);
+        this.baseMapper.updateById(mcsMerchant);
+        return R.ok();
+    }
+
+    /**
+     * 分页查询数字商业街商家
+     * @param pageMcsMerchantDTO
+     * @return
+     */
+    @Override
+    public R pageMcsMerchant(PageMcsMerchantDTO pageMcsMerchantDTO) {
+        Page page = new Page<>();
+        page.setSize(pageMcsMerchantDTO.getPageSize());
+        page.setCurrent(pageMcsMerchantDTO.getPageNum());
+        IPage<McsMerchantVO> mcsMerchants = this.baseMapper.pageMcsMerchant(page, pageMcsMerchantDTO);
+        return R.ok(mcsMerchants);
+    }
+
+    /**
+     * 禁用/启用数字商业街商家
+     * @param disableOrEnableMcsMerchantDTO
+     * @return
+     */
+    @Override
+    public R disableOrEnableMcsMerchant(DisableOrEnableMcsMerchantDTO disableOrEnableMcsMerchantDTO) {
+        McsMerchant mcsMerchant = this.baseMapper.selectById(disableOrEnableMcsMerchantDTO.getMerchantId());
+        if (isNull(mcsMerchant)) {
+            return R.fail("商家不存在");
+        }
+        Integer type = disableOrEnableMcsMerchantDTO.getType();
+        if (type.equals(1) || type.equals(2)) {
+            //启用 or 禁用
+            DisableOrEnableConvenientMerchantDTO dto = new DisableOrEnableConvenientMerchantDTO();
+            dto.setType(type);
+            dto.setUserIds(Arrays.asList(mcsMerchant.getUserId()));
+            R r = userService.disableOrEnableMerchantUsers(dto);
+            return r;
+        } else {
+            return R.fail("未知错误");
+        }
+    }
 }

--
Gitblit v1.7.1