From 0af329d7210a84c97ec071735a2d0d1d7b0b785c Mon Sep 17 00:00:00 2001 From: zhanglin8526 <852614290@qq.com> Date: 星期六, 26 八月 2023 13:58:48 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/HongRuiTang --- ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java | 196 ++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 169 insertions(+), 27 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 b2915ae..d5755f5 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 @@ -8,6 +8,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsResult; import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsStatusResult; +import com.github.binarywang.wxpay.bean.ecommerce.ProfitSharingReceiverRequest; +import com.github.binarywang.wxpay.bean.ecommerce.ProfitSharingReceiverResult; import com.github.binarywang.wxpay.exception.WxPayException; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.exception.ServiceException; @@ -20,6 +22,7 @@ import com.ruoyi.shop.domain.dto.*; import com.ruoyi.shop.domain.pojo.shop.*; import com.ruoyi.shop.domain.pojo.task.ShopFile; +import com.ruoyi.shop.domain.pojo.task.ShopTask; import com.ruoyi.shop.domain.vo.*; import com.ruoyi.shop.enums.WxApplyMentStateEnum; import com.ruoyi.shop.mapper.shop.ShopMapper; @@ -36,6 +39,7 @@ 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.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -55,6 +59,7 @@ * @since 2023-04-25 */ @Service +@Slf4j public class ShopServiceImpl extends ServiceImpl<ShopMapper, Shop> implements ShopService { @Resource @@ -122,6 +127,14 @@ @Resource private WechatPayUtils wechatPayUtils; + + @Resource + private ShopDetailService shopDetailService; + + @Resource + private RemoteUserService remoteUserService; + + /** * 获取商户详情 @@ -781,8 +794,8 @@ */ @Override public StaffHomeShopTotalVo getStaffHomeTotal(Long userId){ - List<Long> userIds = null; - List<Long> shopIds = null; + List<Long> userIds = new ArrayList<>(); + List<Long> shopIds = new ArrayList<>(); //如果是leader 查询leader下面所有的员工下的所有shopId if(remoteSysStaffService.isLeader()){ userIds = sysUserService.getUserIdsByDept(userId).getData(); @@ -790,18 +803,35 @@ MgtBasePlatformDto mgtBasePlatformDto = new MgtBasePlatformDto(); mgtBasePlatformDto.setUserIdList(userIds); shopIds = shopMapper.listShopIdByTotal(mgtBasePlatformDto); - Shop shop = this.getShopByBelongUserId(userId); - shopIds.add(shop.getShopId()); - userIds.add(userId); + List<Shop> shopList = this.getShopByBelongUserId(userId); + if(shopList!=null&&!shopList.isEmpty()){ + for(Shop shop : shopList){ + shopIds.add(shop.getShopId()); + } + userIds.add(userId); + } }else { //普通员工查询商户归属的shopId - Shop shop = this.getShopByBelongUserId(userId); - - shopIds.add(shop.getShopId()); + List<Shop> shopList = this.getShopByBelongUserId(userId); + if(shopList!=null&&!shopList.isEmpty()){ + for(Shop shop : shopList){ + shopIds.add(shop.getShopId()); + } + } } //分别查询 - StaffHomeShopTotalVo staffHomeShopTotalVo = shopMapper.getStaffHomeTotal(userIds); - Integer shopTaskCount = shopTaskService.getShopIngTotal(shopIds); + StaffHomeShopTotalVo staffHomeShopTotalVo = new StaffHomeShopTotalVo(); + if(userIds!=null&&!userIds.isEmpty()){ + staffHomeShopTotalVo = shopMapper.getStaffHomeTotal(userIds); + }else{ + staffHomeShopTotalVo.setShopTotal(0); + staffHomeShopTotalVo.setAgencyTotal(0); + staffHomeShopTotalVo.setDealerTotal(0); + } + Integer shopTaskCount = 0; + if(shopIds!=null&&!shopIds.isEmpty()){ + shopTaskService.getShopIngTotal(shopIds); + } staffHomeShopTotalVo.setFollowMember(0); staffHomeShopTotalVo.setNewMember(0); staffHomeShopTotalVo.setShopTask(shopTaskCount); @@ -1002,23 +1032,28 @@ public void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto) throws WxPayException { ShopAuthentication shopAuthentication = shopAuthenticationService.getById(mgtShopAuthDto.getAuthId()); Shop shop = this.getByShopId(shopAuthentication.getShopId()); - String applyNumber = IdUtils.simpleUUID(); + if(mgtShopAuthDto.getBlBusinessFoeverFlag()!=null&&mgtShopAuthDto.getBlBusinessFoeverFlag()==1){ - mgtShopAuthDto.setBlBusinessDeanline(mgtShopAuthDto.getBlBusinessStartTime()+",长期"); + mgtShopAuthDto.setBlBusinessDeanline("长期"); } if(mgtShopAuthDto.getLpIcForeverFlag()!=null&&mgtShopAuthDto.getLpIcForeverFlag()==1){ mgtShopAuthDto.setLpIcEndDate("长期"); } BeanUtils.copyProperties(mgtShopAuthDto , shopAuthentication); - shopAuthentication.setApplyNumber(applyNumber); + String applyNumber = shopAuthentication.getApplyNumber(); + if(StringUtils.isBlank(applyNumber)){ + applyNumber = IdUtils.simpleUUID(); + shopAuthentication.setApplyNumber(applyNumber); + } ApplymentsResult applymentsResult; try { applymentsResult = wechatPayUtils.ecommerceApply(shopAuthentication,applyNumber,shop); } catch (Exception e) { log.debug("-----"+shop.getShopId()+":进件异常-----"); - throw new RuntimeException(e); + throw new ServiceException(e.getMessage()); } shopAuthentication.setAuditStatus(3); + shopAuthentication.setApplymentId(applymentsResult.getApplymentId()); shopAuthenticationService.saveOrUpdate(shopAuthentication); } @@ -1076,13 +1111,17 @@ plTotalShopTotalVo.setAreaRankVos(shopAreaRank); } //获取销售排名 - List<MgtMapIntTotalVo> shopSalesRank = shopMapper.listShopSalesRank(mgtBasePlatformDto); + List<MgtMapBigTotalVo> shopSalesRank = remoteOrderService.shopSalesRank(shopIdList).getData(); if (shopSalesRank != null && shopSalesRank.size() > 0) { String[] shopSalesKey = new String[shopSalesRank.size()]; - Integer[] shopSalesValue = new Integer[shopSalesRank.size()]; + BigDecimal[] shopSalesValue = new BigDecimal[shopSalesRank.size()]; // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 + Long shopId; + Shop shop; for (int i = 0; i < shopSalesRank.size(); i++) { - shopSalesKey[i] = shopSalesRank.get(i).getMapKey(); + shopId = Long.valueOf(shopSalesRank.get(i).getMapKey()); + shop = this.getByShopId(shopId); + shopSalesKey[i] = shop.getShopName(); shopSalesValue[i] = shopSalesRank.get(i).getMapValue(); } plTotalShopTotalVo.setShopSalesRankKey(shopSalesKey); @@ -1216,11 +1255,11 @@ * @return Shop */ @Override - public Shop getShopByBelongUserId(Long userId){ + public List<Shop> getShopByBelongUserId(Long userId){ LambdaQueryWrapper<Shop> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Shop::getDelFlag,0); queryWrapper.eq(Shop::getBelongUserId,userId); - return this.getOne(queryWrapper,false); + return this.list(queryWrapper); } /** @@ -1246,14 +1285,19 @@ */ @Override public StaffShopSimpleTotalVo getStaffSimpleTotal(Long userId){ - List<Long> userIdList = null; + List<Long> userIdList = new ArrayList<>(); if(remoteSysStaffService.isLeader()){ userIdList = sysUserService.getUserIdsByDept(userId).getData(); userIdList.add(userId); }else { userIdList.add(userId); } - return shopMapper.getStaffSimpleTotal(userIdList); + StaffShopSimpleTotalVo shopTotal = shopMapper.getStaffSimpleTotal(1,userIdList); + StaffShopSimpleTotalVo agencyTotal = shopMapper.getStaffSimpleTotal(2,userIdList); + shopTotal.setAgencyTotal(agencyTotal.getShopTotal()); + shopTotal.setOpenAgencyTotal(agencyTotal.getOpenShopTotal()); + shopTotal.setCloseAgencyTotal(agencyTotal.getCloseAgencyTotal()); + return shopTotal; } /** @@ -1287,8 +1331,6 @@ merHomeShopTotalVo.setShopId(shopId); // 通过远程订单服务获取商店总览信息 MerHomeShopTotalVo orderVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData(); - // 获取商店总计信息 - ShopTotal shopTotal = shopTotalService.getById(shopId); // 获取商店任务计数 Integer taskCount = memberTaskService.getMemberIngTotal(shopId); // 设置员工商店信息对象的属性 @@ -1296,10 +1338,11 @@ staffShopInfoGetVo.setUnHandleOrder(orderVo.getUnHandleOrder()); staffShopInfoGetVo.setShopTask(taskCount); staffShopInfoGetVo.setShopTurnover(orderVo.getShopTurnover()); - staffShopInfoGetVo.setCycleSurp(shopTotal.getUseableCyclePerson()); - staffShopInfoGetVo.setExplorationSurp(shopTotal.getUseableExperiencePerson()); + staffShopInfoGetVo.setCycleSurp(orderVo.getCycleSurp()); + staffShopInfoGetVo.setExplorationSurp(orderVo.getExplorationSurp()); staffShopInfoGetVo.setShopId(shopId); staffShopInfoGetVo.setShopName(shop.getShopName()); + staffShopInfoGetVo.setShopType(shop.getShopType()); staffShopInfoGetVo.setShopPicture(shopPicture); staffShopInfoGetVo.setBusinessStartTime(shop.getBusinessStartTime()); staffShopInfoGetVo.setBusinessEndTime(shop.getBusinessEndTime()); @@ -1325,8 +1368,8 @@ if (shopIdList != null && !shopIdList.isEmpty()) { Integer count = remoteMemberService.getAreaNewMember(shopIdList).getData(); staffShopInfoGetVo.setNewAreaMember(count); - ShopTotal shopTotalAll = shopTotalService.shopsTotalByIds(shopIdList); - staffShopInfoGetVo.setAreaTurnover(shopTotalAll.getTotalOrderMoney()); + AgencyTotalVo agencyTotalVo = remoteOrderService.getAgencyTotalVo(shopIdList).getData(); + staffShopInfoGetVo.setAreaTurnover(agencyTotalVo.getAreaTurnover()); } } // 如果商店的扩展联系方式不为空,则设置员工商店信息对象的扩展联系方式列表 @@ -1377,6 +1420,8 @@ List<ExtendContactsVo> extendContactsVoList = staffShopECEditDto.getExtendContactsVoList(); if(extendContactsVoList!=null&&!extendContactsVoList.isEmpty()){ extendContacts = JSON.toJSONString(extendContactsVoList); + }else{ + extendContacts = ""; } shop.setExtendContacts(extendContacts); shop.setShopId(staffShopECEditDto.getShopId()); @@ -1404,7 +1449,9 @@ @Override public void queryEcommerceApplyMentsStatus() { + log.info("开始获取微信二级商户待检查列表"); List<ShopAuthentication> list = shopAuthenticationService.getShopAuthNeedUpdateStatus(); + log.info("定时检查微信二级商户"+list.toString()); list.forEach(item -> queryApplyStatusByApplymentId(item.getApplymentId(), item.getShopId())); } @@ -1414,6 +1461,7 @@ */ private void queryApplyStatusByApplymentId(String applymentId, Long shopId) { try { + log.debug("定时检查微信二级商户applymentId"+applymentId); if (StringUtils.isNotBlank(applymentId)) { ApplymentsStatusResult result = wechatPayUtils.queryApplyStatusByApplymentId(applymentId); shopAuthenticationService.updateAuditStatusByApplymentId(applymentId, result); @@ -1465,4 +1513,98 @@ throw new RuntimeException(e); } } + + /** + * @description 修改店铺详细资料 + * @author jqs + * @date 2023/8/22 14:51 + * @param staffShopDetailDto + * @return void + */ + @Override + public void editShopDetail(StaffShopDetailDto staffShopDetailDto){ + ShopDetail shopDetail = shopDetailService.getById(staffShopDetailDto.getShopId()); + if(shopDetail == null){ + shopDetail = new ShopDetail(); + shopDetail.setDelFlag(0); + } + BeanUtils.copyProperties(staffShopDetailDto, shopDetail); + List<StaffCustomerDto> staffCustomerDtoList = staffShopDetailDto.getStaffCustomerDtoList(); + if(staffCustomerDtoList!=null&&!staffCustomerDtoList.isEmpty()){ + StringJoiner customerNameSJ = new StringJoiner(","); + StringJoiner customerMobileSJ = new StringJoiner(","); + for(StaffCustomerDto staffCustomerDto : staffCustomerDtoList){ + customerNameSJ.add(staffCustomerDto.getCustomerName()); + customerMobileSJ.add(staffCustomerDto.getCustomerMobile()); + } + shopDetail.setCustomerName(customerNameSJ.toString()); + shopDetail.setCustomerMobile(customerMobileSJ.toString()); + } + shopDetailService.saveOrUpdate(shopDetail); + } + + /** + * @description 获取店铺详细资料 + * @author jqs + * @date 2023/8/22 16:15 + * @param shopId + * @return StaffShopDetailVo + */ + @Override + public StaffShopDetailVo getShopDetail(Long shopId){ + ShopDetail shopDetail = shopDetailService.getById(shopId); + StaffShopDetailVo staffShopDetailVo = new StaffShopDetailVo(); + if(shopDetail!=null){ + BeanUtils.copyProperties(shopDetail, staffShopDetailVo); + //处理联系人 + String customerName = shopDetail.getCustomerName(); + String customerMobile = shopDetail.getCustomerMobile(); + List<StaffCustomerDto> staffCustomerDtoList = new ArrayList<>(); + String[] customerNameArr = customerName.split(","); + String[] customerMobileArr = customerMobile.split(","); + staffShopDetailVo.setContactName(customerNameArr[0]); + StaffCustomerDto staffCustomerDto; + for(int i=0;i<customerNameArr.length;i++){ + staffCustomerDto = new StaffCustomerDto(); + staffCustomerDto.setCustomerName(customerNameArr[i]); + staffCustomerDto.setCustomerMobile(customerMobileArr[i]); + staffCustomerDtoList.add(staffCustomerDto); + } + staffShopDetailVo.setStaffCustomerDtoList(staffCustomerDtoList); + } + //归属客户 + Shop shop = this.getByShopId(shopId); + Long belongUserId = shop.getBelongUserId(); + if(belongUserId!=null){ + SysUser sysUser = remoteUserService.getSysUser(belongUserId).getData(); + if(sysUser!=null){ + staffShopDetailVo.setBelongUser(sysUser.getNickName()); + } + } + //最近任务时间 + ShopTask shopTask = shopTaskService.getLastTask(shopId); + if(shopTask!=null){ + staffShopDetailVo.setNextTaskDate(shopTask.getTaskDate()); + } + staffShopDetailVo.setShopId(shopId); + return staffShopDetailVo; + } + + + /** + * @description + * @author jqs + * @date 2023/8/23 9:44 + * @param + * @return void + */ + @Override + public ProfitSharingReceiverResult addProfitSharingReceiver(ProfitSharingReceiverRequest request){ + try { + ProfitSharingReceiverResult result = wechatPayUtils.addProfitSharingReceiver(request); + return result; + } catch (WxPayException e) { + throw new RuntimeException(e); + } + } } -- Gitblit v1.7.1