| | |
| | | import com.ruoyi.common.core.exception.ServiceException; |
| | | import com.ruoyi.common.core.utils.DateUtils; |
| | | import com.ruoyi.common.core.utils.StringUtils; |
| | | import com.ruoyi.common.core.utils.bean.BeanUtils; |
| | | 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.shop.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.*; |
| | |
| | | import com.ruoyi.system.api.service.RemoteMemberService; |
| | | import com.ruoyi.system.api.service.RemoteOrderService; |
| | | import com.ruoyi.system.api.service.RemoteUserService; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | |
| | | @Resource |
| | | private RemoteConfigService remoteConfigService; |
| | | |
| | | @Resource |
| | | private ShopTotalService shopTotalService; |
| | | |
| | | @Resource |
| | | private MemberTaskService memberTaskService; |
| | | |
| | | @Resource |
| | | private ShopTransferRecordService shopTransferRecordService; |
| | | |
| | | @Resource |
| | | private RemoteUserService remoteUserService; |
| | | |
| | | |
| | | /** |
| | | * 获取商户详情 |
| | | * @param shopId |
| | |
| | | public void createShop(MgtEditShopDto mgtEditShopDto){ |
| | | Shop shop = new Shop(); |
| | | Boolean newShop = false; |
| | | BigDecimal zeroBig = BigDecimal.ZERO; |
| | | //验证关联账号唯一 |
| | | String relUserIds = mgtEditShopDto.getRelUserIds(); |
| | | if(StringUtils.isNotBlank(relUserIds)) { |
| | | String[] relUserIdArray = relUserIds.split(","); |
| | | ShopRelUser shopRelUser; |
| | | Long userId; |
| | | for (String str : relUserIdArray) { |
| | | userId = Long.valueOf(str); |
| | | shopRelUser = shopRelUserService.getByUserId(userId); |
| | | if(shopRelUser!=null){ |
| | | throw new ServiceException(AppErrorConstant.SHOP_USER_DOUBLE); |
| | | } |
| | | } |
| | | } |
| | | //验证商户名唯一 |
| | | 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())){ |
| | |
| | | newShop = true; |
| | | } |
| | | BeanUtils.copyProperties(mgtEditShopDto,shop); |
| | | this.saveOrUpdate(shop); |
| | | //商户编号 |
| | | if(mgtEditShopDto.getShopId()==null){ |
| | | String shopNo = CodeFactoryUtil.getShopNo(); |
| | | shop.setShopNumber(shopNo); |
| | | } |
| | | this.saveOrUpdate(shop); |
| | | //商户标签 |
| | | String shopTagIds = mgtEditShopDto.getShopTagIds(); |
| | | if(StringUtils.isNotBlank(shopTagIds)){ |
| | |
| | | this.saveOrUpdate(shop); |
| | | } |
| | | //商户归属员工 |
| | | if(shop.getBelongUserId()!=null){ |
| | | /*if(shop.getBelongUserId()!=null){ |
| | | SysUser belongSysUser = sysUserService.getSysUser(shop.getBelongUserId()).getData(); |
| | | handleShopStaff(shop.getShopId(),belongSysUser); |
| | | } |
| | | }*/ |
| | | //商户关联人员 |
| | | String relUserIds = mgtEditShopDto.getRelUserIds(); |
| | | if(StringUtils.isNotBlank(relUserIds)){ |
| | | shopStaffService.clearShopStaffRelation(shop.getShopId()); |
| | | String[] relUserIdArray = relUserIds.split(","); |
| | | ShopRelUser shopRelUser; |
| | | Long userId; |
| | |
| | | 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.setTotalExperienceOrder(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); |
| | | } |
| | | } |
| | | |
| | |
| | | this.saveOrUpdate(shop); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @description 转移客户 |
| | | * @author jqs |
| | | * @date 2023/6/28 16:36 |
| | | * @param mgtTransferShopDto |
| | | * @return void |
| | | */ |
| | | @Override |
| | | public void transferMgtShop(MgtTransferShopDto mgtTransferShopDto){ |
| | | Shop shop = this.getByShopId(mgtTransferShopDto.getShopId()); |
| | | if(shop.getBelongUserId()!=null){ |
| | | ShopTransferRecord shopTransferRecord = new ShopTransferRecord(); |
| | | shopTransferRecord.setDelFlag(0); |
| | | shopTransferRecord.setShopId(shop.getShopId()); |
| | | shopTransferRecord.setBeforeUserId(shop.getBelongUserId()); |
| | | shopTransferRecord.setAfterUserId(mgtTransferShopDto.getTransferUserId()); |
| | | shopTransferRecord.setTransferRemark(mgtTransferShopDto.getTransferRemark()); |
| | | shopTransferRecordService.save(shopTransferRecord); |
| | | shopRelUserService.deleteByUserId(shop.getBelongUserId()); |
| | | } |
| | | shop.setBelongUserId(mgtTransferShopDto.getTransferUserId()); |
| | | this.saveOrUpdate(shop); |
| | | ShopRelUser shopRelUser = new ShopRelUser(); |
| | | shopRelUser.setDelFlag(0); |
| | | shopRelUser.setShopId(shop.getShopId()); |
| | | shopRelUser.setUserId(mgtTransferShopDto.getTransferUserId()); |
| | | SysUser sysUser = remoteUserService.getSysUser(mgtTransferShopDto.getTransferUserId()).getData(); |
| | | shopRelUser.setUserMobile(sysUser.getPhonenumber()); |
| | | shopRelUser.setUserDeptId(sysUser.getDeptId()); |
| | | shopRelUser.setUserName(sysUser.getNickName()); |
| | | shopRelUserService.save(shopRelUser); |
| | | } |
| | | |
| | | /** |
| | | * 获取附近门店 |
| | | * @param appNearbyShopDto |
| | |
| | | Shop shop = this.getById(shopId); |
| | | merHomeShopTotalVo.setShopType(shop.getShopType()); |
| | | 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; |
| | | } |
| | | |
| | |
| | | plTotalShopTotalVo.setAgeValue(shopTotalMemberVo.getAgeValue()); |
| | | } |
| | | //获取商户类型 |
| | | List<MgtMapTotalVo> shopTypeTotal = shopMapper.listShopTypeTotal(mgtBasePlatformDto); |
| | | List<MgtMapIntTotalVo> shopTypeTotal = shopMapper.listShopTypeTotal(mgtBasePlatformDto); |
| | | if (shopTypeTotal != null && shopTypeTotal.size() > 0) { |
| | | String[] shopTypeKey = new String[shopTypeTotal.size()]; |
| | | Integer[] shopTypeValue = new Integer[shopTypeTotal.size()]; |
| | | // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 |
| | | for (int i = 0; i < shopTypeTotal.size(); i++) { |
| | | if (shopTypeTotal.get(i).getMapKey().equals("1")) { |
| | | shopTypeKey[i] = "经销商"; |
| | | } else if (shopTypeTotal.get(i).getMapKey().equals("2")) { |
| | | shopTypeKey[i] = "代理商"; |
| | | } |
| | | shopTypeValue[i] = shopTypeTotal.get(i).getMapValue(); |
| | | } |
| | | plTotalShopTotalVo.setShopTypeKey(shopTypeKey); |
| | | plTotalShopTotalVo.setShopTypeValue(shopTypeValue); |
| | | shopTypeTotal = listRemoveNull(shopTypeTotal); |
| | | plTotalShopTotalVo.setShopTypeVos(shopTypeTotal); |
| | | } |
| | | //获取商户状态 |
| | | List<MgtMapTotalVo> shopStatusTotal = shopMapper.listShopStatusTotal(mgtBasePlatformDto); |
| | | List<MgtMapIntTotalVo> shopStatusTotal = shopMapper.listShopStatusTotal(mgtBasePlatformDto); |
| | | if (shopStatusTotal != null && shopStatusTotal.size() > 0) { |
| | | String[] shopStatusKey = new String[shopStatusTotal.size()]; |
| | | Integer[] shopStatusValue = new Integer[shopStatusTotal.size()]; |
| | | // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 |
| | | for (int i = 0; i < shopStatusTotal.size(); i++) { |
| | | shopStatusKey[i] = shopStatusTotal.get(i).getMapKey(); |
| | | shopStatusValue[i] = shopStatusTotal.get(i).getMapValue(); |
| | | } |
| | | plTotalShopTotalVo.setShopStatusKey(shopStatusKey); |
| | | plTotalShopTotalVo.setShopStatusValue(shopStatusValue); |
| | | shopStatusTotal = listRemoveNull(shopStatusTotal); |
| | | plTotalShopTotalVo.setShopStatusVos(shopStatusTotal); |
| | | } |
| | | //获取区域排名 |
| | | List<MgtMapTotalVo> shopAreaRank = shopMapper.listShopAreaRank(mgtBasePlatformDto); |
| | | List<MgtMapIntTotalVo> shopAreaRank = shopMapper.listShopAreaRank(mgtBasePlatformDto); |
| | | if (shopAreaRank != null && shopAreaRank.size() > 0) { |
| | | String[] shopRankKey = new String[shopAreaRank.size()]; |
| | | Integer[] shopRankValue = new Integer[shopAreaRank.size()]; |
| | | // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 |
| | | for (int i = 0; i < shopAreaRank.size(); i++) { |
| | | shopRankKey[i] = shopAreaRank.get(i).getMapKey(); |
| | | shopRankValue[i] = shopAreaRank.get(i).getMapValue(); |
| | | } |
| | | plTotalShopTotalVo.setAreaRankKey(shopRankKey); |
| | | plTotalShopTotalVo.setAreaRankValue(shopRankValue); |
| | | shopAreaRank = listRemoveNull(shopAreaRank); |
| | | plTotalShopTotalVo.setAreaRankVos(shopAreaRank); |
| | | } |
| | | //获取销售排名 |
| | | List<MgtMapTotalVo> shopSalesRank = shopMapper.listShopSalesRank(mgtBasePlatformDto); |
| | | List<MgtMapIntTotalVo> shopSalesRank = shopMapper.listShopSalesRank(mgtBasePlatformDto); |
| | | if (shopSalesRank != null && shopSalesRank.size() > 0) { |
| | | String[] shopSalesKey = new String[shopSalesRank.size()]; |
| | | Integer[] shopSalesValue = new Integer[shopSalesRank.size()]; |
| | |
| | | plTotalShopTotalVo.setShopSalesRankValue(shopSalesValue); |
| | | } |
| | | //获取推荐 |
| | | List<MgtMapTotalVo> shopRecommendRank = shopMapper.listShopRecommendRank(mgtBasePlatformDto); |
| | | List<MgtMapIntTotalVo> shopRecommendRank = shopMapper.listShopRecommendRank(mgtBasePlatformDto); |
| | | if (shopRecommendRank != null && shopRecommendRank.size() > 0) { |
| | | String[] shopRecommendKey = new String[shopRecommendRank.size()]; |
| | | Integer[] shopRecommendValue = new Integer[shopRecommendRank.size()]; |
| | | // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 |
| | | for (int i = 0; i < shopRecommendRank.size(); i++) { |
| | | shopRecommendKey[i] = shopRecommendRank.get(i).getMapKey(); |
| | | shopRecommendValue[i] = shopRecommendRank.get(i).getMapValue(); |
| | | } |
| | | plTotalShopTotalVo.setShopRecommendKey(shopRecommendKey); |
| | | plTotalShopTotalVo.setShopRecommendValue(shopRecommendValue); |
| | | shopRecommendRank = listRemoveNull(shopRecommendRank); |
| | | plTotalShopTotalVo.setShopRecommendVos(shopRecommendRank); |
| | | } |
| | | return plTotalShopTotalVo; |
| | | } |
| | | |
| | | /** |
| | | * @description 去除空字符串 |
| | | * @author jqs |
| | | * @date 2023/6/27 17:35 |
| | | * @param MgtMapIntTotalVos |
| | | * @return List<MgtMapIntTotalVo> |
| | | */ |
| | | private List<MgtMapIntTotalVo> listRemoveNull(List<MgtMapIntTotalVo> MgtMapIntTotalVos){ |
| | | for (int i = 0; i < MgtMapIntTotalVos.size(); i++) { |
| | | if(StringUtils.isBlank(MgtMapIntTotalVos.get(i).getMapKey())){ |
| | | MgtMapIntTotalVos.remove(i); |
| | | } |
| | | } |
| | | return MgtMapIntTotalVos; |
| | | } |
| | | |
| | | /** |
| | |
| | | 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; |
| | | } |
| | | } |