| | |
| | | package com.ruoyi.shop.service.impl.shop; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | 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.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.vo.AppNearbyShopVo; |
| | | 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.util.CodeFactoryUtil; |
| | | import com.ruoyi.system.api.RemoteActivityService; |
| | | import com.ruoyi.system.api.RemoteConfigService; |
| | | import com.ruoyi.system.api.RemoteUserService; |
| | | 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.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.shop.domain.vo.AppShopInfoVo; |
| | | import com.ruoyi.shop.domain.vo.MgtShopInfoVo; |
| | | import com.ruoyi.shop.domain.vo.MgtShopPageVo; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | 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 org.springframework.beans.BeanUtils; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.StringJoiner; |
| | | import java.util.*; |
| | | import java.util.function.Function; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | private RemoteConfigService configService; |
| | | |
| | | @Resource |
| | | private RemoteMemberService remoteMemberService; |
| | | |
| | | @Resource |
| | | private RemoteUserService sysUserService; |
| | | |
| | | @Resource |
| | |
| | | @Resource |
| | | private ShopRelUserService shopRelUserService; |
| | | |
| | | @Resource |
| | | private RemoteOrderService remoteOrderService; |
| | | |
| | | @Resource |
| | | private ShopStaffService shopStaffService; |
| | | |
| | | @Resource |
| | | private ShopAccountService shopAccountService; |
| | | |
| | | @Resource |
| | | private ShopAuthenticationService shopAuthenticationService; |
| | | |
| | | @Resource |
| | | private ShopProportionService shopProportionService; |
| | | |
| | | @Resource |
| | | private RemoteConfigService remoteConfigService; |
| | | |
| | | @Resource |
| | | private ShopTotalService shopTotalService; |
| | | |
| | | @Resource |
| | | private MemberTaskService memberTaskService; |
| | | |
| | | /** |
| | | * 获取商户详情 |
| | |
| | | |
| | | /** |
| | | * 创建商户 |
| | | * @param MGTEditShopDto |
| | | * @param mgtEditShopDto |
| | | */ |
| | | @Override |
| | | public void createShop(MgtEditShopDto MGTEditShopDto){ |
| | | public void createShop(MgtEditShopDto mgtEditShopDto){ |
| | | Shop shop = new Shop(); |
| | | if(MGTEditShopDto.getShopId()!=null){ |
| | | shop = this.getById(MGTEditShopDto.getShopId()); |
| | | 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())){ |
| | | throw new ServiceException(AppErrorConstant.SHOP_DOUBLE); |
| | | } |
| | | shop = this.getById(mgtEditShopDto.getShopId()); |
| | | shop.setUpdateTime(new Date()); |
| | | shop.setUpdateUserId(MGTEditShopDto.getUserId()); |
| | | shop.setUpdateUserId(mgtEditShopDto.getUserId()); |
| | | shop.setShopTags(null); |
| | | //清空关联记录 |
| | | shopFileService.deleteByShopId(shop.getShopId()); |
| | | shopRelTagService.deleteByShopId(shop.getShopId()); |
| | | shopRelUserService.deleteByShopId(shop.getShopId()); |
| | | //清空归属 |
| | | shopRelUserService.deleteByShopId(shop.getShopId()); |
| | | shopStaffService.clearShopStaffRelation(shop.getShopId()); |
| | | }else{ |
| | | shop.setShopStatus(2); |
| | | if(shopSame!=null){ |
| | | throw new ServiceException(AppErrorConstant.SHOP_DOUBLE); |
| | | } |
| | | shop.setDelFlag(0); |
| | | shop.setShopStatus(3); |
| | | shop.setCreateTime(new Date()); |
| | | shop.setCreateUserId(MGTEditShopDto.getUserId()); |
| | | shop.setCreateUserId(mgtEditShopDto.getUserId()); |
| | | shop.setFrozenFlag(0); |
| | | shop.setCooperativeFlag(0); |
| | | newShop = true; |
| | | } |
| | | BeanUtils.copyProperties(MGTEditShopDto,shop); |
| | | BeanUtils.copyProperties(mgtEditShopDto,shop); |
| | | this.saveOrUpdate(shop); |
| | | //商户编号 |
| | | if(MGTEditShopDto.getShopId()==null){ |
| | | String shopNo = CodeFactoryUtil.getShopNo(shop.getShopId()); |
| | | if(mgtEditShopDto.getShopId()==null){ |
| | | String shopNo = CodeFactoryUtil.getShopNo(); |
| | | shop.setShopNumber(shopNo); |
| | | } |
| | | //商户标签 |
| | | String shopTagIds = MGTEditShopDto.getShopTagIds(); |
| | | String shopTagIds = mgtEditShopDto.getShopTagIds(); |
| | | if(StringUtils.isNotBlank(shopTagIds)){ |
| | | String[] shopTagIdArray = shopTagIds.split(","); |
| | | ShopRelTag shopRelTag; |
| | |
| | | shop.setShopTags(shopTagSj.toString()); |
| | | this.saveOrUpdate(shop); |
| | | } |
| | | //商户归属员工 |
| | | if(shop.getBelongUserId()!=null){ |
| | | SysUser belongSysUser = sysUserService.getSysUser(shop.getBelongUserId()).getData(); |
| | | handleShopStaff(shop.getShopId(),belongSysUser); |
| | | } |
| | | //商户关联人员 |
| | | String relUserIds = MGTEditShopDto.getRelUserIds(); |
| | | String relUserIds = mgtEditShopDto.getRelUserIds(); |
| | | if(StringUtils.isNotBlank(relUserIds)){ |
| | | String[] relUserIdArray = relUserIds.split(","); |
| | | ShopRelUser shopRelUser; |
| | |
| | | shopRelUser.setUserMobile(sysUser.getPhonenumber()); |
| | | shopRelUser.setUserDeptId(sysUser.getDeptId()); |
| | | shopRelUserService.save(shopRelUser); |
| | | handleShopStaff(shop.getShopId(),sysUser); |
| | | } |
| | | } |
| | | //商户封面 |
| | | ShopFile shopFile = new ShopFile(); |
| | | shopFile.setDelFlag(0); |
| | | shopFile.setFileType(1); |
| | | shopFile.setFileUrl(MGTEditShopDto.getShopPicture()); |
| | | shopFile.setFileUrl(mgtEditShopDto.getShopPicture()); |
| | | shopFile.setShopId(shop.getShopId()); |
| | | shopFileService.save(shopFile); |
| | | //商户banner |
| | | if(StringUtils.isNotBlank(MGTEditShopDto.getShopBanners())){ |
| | | String shopBanners= MGTEditShopDto.getShopBanners(); |
| | | if(StringUtils.isNotBlank(mgtEditShopDto.getShopBanners())){ |
| | | String shopBanners= mgtEditShopDto.getShopBanners(); |
| | | String[] shopBannerArray = shopBanners.split(","); |
| | | for(String str : shopBannerArray){ |
| | | shopFile = new ShopFile(); |
| | |
| | | shopFileService.save(shopFile); |
| | | } |
| | | } |
| | | 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.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); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 修改合作时间 |
| | |
| | | @Override |
| | | public void changeCooperationTime(MgtChangeCoopDto mgtChangeCoopDto){ |
| | | Shop shop = this.getById(mgtChangeCoopDto.getShopId()); |
| | | String coopStartTime = mgtChangeCoopDto.getCoopStartTime(); |
| | | String coopEndTime = mgtChangeCoopDto.getCoopEndTime(); |
| | | SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | Date coopStartDate = null; |
| | | Date coopEndDate = null; |
| | | try { |
| | | Date coopStartDate = simpleDateFormat.parse(coopStartTime); |
| | | Date coopEndDate = simpleDateFormat.parse(coopEndTime); |
| | | Date nowTime = new Date(); |
| | | shop.setCooperationStartTime(coopStartDate); |
| | | shop.setCooperationEndTime(coopEndDate); |
| | | Boolean inTime = false; |
| | | if(coopStartDate.compareTo(nowTime)<0&&coopEndDate.compareTo(nowTime)>0){ |
| | | inTime = true; |
| | | } |
| | | if(shop.getShopStatus()==2&&inTime){ |
| | | shop.setShopStatus(1); |
| | | } |
| | | shop.setUpdateTime(nowTime); |
| | | shop.setUpdateUserId(mgtChangeCoopDto.getUserId()); |
| | | this.saveOrUpdate(shop); |
| | | coopStartDate = DateUtils.parseDate(mgtChangeCoopDto.getCoopStartTime(),"yyyy-MM-dd"); |
| | | coopEndDate = DateUtils.parseDate(mgtChangeCoopDto.getCoopEndTime(),"yyyy-MM-dd"); |
| | | } catch (ParseException e) { |
| | | e.printStackTrace(); |
| | | throw new RuntimeException(e); |
| | | } |
| | | Date nowTime = new Date(); |
| | | shop.setCooperationStartTime(coopStartDate); |
| | | shop.setCooperationEndTime(coopEndDate); |
| | | Boolean inTime = false; |
| | | if(coopStartDate.compareTo(nowTime)<=0&&coopEndDate.compareTo(nowTime)>=0){ |
| | | inTime = true; |
| | | shop.setCooperativeFlag(1); |
| | | }else{ |
| | | shop.setCooperativeFlag(0); |
| | | } |
| | | if(shop.getShopStatus()==2&&inTime){ |
| | | shop.setShopStatus(1); |
| | | } |
| | | shop.setUpdateTime(nowTime); |
| | | shop.setUpdateUserId(mgtChangeCoopDto.getUserId()); |
| | | this.saveOrUpdate(shop); |
| | | } |
| | | |
| | | /** |
| | |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<MgtShopPageVo> pageShop(Page page, MgtShopPageDto mgtShopPageDto){ |
| | | List<MgtShopPageVo> mgtShopPageVoList = shopMapper.pageShop(page, mgtShopPageDto); |
| | | public List<MgtShopPageVo> pageMgtShop(Page page, MgtShopPageDto mgtShopPageDto){ |
| | | 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; |
| | | } |
| | | |
| | |
| | | public AppNearbyShopVo getNearbyShop(AppNearbyShopDto appNearbyShopDto,Member member){ |
| | | AppNearbyShopVo appNearbyShopVo = new AppNearbyShopVo(); |
| | | Shop shop = null; |
| | | if(member.getRealtionShopId()!=null){ |
| | | //获取附近商户 |
| | | if(member!=null&&member.getRelationShopId()!=null&&member.getBindingFlag()==1){ |
| | | //获取绑定商户 |
| | | shop = this.getById(member.getRealtionShopId()); |
| | | shop = this.getById(member.getRelationShopId()); |
| | | }else if(StringUtils.isNotBlank(appNearbyShopDto.getLatitude())&&StringUtils.isNotBlank(appNearbyShopDto.getLongitude())){ |
| | | AppNearShopVo appNearShopVo = shopMapper.getNearbyShop(appNearbyShopDto); |
| | | shop = this.getById(appNearShopVo.getShopId()); |
| | | }else{ |
| | | //获取附近商户 |
| | | shop = this.getById(1L); |
| | | return appNearbyShopVo; |
| | | } |
| | | if(member!=null&&member.getBindingFlag()!=1){ |
| | | AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto(); |
| | | appMemberBindingDto.setShopId(shop.getShopId()); |
| | | appMemberBindingDto.setShopName(shop.getShopName()); |
| | | appMemberBindingDto.setUserId(member.getUserId()); |
| | | appMemberBindingDto.setBindingFlag(0); |
| | | remoteMemberService.updateMemberBinding(appMemberBindingDto); |
| | | } |
| | | appNearbyShopVo.setShopId(shop.getShopId()); |
| | | appNearbyShopVo.setShopName(shop.getShopName()); |
| | |
| | | appNearbyShopVo.setShopLongitude(shop.getShopLongitude()); |
| | | return appNearbyShopVo; |
| | | } |
| | | |
| | | /** |
| | | * |
| | | * @param shopId |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Shop getByShopId(Long shopId){ |
| | | LambdaQueryWrapper<Shop> queryWrapper = Wrappers.lambdaQuery(); |
| | | queryWrapper.eq(Shop::getDelFlag, 0).eq(Shop::getShopId, shopId); |
| | | Shop shop = this.getOne(queryWrapper,false); |
| | | return shop; |
| | | } |
| | | |
| | | /** |
| | | * 获取商户端 |
| | | * @param userId |
| | | * @return |
| | | */ |
| | | @Override |
| | | public MerHomeShopTotalVo getMerHomeTotal(Long userId){ |
| | | MerHomeShopTotalVo merHomeShopTotalVo = new MerHomeShopTotalVo(); |
| | | ShopRelUser shopRelUser = shopRelUserService.getByUserId(userId); |
| | | Long shopId = shopRelUser.getShopId(); |
| | | merHomeShopTotalVo.setShopId(shopId); |
| | | 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; |
| | | } |
| | | |
| | | /** |
| | | * 获取商户绑定代理商 |
| | | * @param page |
| | | * @param merAgencyPageDto |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<MerAgencyPageVo> pageMerAgencyVo(Page page, MerAgencyPageDto merAgencyPageDto){ |
| | | List<MerAgencyPageVo> merAgencyPageVoList = shopMapper.pageMerAgencyVo(page, merAgencyPageDto); |
| | | return merAgencyPageVoList; |
| | | } |
| | | |
| | | /** |
| | | * 处理商户员工 |
| | | * @param shopId |
| | | * @param sysUser |
| | | */ |
| | | private void handleShopStaff(Long shopId,SysUser sysUser){ |
| | | ShopStaff shopStaff = shopStaffService.getByUserId(sysUser.getUserId()); |
| | | if(shopStaff!=null){ |
| | | shopStaff.setShopId(shopId); |
| | | }else{ |
| | | String staffId = IdUtils.simpleUUID(); |
| | | shopStaff = new ShopStaff(); |
| | | shopStaff.setStaffId(staffId); |
| | | shopStaff.setDelFlag(0); |
| | | shopStaff.setUserId(sysUser.getUserId()); |
| | | shopStaff.setShopId(shopId); |
| | | shopStaff.setStaffName(sysUser.getNickName()); |
| | | shopStaff.setStaffMobile(sysUser.getPhonenumber()); |
| | | shopStaff.setStaffGender(Integer.valueOf(sysUser.getSex())); |
| | | shopStaff.setStaffAvatar(sysUser.getAvatar()); |
| | | } |
| | | shopStaffService.saveOrUpdate(shopStaff); |
| | | } |
| | | |
| | | /** |
| | | * @description 平台获取商户分成列表 |
| | | * @author jqs |
| | | * @date 2023/6/8 9:25 |
| | | * @param page |
| | | * @param mgtShopProportionPageDto |
| | | * @return List<MgtShopProportionPageVo> |
| | | */ |
| | | @Override |
| | | public List<MgtShopProportionPageVo> pageMgtShopProportion(Page page, MgtShopProportionPageDto mgtShopProportionPageDto){ |
| | | return shopMapper.pageMgtShopProportion(page,mgtShopProportionPageDto); |
| | | } |
| | | |
| | | /** |
| | | * @description 删除商户标签 |
| | | * @author jqs |
| | | * @date 2023/6/8 15:53 |
| | | * @param shopTag |
| | | * @return void |
| | | */ |
| | | @Override |
| | | public void deleteShopTag(String shopTag){ |
| | | shopMapper.deleteShopTag(shopTag); |
| | | } |
| | | |
| | | /** |
| | | * @description 通过code获取shopId |
| | | * @author jqs |
| | | * @date 2023/6/9 16:40 |
| | | * @param mgtShopIdByCodeDto |
| | | * @return MgtShopIdByCodeVo |
| | | */ |
| | | @Override |
| | | public MgtShopIdByCodeVo getShopIdByCode(MgtShopIdByCodeDto mgtShopIdByCodeDto){ |
| | | MgtShopIdByCodeVo mgtShopIdByCodeVo = new MgtShopIdByCodeVo(); |
| | | List<Long> shopIdList = shopMapper.getShopIdByCode(mgtShopIdByCodeDto); |
| | | if(shopIdList!=null&&!shopIdList.isEmpty()){ |
| | | String shopIdStr = shopIdList.stream() |
| | | .map(Object::toString) |
| | | .collect(Collectors.joining(",")); |
| | | mgtShopIdByCodeVo.setShopIds(shopIdStr); |
| | | } |
| | | return mgtShopIdByCodeVo; |
| | | } |
| | | |
| | | /** |
| | | * @description 获取商户list |
| | | * @author jqs |
| | | * @date 2023/6/12 14:37 |
| | | * @param mgtShopListDto |
| | | * @return List<MgtShopListSimpleVo> |
| | | */ |
| | | @Override |
| | | public List<MgtShopListSimpleVo> listMgtShopSimpleVo(MgtShopListDto mgtShopListDto){ |
| | | return shopMapper.listMgtShopSimpleVo(mgtShopListDto); |
| | | } |
| | | |
| | | /** |
| | | * @description 通过id获取商户列表 |
| | | * @author jqs |
| | | * @date 2023/6/14 17:53 |
| | | * @param shopIds |
| | | * @return List<MgtShopListSimpleVo> |
| | | */ |
| | | @Override |
| | | public List<MgtSimpleShopVo> listShopSimpleVoByIds(String shopIds){ |
| | | return shopMapper.listShopSimpleVoByIds(shopIds); |
| | | } |
| | | |
| | | /** |
| | | * @description pageMgtShopByCityCode |
| | | * @param page |
| | | * @param mgtShopByCodePageDto |
| | | * @return List<MgtSimpleShopVo> |
| | | * @author jqs34 |
| | | * @date 2023/6/14 20:56 |
| | | */ |
| | | @Override |
| | | public List<MgtSimpleShopVo> pageMgtShopByCityCode(Page page, MgtShopByCodePageDto mgtShopByCodePageDto){ |
| | | return shopMapper.pageMgtShopByCityCode(page, mgtShopByCodePageDto); |
| | | } |
| | | |
| | | /** |
| | | * @description pageMgtShopAuth |
| | | * @param page |
| | | * @param mgtShopAuthPageDto |
| | | * @return List<MgtShopAuthPageVo> |
| | | * @author jqs34 |
| | | * @date 2023/6/14 23:01 |
| | | */ |
| | | @Override |
| | | 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; |
| | | } |
| | | } |