| | |
| | | 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.system.api.domain.poji.shop.Shop; |
| | | import com.ruoyi.system.api.domain.poji.sys.SysUser; |
| | | 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; |
| | | import com.ruoyi.system.api.service.RemoteUserService; |
| | | import com.ruoyi.system.api.service.*; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | | import java.nio.charset.StandardCharsets; |
| | | import java.text.ParseException; |
| | | import java.util.*; |
| | | import java.util.function.Function; |
| | |
| | | @Resource |
| | | private RemoteUserService remoteUserService; |
| | | |
| | | @Resource |
| | | private RemoteSysStaffService remoteSysStaffService; |
| | | |
| | | /** |
| | | * 获取商户详情 |
| | |
| | | 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); |
| | | if(mgtEditShopDto.getShopId()!=null){ |
| | | for (String str : relUserIdArray) { |
| | | userId = Long.valueOf(str); |
| | | shopRelUser = shopRelUserService.getByUserId(userId); |
| | | if(shopRelUser!=null&&!shopRelUser.getShopId().equals(mgtEditShopDto.getShopId())){ |
| | | throw new ServiceException(AppErrorConstant.SHOP_USER_DOUBLE); |
| | | } |
| | | } |
| | | }else { |
| | | 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())); |
| | |
| | | newShop = true; |
| | | } |
| | | BeanUtils.copyProperties(mgtEditShopDto,shop); |
| | | String shopDetail = shop.getShopDetail(); |
| | | if(StringUtils.isNotBlank(shopDetail)){ |
| | | byte[] decodedBytes = Base64.getDecoder().decode(shopDetail); |
| | | shopDetail = new String(decodedBytes, StandardCharsets.UTF_8); |
| | | shop.setShopDetail(shopDetail); |
| | | } |
| | | //商户编号 |
| | | if(mgtEditShopDto.getShopId()==null){ |
| | | String shopNo = CodeFactoryUtil.getShopNo(); |
| | |
| | | } |
| | | } |
| | | if(newShop){ |
| | | //商户账户信息初始化 |
| | | ShopAccount shopAccount = new ShopAccount(); |
| | | shopAccount.setShopId(shop.getShopId()); |
| | | shopAccount.setDelFlag(0); |
| | | shopAccount.setTotalIncome(new BigDecimal("0")); |
| | | shopAccount.setTotalDisburse(new BigDecimal("0")); |
| | | shopAccount.setTotalRefund(new BigDecimal("0")); |
| | | shopAccount.setTotalProfitsharing(new BigDecimal("0")); |
| | | shopAccount.setTotalMoney(new BigDecimal("0")); |
| | | shopAccountService.save(shopAccount); |
| | | //商户认证信息初始化 |
| | | String authId = IdUtils.simpleUUID(); |
| | | ShopAuthentication shopAuthentication = new ShopAuthentication(); |
| | | shopAuthentication.setAuthId(authId); |
| | | shopAuthentication.setDelFlag(0); |
| | | shopAuthentication.setShopId(shop.getShopId()); |
| | | shopAuthenticationService.save(shopAuthentication); |
| | | //商户分成信息初始化 |
| | | ShopProportion shopProportion = new ShopProportion(); |
| | | shopProportion.setDelFlag(0); |
| | | shopProportion.setShopId(shop.getShopId()); |
| | | shopProportion.setShopType(shop.getShopType()); |
| | | shopProportion.setProportionPercent(new BigDecimal("100.00")); |
| | | 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); |
| | | //生成商户关联记录 |
| | | initNewShop(shop,mgtEditShopDto.getUserId()); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * @description 商户关联类初始化 |
| | | * @author jqs |
| | | * @date 2023/7/7 11:25 |
| | | * @param shop |
| | | * @param userId |
| | | * @return void |
| | | */ |
| | | private void initNewShop(Shop shop,Long userId){ |
| | | BigDecimal zeroBig = new BigDecimal("0.00"); |
| | | //商户账户信息初始化 |
| | | ShopAccount shopAccount = new ShopAccount(); |
| | | shopAccount.setShopId(shop.getShopId()); |
| | | shopAccount.setDelFlag(0); |
| | | shopAccount.setTotalIncome(new BigDecimal("0")); |
| | | shopAccount.setTotalDisburse(new BigDecimal("0")); |
| | | shopAccount.setTotalRefund(new BigDecimal("0")); |
| | | shopAccount.setTotalProfitsharing(new BigDecimal("0")); |
| | | shopAccount.setTotalMoney(new BigDecimal("0")); |
| | | shopAccountService.save(shopAccount); |
| | | //商户认证信息初始化 |
| | | String authId = IdUtils.simpleUUID(); |
| | | ShopAuthentication shopAuthentication = new ShopAuthentication(); |
| | | shopAuthentication.setAuthId(authId); |
| | | shopAuthentication.setDelFlag(0); |
| | | shopAuthentication.setShopId(shop.getShopId()); |
| | | shopAuthenticationService.save(shopAuthentication); |
| | | //商户分成信息初始化 |
| | | ShopProportion shopProportion = new ShopProportion(); |
| | | shopProportion.setDelFlag(0); |
| | | shopProportion.setShopId(shop.getShopId()); |
| | | shopProportion.setShopType(shop.getShopType()); |
| | | shopProportion.setProportionPercent(new BigDecimal("100.00")); |
| | | shopProportion.setUpdateTime(new Date()); |
| | | shopProportion.setUpdateUserId(userId); |
| | | 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); |
| | | } |
| | | |
| | | /** |
| | |
| | | Shop shop = this.getById(shopId); |
| | | //基本信息拷贝 |
| | | BeanUtils.copyProperties(shop,mgtShopInfoVo); |
| | | String shopDetail = mgtShopInfoVo.getShopDetail(); |
| | | if(StringUtils.isNotBlank(shopDetail)){ |
| | | byte[] encodedBytes = Base64.getEncoder().encode(shopDetail.getBytes(StandardCharsets.UTF_8)); |
| | | shopDetail = new String(encodedBytes, StandardCharsets.UTF_8); |
| | | mgtShopInfoVo.setShopDetail(shopDetail); |
| | | } |
| | | //商户标签 |
| | | List<ShopRelTag> shopRelTagList = shopRelTagService.listShopRelTagByShopId(shopId); |
| | | if(shopRelTagList!=null&&!shopRelTagList.isEmpty()){ |
| | |
| | | return shop; |
| | | } |
| | | |
| | | /** |
| | | * 获取获取员工端首页统计 |
| | | * @param userId |
| | | * @return |
| | | */ |
| | | @Override |
| | | public MerHomeShopTotalVo getStaffHomeTotal(Long userId){ |
| | | List<Long> userIds = null; |
| | | List<Long> shopIds = null; |
| | | //如果是leader 查询leader下面所有的员工下的所有shopId |
| | | if(remoteSysStaffService.isLeader()){ |
| | | Long deptId = sysUserService.getSysUser(userId).getData().getDeptId(); |
| | | userIds = remoteSysStaffService.getUserIds(deptId).getData(); |
| | | //根据用户所有id查询关联的商户id |
| | | MgtBasePlatformDto mgtBasePlatformDto = new MgtBasePlatformDto(); |
| | | mgtBasePlatformDto.setUserIdList(userIds); |
| | | shopIds = shopMapper.listShopIdByTotal(mgtBasePlatformDto); |
| | | }else { |
| | | //普通员工查询商户归属的shopId |
| | | MgtShopIdByCodeDto mgtShopIdByCodeDto = new MgtShopIdByCodeDto(); |
| | | mgtShopIdByCodeDto.setBelongUserId(userId); |
| | | shopIds = shopMapper.getShopIdByCode(mgtShopIdByCodeDto); |
| | | } |
| | | //分别查询 |
| | | MerHomeShopTotalVo merHomeShopTotalVo = new MerHomeShopTotalVo(); |
| | | merHomeShopTotalVo.setShopIds(shopIds); |
| | | MerHomeShopTotalVo orderVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData(); |
| | | merHomeShopTotalVo.setTodayShop(null!=orderVo?orderVo.getTodayShop():0); |
| | | merHomeShopTotalVo.setUnHandleOrder(null!=orderVo?orderVo.getUnHandleOrder():0); |
| | | merHomeShopTotalVo.setShopTurnover(null!=orderVo?orderVo.getShopTurnover():BigDecimal.ZERO); |
| | | ShopTotal shopTotal = shopTotalService.shopsTotalByIds(shopIds); |
| | | merHomeShopTotalVo.setCycleSurp(null!=shopTotal?shopTotal.getUseableCyclePerson():0); |
| | | merHomeShopTotalVo.setExplorationSurp(null!=shopTotal?shopTotal.getUseableExperiencePerson():0); |
| | | Integer taskCount = memberTaskService.getMembersIngTotal(shopIds); |
| | | merHomeShopTotalVo.setTask(taskCount); |
| | | return merHomeShopTotalVo; |
| | | } |
| | | /** |
| | | * 获取商户端 |
| | | * @param userId |
| | |
| | | mgtShopAuthCodeVo.setLegalValidationUrl(shopAuthentication.getLegalValidationUrl()); |
| | | return mgtShopAuthCodeVo; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @description 获取商户下属代理商 |
| | | * @author jqs |
| | | * @date 2023/7/3 17:27 |
| | | * @param shopId |
| | | * @return List<Long> |
| | | */ |
| | | @Override |
| | | public List<Long> listShopIdByShopId(Long shopId){ |
| | | List<Long> shopIds = shopMapper.selectList( |
| | | new LambdaQueryWrapper<Shop>().eq(Shop::getDelFlag, 0).eq(Shop::getBelongShopId, shopId) |
| | | ).stream().map(Shop::getShopId).collect(Collectors.toList()); |
| | | return shopIds; |
| | | } |
| | | |
| | | /** |
| | | * @description 获取商户下属代理商 |
| | | * @author jqs |
| | | * @date 2023/7/3 18:18 |
| | | * @param shopId |
| | | * @return List<MgtSimpleShopVo> |
| | | */ |
| | | @Override |
| | | public List<MgtSimpleShopVo> listShopByShop(Long shopId){ |
| | | List<MgtSimpleShopVo> simpleShopVoList = shopMapper.selectList( |
| | | new LambdaQueryWrapper<Shop>().eq(Shop::getDelFlag, 0).eq(Shop::getBelongShopId, shopId)). |
| | | stream().map(shop->{ |
| | | MgtSimpleShopVo simpleShopVo = new MgtSimpleShopVo(); |
| | | simpleShopVo.setShopId(shop.getShopId()); |
| | | simpleShopVo.setShopName(shop.getShopName()); |
| | | return simpleShopVo; |
| | | }).collect(Collectors.toList()); |
| | | return simpleShopVoList; |
| | | } |
| | | } |