From 1af77abfa06a1a0d537bb120ae0c362aae9d3b83 Mon Sep 17 00:00:00 2001 From: huliguo <2023611923@qq.com> Date: 星期三, 30 七月 2025 10:14:40 +0800 Subject: [PATCH] bug修改 --- ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java | 163 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 149 insertions(+), 14 deletions(-) diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java index f815f65..75a34d8 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java @@ -40,16 +40,18 @@ import com.ruoyi.system.api.constant.AppErrorConstant; import com.ruoyi.system.api.constant.SecurityConstant; import com.ruoyi.system.api.domain.dto.*; +import com.ruoyi.system.api.domain.poji.config.OneClinkSyncing; import com.ruoyi.system.api.domain.poji.config.SysTag; import com.ruoyi.system.api.domain.poji.member.Member; import com.ruoyi.system.api.domain.poji.shop.Shop; -import com.ruoyi.system.api.domain.poji.shop.ShopAppointableTime; +import com.ruoyi.system.api.domain.poji.shop.TShopAppointableTime; import com.ruoyi.system.api.domain.poji.sys.SysUser; import com.ruoyi.system.api.domain.vo.*; import com.ruoyi.system.api.service.*; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; @@ -242,6 +244,18 @@ shopFileService.deleteByShopId(shop.getShopId()); shopRelTagService.deleteByShopId(shop.getShopId()); shopRelUserService.deleteByShopId(shop.getShopId()); + //默认登录账号开关 开启后原默认账号开关关闭 + if(StringUtils.isNotEmpty(mgtEditShopDto.getRelUserOpenIds())){ + List<Long> openIdList = Arrays.stream(mgtEditShopDto.getRelUserOpenIds().split(",")) + .map(String::trim) + .filter(StringUtils::isNotBlank) + .map(Long::valueOf) + .collect(Collectors.toList()); + if ( !openIdList.isEmpty()) { + shopRelUserService.setDefaultCloseByUserIdList(openIdList); + } + } + //清空归属 shopStaffService.clearShopStaffRelation(shop.getShopId()); if(!shop.getShopName().equals(mgtEditShopDto.getShopName())){ @@ -305,6 +319,10 @@ handleShopStaff(shop.getShopId(),belongSysUser); }*/ //商户关联人员 + String[] openIds = null; + if(StringUtils.isNotEmpty(mgtEditShopDto.getRelUserOpenIds())){ + openIds = mgtEditShopDto.getRelUserOpenIds().split(",");//开启默认登录账号 + } if(StringUtils.isNotBlank(relUserIds)){ shopStaffService.clearShopStaffRelation(shop.getShopId()); String[] relUserIdArray = relUserIds.split(","); @@ -321,6 +339,7 @@ shopRelUser.setUserName(sysUser.getNickName()); shopRelUser.setUserMobile(sysUser.getPhonenumber()); shopRelUser.setUserDeptId(sysUser.getDeptId()); + shopRelUser.setIsDefault((null != openIds && openIds.length > 0 && Arrays.asList(openIds).contains(str)) ? 1 : 0); shopRelUserService.save(shopRelUser); handleShopStaff(shop.getShopId(),sysUser); } @@ -392,10 +411,10 @@ shopProportion.setDelFlag(0); shopProportion.setShopId(shop.getShopId()); shopProportion.setShopType(shop.getShopType()); + BigDecimal proportionPercent = new BigDecimal("30"); String proportionPercentStr = redisService.getCacheObject(SecurityConstant.SHOP_COMMON_PROPORTION); - BigDecimal proportionPercent = new BigDecimal(proportionPercentStr); - if(proportionPercent==null){ - proportionPercent = new BigDecimal("30"); + if(StringUtils.isNotEmpty(proportionPercentStr)){ + proportionPercent = new BigDecimal(proportionPercentStr); } shopProportion.setProportionPercent(proportionPercent); shopProportion.setUpdateTime(new Date()); @@ -656,12 +675,17 @@ if(shopRelUserList!=null&&!shopRelUserList.isEmpty()){ StringJoiner shopUserJs = new StringJoiner(","); StringJoiner shopUserNameJs = new StringJoiner(","); + StringJoiner relUserOpenIds = new StringJoiner(","); for(ShopRelUser shopRelUser : shopRelUserList){ shopUserJs.add(shopRelUser.getUserId().toString()); shopUserNameJs.add(shopRelUser.getUserName()); + if (shopRelUser.getIsDefault()==1){ + relUserOpenIds.add(shopRelUser.getUserId().toString()); + } } mgtShopInfoVo.setRelUserIds(shopUserJs.toString()); mgtShopInfoVo.setRelUsers(shopUserNameJs.toString()); + mgtShopInfoVo.setRelUserOpenIds(relUserOpenIds.toString()); } //商户图片 List<ShopFile> shopFileList = shopFileService.listShopFileByShopId(shopId); @@ -945,16 +969,16 @@ MerHomeShopTotalVo orderVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData(); merHomeShopTotalVo.setShopId(shopId); merHomeShopTotalVo.setShopType(shop.getShopType()); - merHomeShopTotalVo.setTodayShop(orderVo.getTodayShop()); - merHomeShopTotalVo.setUnHandleOrder(orderVo.getUnHandleOrder()); - Integer taskCount = memberTaskService.getMemberIngTotal(shopId); - merHomeShopTotalVo.setTask(taskCount); - merHomeShopTotalVo.setShopTurnover(orderVo.getShopTurnover()); - merHomeShopTotalVo.setCycleSurp(orderVo.getCycleSurp()); - merHomeShopTotalVo.setExplorationSurp(orderVo.getExplorationSurp()); + merHomeShopTotalVo.setTodayShop(null == orderVo ? 0: orderVo.getTodayShop()); + merHomeShopTotalVo.setUnHandleOrder(null == orderVo ? 0: orderVo.getUnHandleOrder()); + List<Integer> taskCount = memberTaskService.getMemberIngTotal(shopId); + merHomeShopTotalVo.setTask(taskCount.size()); + merHomeShopTotalVo.setShopTurnover(null == orderVo ? BigDecimal.ZERO : orderVo.getShopTurnover()); + merHomeShopTotalVo.setCycleSurp(null == orderVo ? 0: orderVo.getCycleSurp()); + merHomeShopTotalVo.setExplorationSurp(null == orderVo ? 0: orderVo.getExplorationSurp()); merHomeShopTotalVo.setPlatformBirthdayFlag(shop.getPlatformBirthdayFlag()); merHomeShopTotalVo.setPlatformCouponFlag(shop.getPlatformCouponFlag()); - int unHandleReserve = shopAppointableTimeService.count(new LambdaQueryWrapper<ShopAppointableTime>().eq(ShopAppointableTime::getShopId, shopId).eq(ShopAppointableTime::getStatus, 1)); + int unHandleReserve = shopAppointableTimeService.count(new LambdaQueryWrapper<TShopAppointableTime>().eq(TShopAppointableTime::getShopId, shopId).eq(TShopAppointableTime::getStatus, 1)); merHomeShopTotalVo.setUnHandleReserve(unHandleReserve); return merHomeShopTotalVo; } @@ -1561,11 +1585,11 @@ // 通过远程订单服务获取商店总览信息 MerHomeShopTotalVo orderVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData(); // 获取商店任务计数 - Integer taskCount = memberTaskService.getMemberIngTotal(shopId); + List<Integer> taskCount = memberTaskService.getMemberIngTotal(shopId); // 设置员工商店信息对象的属性 staffShopInfoGetVo.setTodayReservation(0); staffShopInfoGetVo.setUnHandleOrder(orderVo.getUnHandleOrder()); - staffShopInfoGetVo.setShopTask(taskCount); + staffShopInfoGetVo.setShopTask(taskCount.size()); staffShopInfoGetVo.setShopTurnover(orderVo.getShopTurnover()); staffShopInfoGetVo.setCycleSurp(orderVo.getCycleSurp()); staffShopInfoGetVo.setExplorationSurp(orderVo.getExplorationSurp()); @@ -1952,4 +1976,115 @@ List<Shop> list = this.list(queryWrapper); return list; } + + @Override + public List<Shop> getFranchiseeIdsBYDealerId(Long shopId) { + return shopMapper.getFranchiseeIdsBYDealerId(shopId); + } + + /** + * 修改商户类型 + * @param shopId + * @return + */ + @Override + public R<Void> changeShopType(Long shopId) { + Shop shop = shopMapper.selectById(shopId); + if(null == shop|| shop.getDelFlag() != 0){ + return R.fail("商户不存在"); + } + //商户修改类型 1-经销商 2-加盟商 + shop.setShopType(shop.getShopType()==1?2:1); + if (shop.getShopType()==2){ + //经销商转加盟商: 先解绑该经销商下所有加盟商 + shopMapper.setBelongShopIdNull(shopId); + } else { + //该加盟商所属区域下的加盟商 改为该新转换的经销商 + List<String> areaCodes = Optional.ofNullable(shop.getSignAreaCode()) + .map(codes -> codes.split(";")) + .map(Arrays::asList) + .orElse(Collections.emptyList());//签约区域 + if (!areaCodes.isEmpty()){ + // 1. 查询符合条件的加盟商列表 + List<Long> shopIds = shopMapper.getShopListBySignAreaCodes(areaCodes); + + // 2. 批量更新(优化性能,避免循环中单条更新) + if(null != shopIds && !shopIds.isEmpty()){ + shopMapper.updateBelongShopIdBatch(shopIds,shop.getShopId()); + } + } + } + shop.setUpdateUserId(SecurityUtils.getUserId()); + shopMapper.updateById(shop); + + return R.ok(); + } + + @Override + public Page<MgtOneClinkSyncingShopPageVo> getMgtShopPageVoByShopIds(MGtOneClinkSyncingShopPageDTO dto) { + Page<MgtOneClinkSyncingShopPageVo> page = new Page<>(); + page.setSize(dto.getPageSize()); + page.setCurrent(dto.getPageNum()); + List<MgtOneClinkSyncingShopPageVo> mgtShopPageVoList = shopMapper.getMgtShopPageVoByShopIds(page,dto.getShopIds()); + return page.setRecords(mgtShopPageVoList); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public R updateShopByOneClinkSyncing(OneClinkSyncing oneClinkSyncing) { + if (StringUtils.isBlank(oneClinkSyncing.getShopIds())) { + return R.fail("请选择要更新的门店"); + } + // 1. 转换门店ID列表 + List<Long> shopIdList = Arrays.stream(oneClinkSyncing.getShopIds().split(",")) + .map(String::trim) + .filter(StringUtils::isNotBlank) + .map(Long::parseLong) + .collect(Collectors.toList()); + // 批量删除封面和Banner图 + shopFileService.deleteBatchByShopIds(shopIdList); + //批量添加封面图 + List<ShopFile> coverUrlList = shopIdList.stream() + .map(shopId -> new ShopFile() + .setShopId(shopId) + .setFileType(1) + .setFileUrl(oneClinkSyncing.getCoverUrl()) + .setDelFlag(0)) + .collect(Collectors.toList()); + shopFileService.saveBatch(coverUrlList); + //批量添加banner图 + List<String> bannerUrlList = Arrays.stream(oneClinkSyncing.getDetailsPicture().split(",")) + .map(String::trim) + .filter(StringUtils::isNotBlank) + .collect(Collectors.toList()); + List<ShopFile> bannerList = new ArrayList<>(); + for (Long shopId : shopIdList) { + for (String bannerUrl : bannerUrlList) { + bannerList.add(new ShopFile() + .setShopId(shopId) + .setFileType(2) // Banner图 + .setFileUrl(bannerUrl) + .setDelFlag(0)); + } + } + shopFileService.saveBatch(bannerList); + + //批量修改门店信息 + oneClinkSyncing.setShopIdList(shopIdList); + shopMapper.updateShopByOneClinkSyncing(oneClinkSyncing); + return R.ok(); + } + + @Override + public List<String> getRelUserShop(Long userId) { + List<ShopRelUser> shopRelUserList = shopRelUserService.getByUserId(userId); + List<Long> shopIds = shopRelUserList.stream().map(ShopRelUser::getShopId).collect(Collectors.toList()); + if(!shopIds.isEmpty()){ + List<Shop> shops = shopMapper.selectList(new LambdaQueryWrapper<Shop>() + .ne(Shop::getShopStatus,-1) + .in(Shop::getShopId,shopIds)); + return shops.stream().map(Shop::getShopName).collect(Collectors.toList()); + } + return null; + } } -- Gitblit v1.7.1