From fefb0bc97d402a1f67135dc2f0fab365f8c88fd4 Mon Sep 17 00:00:00 2001
From: 101captain <237651143@qq.com>
Date: 星期三, 16 三月 2022 17:36:21 +0800
Subject: [PATCH] 党员认证Bug修改
---
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopStoreServiceImpl.java | 307 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 302 insertions(+), 5 deletions(-)
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopStoreServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopStoreServiceImpl.java
index 0b5400f..c2e426b 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopStoreServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopStoreServiceImpl.java
@@ -1,14 +1,43 @@
package com.panzhihua.service_community.service.impl;
+import static com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isNull;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.constants.Constants;
import com.panzhihua.common.model.dtos.shop.PageComShopStoreDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.shop.ComShopGoodsAttrVO;
+import com.panzhihua.common.model.vos.shop.ComShopGoodsVO;
+import com.panzhihua.common.model.vos.shop.PageShopStoreVO;
+import com.panzhihua.common.model.vos.shop.ShopStoreVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.service_community.dao.ComShopGoodsAttrDAO;
+import com.panzhihua.service_community.dao.ComShopGoodsDAO;
import com.panzhihua.service_community.dao.ComShopStoreDAO;
+import com.panzhihua.service_community.model.dos.ComShopGoodsAttrDO;
+import com.panzhihua.service_community.model.dos.ComShopGoodsDO;
+import com.panzhihua.service_community.model.dos.ComShopOrderDO;
import com.panzhihua.service_community.model.dos.ComShopStoreDO;
+import com.panzhihua.service_community.service.ComShopOrderService;
import com.panzhihua.service_community.service.ComShopStoreService;
+
import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
/**
* @auther lyq
@@ -17,12 +46,280 @@
*/
@Slf4j
@Service
-public class ComShopStoreServiceImpl extends ServiceImpl<ComShopStoreDAO, ComShopStoreDO> implements ComShopStoreService {
+public class ComShopStoreServiceImpl extends ServiceImpl<ComShopStoreDAO, ComShopStoreDO>
+ implements ComShopStoreService {
+
+ @Resource
+ private ComShopGoodsDAO shopGoodsDAO;
+ @Resource
+ private ComShopGoodsAttrDAO comShopGoodsAttrDAO;
+ @Resource
+ private ComShopOrderService orderService;
+ @Resource
+ private UserService userService;
+
+ /**
+ * 查询店铺列表
+ *
+ * @param pageComShopStoreDTO
+ * 请求参数
+ * @return 店铺列表
+ */
@Override
- public R pageStoreList(PageComShopStoreDTO pageComShopStoreDTO){
- Page page = new Page<>(pageComShopStoreDTO.getPageNum(),pageComShopStoreDTO.getPageSize());
- return R.ok(this.baseMapper.pageShopStore(page,pageComShopStoreDTO));
+ public R pageStoreList(PageComShopStoreDTO pageComShopStoreDTO) {
+ Page page = new Page<>(pageComShopStoreDTO.getPageNum(), pageComShopStoreDTO.getPageSize());
+ IPage<PageShopStoreVO> comShopStoreVOIPage = this.baseMapper.pageShopStore(page, pageComShopStoreDTO);
+ if (comShopStoreVOIPage != null) {
+ Optional.ofNullable(comShopStoreVOIPage.getRecords()).orElse(new ArrayList<>()).forEach(shopStoreVO -> {
+ List<Integer> notDoneOrderStatus = new ArrayList<>();
+ notDoneOrderStatus.add(1);
+ notDoneOrderStatus.add(2);
+ notDoneOrderStatus.add(3);
+ notDoneOrderStatus.add(4);
+ Integer orderCount = orderService.getBaseMapper().selectCount(
+ new LambdaQueryWrapper<ComShopOrderDO>().eq(ComShopOrderDO::getStoreId, shopStoreVO.getId())
+ .eq(ComShopOrderDO::getDeleteStatus, 1).in(ComShopOrderDO::getStatus, notDoneOrderStatus));
+ if (orderCount == null || orderCount.intValue() <= 0) {
+ shopStoreVO.setOrderDone(true);
+ } else {
+ shopStoreVO.setOrderDone(false);
+ }
+ });
+ }
+ return R.ok(comShopStoreVOIPage);
}
+ /**
+ * 查询店铺详情
+ *
+ * @param comShopStoreDTO
+ * 请求参数
+ * @return 店铺详情
+ */
+ @Override
+ public R shopStoreDetail(PageComShopStoreDTO comShopStoreDTO) {
+ // 查询店铺
+ ComShopStoreDO storeDO = this.baseMapper.selectById(comShopStoreDTO.getStoreId());
+ boolean storeDeleted = storeDO != null && 2 == storeDO.getDeleteStatus();
+ if (storeDO == null || storeDeleted) {
+ return R.fail(401, "店铺不存在");
+ }
+ if (storeDO.getStatus().equals(ComShopStoreDO.status.no)) {
+ return R.fail(402, "店铺已被禁用");
+ }
+ PageShopStoreVO shopStoreVO = new PageShopStoreVO();
+ BeanUtils.copyProperties(storeDO, shopStoreVO);
+
+ // 查询店铺下商品信息
+ Page page = new Page<>(comShopStoreDTO.getPageNum(), comShopStoreDTO.getPageSize());
+
+ List<ComShopGoodsVO> goodsList = shopGoodsDAO.pageShopGoodsByStoreId(page, comShopStoreDTO).getRecords();
+ if (!goodsList.isEmpty()) {
+ // 查询商品规格列表
+ goodsList.forEach(goods -> {
+ List<ComShopGoodsAttrVO> goodsAttrList = comShopGoodsAttrDAO.getGoodsAttr(goods.getId());
+ if (!goodsAttrList.isEmpty()) {
+ goods.setGoodsAttrList(goodsAttrList);
+ }
+ });
+ }
+ shopStoreVO.setGoodsList(goodsList);
+ return R.ok(shopStoreVO);
+
+ }
+
+ @Override
+ public R saveStore(ShopStoreVO storeVO) {
+ if (storeVO == null) {
+ return R.fail("数据为空!");
+ }
+ // 判断店铺是否存在
+ ComShopStoreDO oldComShopStoreDO = this.baseMapper.selectOne(
+ new LambdaQueryWrapper<ComShopStoreDO>().eq(ComShopStoreDO::getStoreAccount, storeVO.getStoreAccount())
+ .eq(ComShopStoreDO::getDeleteStatus, ComShopStoreDO.deleteStatus.no));
+ if (oldComShopStoreDO != null) {
+ return R.fail("商家已注册");
+ }
+ // //新增店铺先判断是否拥有已删除的店铺
+ // ComShopStoreDO comShopStoreDO = this.baseMapper.selectOne(new LambdaQueryWrapper<ComShopStoreDO>()
+ // .eq(ComShopStoreDO::getStoreAccount,
+ // storeVO.getStoreAccount()).eq(ComShopStoreDO::getDeleteStatus,ComShopStoreDO.deleteStatus.yes));
+ // if(comShopStoreDO != null){
+ // //删除店铺规格信息
+ // comShopGoodsAttrDAO.delete(new
+ // QueryWrapper<ComShopGoodsAttrDO>().lambda().eq(ComShopGoodsAttrDO::getStoreId,comShopStoreDO.getId()));
+ // //删除店铺商品
+ // shopGoodsDAO.delete(new
+ // QueryWrapper<ComShopGoodsDO>().lambda().eq(ComShopGoodsDO::getStoreId,comShopStoreDO.getId()));
+ // //删除关联的sysUser用户权限
+ // this.baseMapper.deleteSysRoleByAccount(Constants.SHOP_ROLE_KEY + comShopStoreDO.getStoreAccount());
+ // //删除关联的sysUser用户
+ // this.baseMapper.deleteSysUserBySysUserId(comShopStoreDO.getSysUserId());
+ // //删除店铺
+ // this.baseMapper.deleteById(comShopStoreDO.getId());
+ // }
+ ComShopStoreDO storeDO = new ComShopStoreDO();
+ BeanUtils.copyProperties(storeVO, storeDO);
+ storeDO.setSale(0);
+ this.baseMapper.insert(storeDO);
+ return R.ok();
+ }
+
+ public R addStore(ShopStoreVO storeVO) {
+ // 判断店铺是否存在
+ ComShopStoreDO oldComShopStoreDO = this.baseMapper.selectOne(
+ new LambdaQueryWrapper<ComShopStoreDO>().eq(ComShopStoreDO::getStoreAccount, storeVO.getStoreAccount())
+ .eq(ComShopStoreDO::getDeleteStatus, ComShopStoreDO.deleteStatus.no));
+ if (oldComShopStoreDO != null) {
+ return R.fail("商家账号已注册");
+ }
+ int reasonable1 = this.baseMapper.reasonableUserByPhone(storeVO.getPhone());
+ int reasonable2 = this.baseMapper.reasonableUserByAccount(storeVO.getStoreAccount());
+ if (reasonable1 > 0) {
+ return R.fail("手机号:" + storeVO.getPhone() + "在系统用户中已存在");
+ }
+ if (reasonable2 > 0) {
+ return R.fail("账号:" + storeVO.getStoreAccount() + "在系统用户中已存在");
+ }
+ // 新增店铺先判断是否拥有已删除的店铺
+ ComShopStoreDO comShopStoreDO = this.baseMapper.selectOne(
+ new LambdaQueryWrapper<ComShopStoreDO>().eq(ComShopStoreDO::getStoreAccount, storeVO.getStoreAccount())
+ .eq(ComShopStoreDO::getDeleteStatus, ComShopStoreDO.deleteStatus.yes));
+ if (comShopStoreDO != null) {
+ // 删除店铺规格信息
+ comShopGoodsAttrDAO.delete(new QueryWrapper<ComShopGoodsAttrDO>().lambda()
+ .eq(ComShopGoodsAttrDO::getStoreId, comShopStoreDO.getId()));
+ // 删除店铺商品
+ shopGoodsDAO.delete(
+ new QueryWrapper<ComShopGoodsDO>().lambda().eq(ComShopGoodsDO::getStoreId, comShopStoreDO.getId()));
+ // 删除关联的sysUser用户权限
+ this.baseMapper.deleteSysRoleByAccount(Constants.SHOP_ROLE_KEY + comShopStoreDO.getStoreAccount());
+ // 删除关联的sysUser用户
+ this.baseMapper.deleteSysUserBySysUserId(comShopStoreDO.getSysUserId());
+ // 删除店铺
+ this.baseMapper.deleteById(comShopStoreDO.getId());
+ }
+ ComShopStoreDO storeDO = new ComShopStoreDO();
+ BeanUtils.copyProperties(storeVO, storeDO);
+ storeDO.setSale(0);
+ if (this.baseMapper.insert(storeDO) > 0) {
+ return R.ok();
+ } else {
+ return R.fail();
+ }
+ }
+
+ @Override
+ public R editStore(Long id, ShopStoreVO storeVO) {
+ ComShopStoreDO storeDO = this.baseMapper.selectById(id);
+ if (storeDO == null) {
+ return R.fail("商家不存在");
+ }
+ BeanUtils.copyProperties(storeVO, storeDO);
+ if (this.baseMapper.updateById(storeDO) > 0) {
+ return R.ok();
+ } else {
+ return R.fail();
+ }
+ }
+
+ @Override
+ public R deleteStore(Long[] id) {
+ LambdaQueryWrapper<ComShopStoreDO> query =
+ new LambdaQueryWrapper<ComShopStoreDO>().in(ComShopStoreDO::getId, id);
+ List<ComShopStoreDO> comShopStoreDO = this.baseMapper.selectList(query);
+ if (!comShopStoreDO.isEmpty()) {
+ for (ComShopStoreDO shopStoreDO : comShopStoreDO) {
+ // 判断店铺下是否拥有正常的商品
+ List<ComShopGoodsDO> shopGoodsList = shopGoodsDAO.selectList(
+ new QueryWrapper<ComShopGoodsDO>().lambda().eq(ComShopGoodsDO::getStoreId, shopStoreDO.getId())
+ .eq(ComShopGoodsDO::getDeleteStatus, ComShopGoodsDO.deleteStatus.no)
+ .eq(ComShopGoodsDO::getStatus, ComShopGoodsDO.status.sell));
+ if (!shopGoodsList.isEmpty()) {// 如果有正常商品则提示无法删除
+ return R.fail("店铺下有商品正在出售,无法删除店铺");
+ }
+ List<ComShopOrderDO> comShopOrderDOS = orderService.getBaseMapper().selectList(
+ new LambdaQueryWrapper<ComShopOrderDO>().eq(ComShopOrderDO::getStoreId, shopStoreDO.getId()));
+ List<ComShopOrderDO> filterOrder = comShopOrderDOS.stream()
+ .filter(order -> order.getStatus() < ComShopOrderDO.status.dpj).collect(Collectors.toList());
+ if (!filterOrder.isEmpty()) {
+ return R.fail("该商家还有订单未完成,不能删除");
+ }
+ // 删除商家下的订单
+ comShopOrderDOS.forEach(order -> {
+ order.setDeleteStatus(ComShopOrderDO.deleteStatus.yes);
+ orderService.getBaseMapper().updateById(order);
+ });
+ shopStoreDO.setDeleteStatus(2);
+ this.baseMapper.updateById(shopStoreDO);
+ // 删除sys_user 物理删除
+ this.baseMapper.deleteSysUserBySysUserId(shopStoreDO.getSysUserId());
+ }
+ } else {
+ return R.fail("未查询到店铺");
+ }
+ return R.ok();
+ }
+
+ @Override
+ public R getOneInfo(Long id) {
+ ComShopStoreDO comShopStoreDO = this.baseMapper.selectById(id);
+ if (comShopStoreDO == null) {
+ return R.fail(500, "商铺不存在");
+ }
+ ShopStoreVO shopStoreVO = new ShopStoreVO();
+ BeanUtils.copyProperties(comShopStoreDO, shopStoreVO);
+ return R.ok(shopStoreVO);
+ }
+
+ @Override
+ public R getUserStoreInfo(Long userId) {
+ ComShopStoreDO comShopStoreDO = this.baseMapper.selectOne(new LambdaQueryWrapper<ComShopStoreDO>()
+ .eq(ComShopStoreDO::getDeleteStatus, 1).eq(ComShopStoreDO::getSysUserId, userId));
+ if (comShopStoreDO == null) {
+ return R.fail(500, "商铺不存在");
+ }
+ ShopStoreVO shopStoreVO = new ShopStoreVO();
+ BeanUtils.copyProperties(comShopStoreDO, shopStoreVO);
+ return R.ok(shopStoreVO);
+ }
+
+ @Override
+ public R getUserStoreInfo(String account) {
+ try {
+ R<LoginUserInfoVO> loginUserInfoVOR = userService.getUserInfo(account + "_5");
+ LoginUserInfoVO loginUserInfoVO =
+ JSONObject.parseObject(JSONObject.toJSONString(loginUserInfoVOR.getData()), LoginUserInfoVO.class);
+
+ if (loginUserInfoVO == null) {
+ return R.fail(500, "该账号不存在");
+ }
+ ComShopStoreDO comShopStoreDO = this.baseMapper.selectOne(new LambdaQueryWrapper<ComShopStoreDO>()
+ .eq(ComShopStoreDO::getDeleteStatus, 1).eq(ComShopStoreDO::getSysUserId, loginUserInfoVO.getUserId()));
+ if (comShopStoreDO == null) {
+ return R.fail(500, "该账号不存在");
+ }
+ ShopStoreVO shopStoreVO = new ShopStoreVO();
+ BeanUtils.copyProperties(comShopStoreDO, shopStoreVO);
+ return R.ok(shopStoreVO);
+ } catch (Exception e) {
+ return R.fail();
+ }
+ }
+
+ /**
+ * check商家/店铺是否有效
+ * @param userId
+ * @return
+ */
+ @Override
+ public Boolean checkStoreIsValid(Long userId) {
+ ComShopStoreDO comShopStoreDO = this.baseMapper.selectOne(new LambdaQueryWrapper<ComShopStoreDO>()
+ .eq(ComShopStoreDO::getDeleteStatus, 1).eq(ComShopStoreDO::getSysUserId, userId));
+ if (isNull(comShopStoreDO) || comShopStoreDO.getStatus() != 1) {
+ return false;
+ }
+ return true;
+ }
}
--
Gitblit v1.7.1