| | |
| | | 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.profitsharingV3.ProfitSharingReceiver; |
| | | 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; |
| | |
| | | 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; |
| | |
| | | * @since 2023-04-25 |
| | | */ |
| | | @Service |
| | | @Slf4j |
| | | public class ShopServiceImpl extends ServiceImpl<ShopMapper, Shop> implements ShopService { |
| | | |
| | | @Resource |
| | |
| | | |
| | | } |
| | | //验证商户名唯一 |
| | | Shop shopSame = this.getOne(new LambdaQueryWrapper<Shop>().eq(Shop::getDelFlag,0).eq(Shop::getShopName,mgtEditShopDto.getShopName())); |
| | | //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())){ |
| | |
| | | shop.setCreateTime(new Date()); |
| | | shop.setCreateUserId(mgtEditShopDto.getUserId()); |
| | | shop.setFrozenFlag(0); |
| | | shop.setCooperativeFlag(0); |
| | | shop.setCooperativeFlag(1); |
| | | shop.setAuthFlag(0); |
| | | newShop = true; |
| | | } |
| | |
| | | */ |
| | | @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(); |
| | |
| | | MgtBasePlatformDto mgtBasePlatformDto = new MgtBasePlatformDto(); |
| | | mgtBasePlatformDto.setUserIdList(userIds); |
| | | shopIds = shopMapper.listShopIdByTotal(mgtBasePlatformDto); |
| | | Shop shop = this.getShopByBelongUserId(userId); |
| | | if(shop!=null){ |
| | | shopIds.add(shop.getShopId()); |
| | | 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()); |
| | | } |
| | | userIds.add(userId); |
| | | } |
| | | } |
| | | //分别查询 |
| | | StaffHomeShopTotalVo staffHomeShopTotalVo = new StaffHomeShopTotalVo(); |
| | |
| | | if(shop.getFrozenFlag()==1){ |
| | | String userKey = SecurityUtils.getUserKey(); |
| | | redisService.deleteObject(CacheConstants.LOGIN_TOKEN_KEY+userKey); |
| | | throw new ServiceException("商户已被冻结",401); |
| | | throw new ServiceException("商户已被冻结,请联系管理员",401); |
| | | } |
| | | merHomeShopTotalVo.setShopType(shop.getShopType()); |
| | | MerHomeShopTotalVo orderVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData(); |
| | |
| | | throw new ServiceException(e.getMessage()); |
| | | } |
| | | shopAuthentication.setAuditStatus(3); |
| | | shopAuthentication.setApplymentId(applymentsResult.getApplymentId()); |
| | | shopAuthenticationService.saveOrUpdate(shopAuthentication); |
| | | } |
| | | |
| | |
| | | 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); |
| | |
| | | * @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); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @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); |
| | |
| | | merHomeShopTotalVo.setShopId(shopId); |
| | | // 通过远程订单服务获取商店总览信息 |
| | | MerHomeShopTotalVo orderVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData(); |
| | | // 获取商店总计信息 |
| | | ShopTotal shopTotal = shopTotalService.getById(shopId); |
| | | // 获取商店任务计数 |
| | | Integer taskCount = memberTaskService.getMemberIngTotal(shopId); |
| | | // 设置员工商店信息对象的属性 |
| | |
| | | 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()); |
| | |
| | | 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()); |
| | | } |
| | | } |
| | | // 如果商店的扩展联系方式不为空,则设置员工商店信息对象的扩展联系方式列表 |
| | |
| | | |
| | | @Override |
| | | public void queryEcommerceApplyMentsStatus() { |
| | | log.info("开始获取微信二级商户待检查列表"); |
| | | List<ShopAuthentication> list = shopAuthenticationService.getShopAuthNeedUpdateStatus(); |
| | | log.info("定时检查微信二级商户"+list.toString()); |
| | | list.forEach(item -> queryApplyStatusByApplymentId(item.getApplymentId(), item.getShopId())); |
| | | } |
| | | |
| | |
| | | */ |
| | | 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); |
| | |
| | | if(shopTask!=null){ |
| | | staffShopDetailVo.setNextTaskDate(shopTask.getTaskDate()); |
| | | } |
| | | staffShopDetailVo.setShopId(shopId); |
| | | return staffShopDetailVo; |
| | | } |
| | | |
| | |
| | | * @return void |
| | | */ |
| | | @Override |
| | | public void addProfitSharingReceiver(ProfitSharingReceiver profitSharingReceiver){ |
| | | public ProfitSharingReceiverResult addProfitSharingReceiver(ProfitSharingReceiverRequest request){ |
| | | try { |
| | | ProfitSharingReceiver result = wechatPayUtils.addProfitSharingReceiver(profitSharingReceiver); |
| | | ProfitSharingReceiverResult result = wechatPayUtils.addProfitSharingReceiver(request); |
| | | return result; |
| | | } catch (WxPayException e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * @description |
| | | * @author jqs |
| | | * @date 2023/8/29 14:33 |
| | | * @param |
| | | * @return List<MgtUserTaskMsgVo> |
| | | */ |
| | | @Override |
| | | public List<MgtUserTaskMsgVo> getTaskMsgList(){ |
| | | return shopMapper.getTaskMsgList(); |
| | | } |
| | | |
| | | } |