From efe79e640c4598f52c2d1032fcead000edf8049e Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期三, 28 六月 2023 10:29:53 +0800 Subject: [PATCH] 统计bug和验证优化 --- ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java | 323 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 308 insertions(+), 15 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 a1d2674..6a6339d 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 @@ -10,22 +10,21 @@ import com.ruoyi.common.core.utils.uuid.IdUtils; import com.ruoyi.common.security.utils.CodeFactoryUtil; import com.ruoyi.shop.domain.dto.*; +import com.ruoyi.shop.domain.pojo.ShopTotal; import com.ruoyi.shop.domain.pojo.shop.*; import com.ruoyi.shop.domain.pojo.task.ShopFile; import com.ruoyi.shop.domain.vo.*; import com.ruoyi.shop.mapper.shop.ShopMapper; import com.ruoyi.shop.service.shop.*; +import com.ruoyi.shop.service.task.MemberTaskService; import com.ruoyi.shop.service.task.ShopFileService; import com.ruoyi.system.api.constant.AppErrorConstant; -import com.ruoyi.system.api.domain.dto.AppMemberBindingDto; -import com.ruoyi.system.api.domain.dto.MgtShopIdByCodeDto; +import com.ruoyi.system.api.domain.dto.*; 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.sys.SysUser; -import com.ruoyi.system.api.domain.vo.MerHomeShopTotalVo; -import com.ruoyi.system.api.domain.vo.MgtShopIdByCodeVo; -import com.ruoyi.system.api.domain.vo.MgtSimpleShopVo; +import com.ruoyi.system.api.domain.vo.*; import com.ruoyi.system.api.service.RemoteConfigService; import com.ruoyi.system.api.service.RemoteMemberService; import com.ruoyi.system.api.service.RemoteOrderService; @@ -36,10 +35,8 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.text.ParseException; -import java.util.Date; -import java.util.List; -import java.util.Objects; -import java.util.StringJoiner; +import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -92,7 +89,14 @@ @Resource private ShopProportionService shopProportionService; + @Resource + private RemoteConfigService remoteConfigService; + @Resource + private ShopTotalService shopTotalService; + + @Resource + private MemberTaskService memberTaskService; /** * 获取商户详情 @@ -137,6 +141,7 @@ public void createShop(MgtEditShopDto mgtEditShopDto){ Shop shop = new Shop(); Boolean newShop = false; + BigDecimal zeroBig = BigDecimal.ZERO; Shop shopSame = this.getOne(new LambdaQueryWrapper<Shop>().eq(Shop::getDelFlag,0).eq(Shop::getShopName,mgtEditShopDto.getShopName())); if(mgtEditShopDto.getShopId()!=null){ if(shopSame!=null&&!Objects.equals(shopSame.getShopId(),mgtEditShopDto.getShopId())){ @@ -266,8 +271,77 @@ shopProportion.setUpdateTime(new Date()); shopProportion.setUpdateUserId(mgtEditShopDto.getUserId()); shopProportionService.save(shopProportion); + //商户统计 + ShopTotal shopTotal = new ShopTotal(); + shopTotal.setShopId(shop.getShopId()); + shopTotal.setDelFlag(0); + shopTotal.setLastPayMoney(zeroBig); + shopTotal.setTotalActivityCount(0); + shopTotal.setTotalOrder(0); + shopTotal.setTotalCycleOrder(0); + shopTotal.setToltaExperienceOrder(0); + shopTotal.setTotalServiceOrder(0); + shopTotal.setTotalGoodsOrder(0); + shopTotal.setTotalServiceCount(0); + shopTotal.setUsedServiceCount(0); + shopTotal.setUseableServiceCount(0); + shopTotal.setTotalCycleService(0); + shopTotal.setUsedCycleService(0); + shopTotal.setUseableCycleService(0); + shopTotal.setTotalCyclePerson(0); + shopTotal.setUseableCyclePerson(0); + shopTotal.setTotalServiceService(0); + shopTotal.setUsedServiceService(0); + shopTotal.setUseableServiceService(0); + shopTotal.setTotalServicePerson(0); + shopTotal.setUseableServicePerson(0); + shopTotal.setTotalExperienceService(0); + shopTotal.setUsedExperienceService(0); + shopTotal.setUseableExperienceService(0); + shopTotal.setTotalExperiencePerson(0); + shopTotal.setUseableExperiencePerson(0); + shopTotal.setTotalOrderMoney(zeroBig); + shopTotal.setTotalCycleMoney(zeroBig); + shopTotal.setTotalExperienceMoney(zeroBig); + shopTotal.setTotalServiceMoney(zeroBig); + shopTotal.setTotalGoodsMoney(zeroBig); + shopTotalService.save(shopTotal); } } + + /** + * @description 终止合作 + * @author jqs + * @date 2023/6/20 12:01 + * @param mgtTerminateCooperationDto + * @return void + */ + @Override + public void terminateMgtCooperation(MgtTerminateCooperationDto mgtTerminateCooperationDto){ + Shop shop = this.getById(mgtTerminateCooperationDto.getShopId()); + if(mgtTerminateCooperationDto.getCooperativeFlag()==1){ + /*Date coopStartDate = shop.getCooperationStartTime(); + Date coopEndDate = shop.getCooperationEndTime(); + Date nowTime = new Date(); + //判断合作时间 没在时间内不能开启 + if(coopStartDate.compareTo(nowTime)>0&&coopEndDate.compareTo(nowTime)<0){ + throw new ServiceException(AppErrorConstant.COOPERATION_TIME_ERROR); + }*/ + shop.setCooperativeFlag(1); + if(shop.getShopStatus()==2&&shop.getFrozenFlag()==0){ + shop.setShopStatus(1); + }else if(shop.getShopStatus()==2&&shop.getFrozenFlag()==1){ + shop.setShopStatus(0); + } + }else{ + shop.setCooperativeFlag(0); + shop.setShopStatus(2); + } + shop.setUpdateTime(new Date()); + shop.setUpdateUserId(mgtTerminateCooperationDto.getUserId()); + this.saveOrUpdate(shop); + } + /** * 修改合作时间 @@ -310,11 +384,58 @@ */ @Override public List<MgtShopPageVo> pageMgtShop(Page page, MgtShopPageDto mgtShopPageDto){ - //处理标签为正则表达 - if(StringUtils.isNotBlank(mgtShopPageDto.getShopTags())){ - mgtShopPageDto.setShopTags(mgtShopPageDto.getShopTags().replace(",","|")); + if (StringUtils.isNotBlank(mgtShopPageDto.getShopTags())) { + mgtShopPageDto.setShopTags(mgtShopPageDto.getShopTags().replace(",", "|")); } + // 分页查询商铺信息 List<MgtShopPageVo> mgtShopPageVoList = shopMapper.pageMgtShop(page, mgtShopPageDto); + // 如果查询结果不为空 + if (!mgtShopPageVoList.isEmpty()) { + // 创建签约用户ID集合和所属用户ID集合 + HashSet<Long> signUserIdSet = new HashSet<>(); + HashSet<Long> belongUserIdSet = new HashSet<>(); + // 遍历查询结果,将签约用户和所属用户添加到对应的集合中 + for (MgtShopPageVo shopPageVo : mgtShopPageVoList) { + if (shopPageVo.getSignUserId() != null) { + signUserIdSet.add(shopPageVo.getSignUserId()); + } + if (shopPageVo.getBelongUserId() != null) { + belongUserIdSet.add(shopPageVo.getBelongUserId()); + } + } + MgtBaseBathDto mgtBaseBathDto; + Map<Long, MgtSysSimpleUserVo> signUserMap = null; + Map<Long, MgtSysSimpleUserVo> belongUserMap = null; + if(signUserIdSet!=null&&!signUserIdSet.isEmpty()){ + String signUserString = String.join(",", signUserIdSet.stream().map(Object::toString).collect(Collectors.toList())); + mgtBaseBathDto = new MgtBaseBathDto(); + mgtBaseBathDto.setIds(signUserString); + List<MgtSysSimpleUserVo> signUserVoList = remoteConfigService.listSimpleUserVo(mgtBaseBathDto).getData(); + signUserMap = signUserVoList.stream() + .collect(Collectors.toMap(MgtSysSimpleUserVo::getUserId, Function.identity())); + } + if(belongUserIdSet!=null&&!belongUserIdSet.isEmpty()){ + // 将签约用户ID集合和所属用户ID集合转为字符串 + String belongUserString = String.join(",", belongUserIdSet.stream().map(Object::toString).collect(Collectors.toList())); + // 查询签约用户和所属用户的详细信息 + mgtBaseBathDto = new MgtBaseBathDto(); + mgtBaseBathDto.setIds(belongUserString); + List<MgtSysSimpleUserVo> belongUserVoList = remoteConfigService.listSimpleUserVo(mgtBaseBathDto).getData(); + belongUserMap = belongUserVoList.stream() + .collect(Collectors.toMap(MgtSysSimpleUserVo::getUserId, Function.identity())); + } + // 遍历查询结果,将签约用户和所属用户的详细信息添加到商铺信息中 + for (MgtShopPageVo shopPageVo : mgtShopPageVoList) { + if (signUserMap!=null&&!signUserMap.isEmpty()&&shopPageVo.getSignUserId() != null) { + shopPageVo.setSignUser(signUserMap.get(shopPageVo.getSignUserId()).getNickName()); + } + if (belongUserMap!=null&&!belongUserMap.isEmpty()&&shopPageVo.getBelongUserId() != null) { + shopPageVo.setBelongUser(belongUserMap.get(shopPageVo.getBelongUserId()).getNickName()); + shopPageVo.setBelongDept(belongUserMap.get(shopPageVo.getBelongUserId()).getDeptName()); + } + } + } + // 返回商铺信息 return mgtShopPageVoList; } @@ -464,9 +585,17 @@ merHomeShopTotalVo.setShopId(shopId); Shop shop = this.getById(shopId); merHomeShopTotalVo.setShopType(shop.getShopType()); - Integer task = 0; - merHomeShopTotalVo.setTask(task); - merHomeShopTotalVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData(); + MerHomeShopTotalVo orderVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData(); + ShopTotal shopTotal = shopTotalService.getById(shopId); + 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(shopTotal.getUseableCyclePerson()); + merHomeShopTotalVo.setExplorationSurp(shopTotal.getUseableExperiencePerson()); return merHomeShopTotalVo; } @@ -600,4 +729,168 @@ public List<MgtShopAuthPageVo> pageMgtShopAuth(Page page, MgtShopAuthPageDto mgtShopAuthPageDto){ return shopMapper.pageMgtShopAuth(page, mgtShopAuthPageDto); } + + /** + * @description boardShopTotal + * @param + * @return MgtBulletinBoardVo + * @author jqs34 + * @date 2023/6/18 16:59 + */ + @Override + public MgtBulletinBoardVo boardShopTotal(){ + MgtBulletinBoardVo mgtBulletinBoardVoShop = shopMapper.shopTotal(); + return mgtBulletinBoardVoShop; + } + + /** + * @description 商户进件 + * @author jqs + * @date 2023/6/19 11:02 + * @param mgtShopAuthDto + * @return void + */ + @Override + public void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto){ + ShopAuthentication shopAuthentication = shopAuthenticationService.getById(mgtShopAuthDto.getAuthId()); + BeanUtils.copyProperties(mgtShopAuthDto , shopAuthentication); + shopAuthentication.setAuditStatus(3); + shopAuthenticationService.saveOrUpdate(shopAuthentication); + } + + /** + * @description 获取平台商户统计 + * @author jqs + * @date 2023/6/21 16:25 + * @param mgtBasePlatformDto + * @return MgtPlTotalShopTotalVo + */ + @Override + public MgtPlTotalShopTotalVo getPlTotalShopTotal(MgtBasePlatformDto mgtBasePlatformDto) { + //获取需要关联的用户id集合 + if (mgtBasePlatformDto.getDeptId() != null) { + List<Long> userIdList = new ArrayList<>(); + if (mgtBasePlatformDto.getUserId() != null) { + userIdList.add(mgtBasePlatformDto.getUserId()); + } else { + MgtUserIdByDept mgtUserIdByDept = new MgtUserIdByDept(); + mgtUserIdByDept.setDeptId(mgtBasePlatformDto.getUserId()); + mgtUserIdByDept = configService.getUserIdByDept(mgtUserIdByDept).getData(); + userIdList = mgtUserIdByDept.getUserIdList(); + } + if (!userIdList.isEmpty()) { + mgtBasePlatformDto.setUserIdList(userIdList); + } + } + //获取基础统计 + MgtPlTotalShopTotalVo plTotalShopTotalVo = shopMapper.getPlTotalShopTotal(); + plTotalShopTotalVo.setSignTotal(0); + List<Long> shopIdList = shopMapper.listShopIdByTotal(mgtBasePlatformDto); + if (!shopIdList.isEmpty()) { + MgtShopTotalMemberVo shopTotalMemberVo = remoteMemberService.getUserTotalByShopId(shopIdList).getData(); + plTotalShopTotalVo.setManTotal(shopTotalMemberVo.getManTotal()); + plTotalShopTotalVo.setWomenTotal(shopTotalMemberVo.getWomenTotal()); + plTotalShopTotalVo.setAgeKey(shopTotalMemberVo.getAgeKey()); + plTotalShopTotalVo.setAgeValue(shopTotalMemberVo.getAgeValue()); + } + //获取商户类型 + List<MgtMapTotalVo> shopTypeTotal = shopMapper.listShopTypeTotal(mgtBasePlatformDto); + if (shopTypeTotal != null && shopTypeTotal.size() > 0) { + shopTypeTotal = listRemoveNull(shopTypeTotal); + plTotalShopTotalVo.setShopTypeVos(shopTypeTotal); + } + //获取商户状态 + List<MgtMapTotalVo> shopStatusTotal = shopMapper.listShopStatusTotal(mgtBasePlatformDto); + if (shopStatusTotal != null && shopStatusTotal.size() > 0) { + shopStatusTotal = listRemoveNull(shopStatusTotal); + plTotalShopTotalVo.setShopStatusVos(shopStatusTotal); + } + //获取区域排名 + List<MgtMapTotalVo> shopAreaRank = shopMapper.listShopAreaRank(mgtBasePlatformDto); + if (shopAreaRank != null && shopAreaRank.size() > 0) { + shopAreaRank = listRemoveNull(shopAreaRank); + plTotalShopTotalVo.setAreaRankVos(shopAreaRank); + } + //获取销售排名 + List<MgtMapTotalVo> shopSalesRank = shopMapper.listShopSalesRank(mgtBasePlatformDto); + if (shopSalesRank != null && shopSalesRank.size() > 0) { + String[] shopSalesKey = new String[shopSalesRank.size()]; + Integer[] shopSalesValue = new Integer[shopSalesRank.size()]; + // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 + for (int i = 0; i < shopSalesRank.size(); i++) { + shopSalesKey[i] = shopSalesRank.get(i).getMapKey(); + shopSalesValue[i] = shopSalesRank.get(i).getMapValue(); + } + plTotalShopTotalVo.setShopSalesRankKey(shopSalesKey); + plTotalShopTotalVo.setShopSalesRankValue(shopSalesValue); + } + //获取推荐 + List<MgtMapTotalVo> shopRecommendRank = shopMapper.listShopRecommendRank(mgtBasePlatformDto); + if (shopRecommendRank != null && shopRecommendRank.size() > 0) { + shopRecommendRank = listRemoveNull(shopRecommendRank); + plTotalShopTotalVo.setShopRecommendVos(shopRecommendRank); + } + return plTotalShopTotalVo; + } + + /** + * @description 去除空字符串 + * @author jqs + * @date 2023/6/27 17:35 + * @param mgtMapTotalVos + * @return List<MgtMapTotalVo> + */ + private List<MgtMapTotalVo> listRemoveNull(List<MgtMapTotalVo> mgtMapTotalVos){ + for (int i = 0; i < mgtMapTotalVos.size(); i++) { + if(StringUtils.isBlank(mgtMapTotalVos.get(i).getMapKey())){ + mgtMapTotalVos.remove(i); + } + } + return mgtMapTotalVos; + } + + /** + * @description 获取平台统计shopId + * @param mgtBasePlatformDto + * @return List<Long> + * @author jqs34 + * @date 2023/6/23 14:12 + */ + @Override + public List<Long> listShopIdByPlTotal(MgtBasePlatformDto mgtBasePlatformDto){ + List<Long> shopIdList = shopMapper.listShopIdByPlTotal(mgtBasePlatformDto); + return shopIdList; + } + + + /** + * @description 获取商户审核资料 + * @author jqs + * @date 2023/6/25 10:37 + * @param authId + * @return MgtShopAuthGetVo + */ + @Override + public MgtShopAuthGetVo getMgtShopAuth(String authId){ + MgtShopAuthGetVo shopAuthGetVo = new MgtShopAuthGetVo(); + ShopAuthentication shopAuthentication = shopAuthenticationService.getById(authId); + BeanUtils.copyProperties(shopAuthentication, shopAuthGetVo); + return shopAuthGetVo; + } + + /** + * @description 获取商户验证信息 + * @author jqs + * @date 2023/6/26 10:38 + * @param authId + * @return MgtShopAuthCodeVo + */ + @Override + public MgtShopAuthCodeVo getMgtShopAuthCode(String authId){ + MgtShopAuthCodeVo mgtShopAuthCodeVo = new MgtShopAuthCodeVo(); + ShopAuthentication shopAuthentication = shopAuthenticationService.getById(authId); + mgtShopAuthCodeVo.setSignUrl(shopAuthentication.getSignUrl()); + mgtShopAuthCodeVo.setLegalValidationUrl(shopAuthentication.getLegalValidationUrl()); + return mgtShopAuthCodeVo; + } } -- Gitblit v1.7.1