| | |
| | | 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.service.task.ShopFileService; |
| | | import com.ruoyi.system.api.constant.AppErrorConstant; |
| | | import com.ruoyi.system.api.domain.dto.AppMemberBindingDto; |
| | | import com.ruoyi.system.api.domain.dto.MgtBasePlatformDto; |
| | | import com.ruoyi.system.api.domain.dto.MgtShopIdByCodeDto; |
| | | import com.ruoyi.system.api.domain.dto.MgtUserIdByDept; |
| | | 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.system.api.domain.vo.MerHomeShopTotalVo; |
| | | import com.ruoyi.system.api.domain.vo.MgtShopIdByCodeVo; |
| | | 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 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.Objects; |
| | | import java.util.StringJoiner; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | @Resource |
| | | private ShopProportionService shopProportionService; |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 获取商户详情 |
| | |
| | | this.saveOrUpdate(shop); |
| | | //商户编号 |
| | | if(mgtEditShopDto.getShopId()==null){ |
| | | String shopNo = CodeFactoryUtil.getShopNo(shop.getShopId()); |
| | | String shopNo = CodeFactoryUtil.getShopNo(); |
| | | shop.setShopNumber(shopNo); |
| | | } |
| | | //商户标签 |
| | |
| | | } |
| | | |
| | | /** |
| | | * @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); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 修改合作时间 |
| | | * @param mgtChangeCoopDto |
| | | */ |
| | | @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); |
| | | return mgtShopPageVoList; |
| | | } |
| | | |
| | |
| | | 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) { |
| | | 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); |
| | | } |
| | | //获取商户状态 |
| | | List<MgtMapTotalVo> 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); |
| | | } |
| | | //获取区域排名 |
| | | List<MgtMapTotalVo> 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); |
| | | } |
| | | //获取销售排名 |
| | | 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) { |
| | | 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); |
| | | } |
| | | return plTotalShopTotalVo; |
| | | } |
| | | |
| | | /** |
| | | * @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; |
| | | } |
| | | } |