From cc1181b93c51c60a117846f9640d3f56370e67f3 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期四, 03 八月 2023 13:32:26 +0800 Subject: [PATCH] Merge branch 'master' of ssh://sinata.cn:20202/java/HongRuiTang into master --- ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java | 352 ++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 316 insertions(+), 36 deletions(-) diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java index 5bf7f88..6df823e 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java @@ -1,15 +1,19 @@ package com.ruoyi.shop.service.impl.shop; +import com.alibaba.fastjson2.JSON; 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.github.binarywang.wxpay.exception.WxPayException; +import com.ruoyi.common.core.constant.CacheConstants; 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.common.redis.service.RedisService; +import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.shop.domain.dto.*; import com.ruoyi.shop.domain.pojo.shop.*; import com.ruoyi.shop.domain.pojo.task.ShopFile; @@ -18,6 +22,10 @@ import com.ruoyi.shop.service.shop.*; import com.ruoyi.shop.service.task.MemberTaskService; import com.ruoyi.shop.service.task.ShopFileService; +import com.ruoyi.shop.service.task.ShopTaskService; +import com.ruoyi.shop.util.WechatPayUtils; +import com.ruoyi.shop.util.WxShopUtils; +import com.ruoyi.shop.util.dto.*; import com.ruoyi.system.api.constant.AppErrorConstant; import com.ruoyi.system.api.domain.dto.*; import com.ruoyi.system.api.domain.poji.config.SysTag; @@ -27,6 +35,7 @@ import com.ruoyi.system.api.domain.vo.*; import com.ruoyi.system.api.service.*; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; @@ -99,10 +108,19 @@ private ShopTransferRecordService shopTransferRecordService; @Resource - private RemoteUserService remoteUserService; + private RemoteSysStaffService remoteSysStaffService; @Resource - private RemoteSysStaffService remoteSysStaffService; + private RemoteFileService remoteFileService; + + @Resource + private ShopTaskService shopTaskService; + + @Resource + private RedisService redisService; + + @Resource + private WechatPayUtils wechatPayUtils; /** * 获取商户详情 @@ -190,6 +208,12 @@ //清空归属 shopRelUserService.deleteByShopId(shop.getShopId()); shopStaffService.clearShopStaffRelation(shop.getShopId()); + if(!shop.getShopName().equals(mgtEditShopDto.getShopName())){ + MgtMemberShopNameDto mgtMemberShopNameDto = new MgtMemberShopNameDto(); + mgtMemberShopNameDto.setShopId(mgtEditShopDto.getShopId()); + mgtMemberShopNameDto.setShopName(mgtEditShopDto.getShopName()); + remoteMemberService.updateMemberShopName(mgtMemberShopNameDto); + } }else{ if(shopSame!=null){ throw new ServiceException(AppErrorConstant.SHOP_DOUBLE); @@ -200,6 +224,7 @@ shop.setCreateUserId(mgtEditShopDto.getUserId()); shop.setFrozenFlag(0); shop.setCooperativeFlag(0); + shop.setAuthFlag(0); newShop = true; } BeanUtils.copyProperties(mgtEditShopDto,shop); @@ -210,10 +235,10 @@ shop.setShopDetail(shopDetail); } //商户编号 - if(mgtEditShopDto.getShopId()==null){ + /*if(mgtEditShopDto.getShopId()==null){ String shopNo = CodeFactoryUtil.getShopNo(); shop.setShopNumber(shopNo); - } + }*/ this.saveOrUpdate(shop); //商户标签 String shopTagIds = mgtEditShopDto.getShopTagIds(); @@ -285,6 +310,13 @@ if(newShop){ //生成商户关联记录 initNewShop(shop,mgtEditShopDto.getUserId()); + CodeGetDto codeGetDto = new CodeGetDto(); + String url = "https://wxapp.hhhrt.cn/mini/activity?activityId="+shop.getShopId(); + codeGetDto.setUrl(url); + codeGetDto.setFileName("shop-"+shop.getShopId()); + String codeUrl = remoteFileService.getAppOrderTotal(codeGetDto).getData(); + shop.setShopCode(codeUrl); + this.saveOrUpdate(shop); } } @@ -380,18 +412,56 @@ 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.setShopStatus(handelShopStatus(shop.getFrozenFlag(),shop.getCooperativeFlag(),shop.getAuthFlag())); shop.setUpdateTime(new Date()); shop.setUpdateUserId(mgtTerminateCooperationDto.getUserId()); this.saveOrUpdate(shop); + } + + /** + * @description 冻结商户 + * @author jqs + * @date 2023/7/15 13:56 + * @param mgtFrozenShopDto + * @return void + */ + @Override + public void frozenMgtShop(MgtFrozenShopDto mgtFrozenShopDto){ + Shop shop = this.getById(mgtFrozenShopDto.getShopId()); + if(mgtFrozenShopDto.getFrozenFlag()==1){ + shop.setFrozenFlag(1); + }else{ + shop.setFrozenFlag(0); + } + shop.setShopStatus(handelShopStatus(shop.getFrozenFlag(),shop.getCooperativeFlag(),shop.getAuthFlag())); + this.saveOrUpdate(shop); + } + + /** + * @description 处理商户状态 + * @author jqs + * @date 2023/7/15 14:09 + * @param + * @return Integer + */ + private Integer handelShopStatus(Integer frozenFlag, Integer cooperativeFlag, Integer authFlag){ + Integer shopStatus = 1; + if(frozenFlag == 1){ + shopStatus = 0; + return shopStatus; + } + if(authFlag == 0){ + shopStatus = 3; + return shopStatus; + } + if(cooperativeFlag == 0){ + shopStatus = 2; + return shopStatus; + } + return shopStatus; } @@ -517,6 +587,14 @@ } mgtShopInfoVo.setShopTagIds(shopTagJs.toString()); } + if(mgtShopInfoVo.getBelongUserId()!=null){ + SysUser sysUser = sysUserService.getSysUser(mgtShopInfoVo.getBelongUserId()).getData(); + mgtShopInfoVo.setBelongUserName(sysUser.getNickName()); + } + if(mgtShopInfoVo.getBelongShopId()!=null){ + Shop belongShop = this.getByShopId(mgtShopInfoVo.getBelongShopId()); + mgtShopInfoVo.setBelongShopName(belongShop.getShopName()); + } //商户关联用户 List<ShopRelUser> shopRelUserList = shopRelUserService.listByShopId(shopId); if(shopRelUserList!=null&&!shopRelUserList.isEmpty()){ @@ -594,6 +672,9 @@ public void transferMgtShop(MgtTransferShopDto mgtTransferShopDto){ Shop shop = this.getByShopId(mgtTransferShopDto.getShopId()); if(shop.getBelongUserId()!=null){ + if(shop.getBelongUserId().equals(mgtTransferShopDto.getUserId())){ + throw new ServiceException(AppErrorConstant.TRANS_NOT_MYSELF); + } ShopTransferRecord shopTransferRecord = new ShopTransferRecord(); shopTransferRecord.setDelFlag(0); shopTransferRecord.setShopId(shop.getShopId()); @@ -605,7 +686,7 @@ } shop.setBelongUserId(mgtTransferShopDto.getTransferUserId()); this.saveOrUpdate(shop); - ShopRelUser shopRelUser = new ShopRelUser(); + /*ShopRelUser shopRelUser = new ShopRelUser(); shopRelUser.setDelFlag(0); shopRelUser.setShopId(shop.getShopId()); shopRelUser.setUserId(mgtTransferShopDto.getTransferUserId()); @@ -613,7 +694,7 @@ shopRelUser.setUserMobile(sysUser.getPhonenumber()); shopRelUser.setUserDeptId(sysUser.getDeptId()); shopRelUser.setUserName(sysUser.getNickName()); - shopRelUserService.save(shopRelUser); + shopRelUserService.save(shopRelUser);*/ } /** @@ -670,47 +751,48 @@ * @return */ @Override - public MerHomeShopTotalVo getStaffHomeTotal(Long userId){ + public StaffHomeShopTotalVo 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(); + userIds = sysUserService.getUserIdsByDept(userId).getData(); //根据用户所有id查询关联的商户id MgtBasePlatformDto mgtBasePlatformDto = new MgtBasePlatformDto(); mgtBasePlatformDto.setUserIdList(userIds); shopIds = shopMapper.listShopIdByTotal(mgtBasePlatformDto); + Shop shop = this.getShopByBelongUserId(userId); + shopIds.add(shop.getShopId()); }else { //普通员工查询商户归属的shopId - MgtShopIdByCodeDto mgtShopIdByCodeDto = new MgtShopIdByCodeDto(); - mgtShopIdByCodeDto.setBelongUserId(userId); - shopIds = shopMapper.getShopIdByCode(mgtShopIdByCodeDto); + Shop shop = this.getShopByBelongUserId(userId); + shopIds.add(shop.getShopId()); } - //分别查询 - 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; - } + //分别查询 + StaffHomeShopTotalVo staffHomeShopTotalVo = shopMapper.getStaffHomeTotal(shopIds); + Integer shopTaskCount = shopTaskService.getShopIngTotal(shopIds); + staffHomeShopTotalVo.setFollowMember(0); + staffHomeShopTotalVo.setNewMember(0); + staffHomeShopTotalVo.setShopTask(shopTaskCount); + return staffHomeShopTotalVo; + } /** * 获取商户端 - * @param userId + * @param merBaseDto * @return */ @Override - public MerHomeShopTotalVo getMerHomeTotal(Long userId){ + public MerHomeShopTotalVo getMerHomeTotal(MerBaseDto merBaseDto){ + Long userId = merBaseDto.getUserId(); MerHomeShopTotalVo merHomeShopTotalVo = new MerHomeShopTotalVo(); ShopRelUser shopRelUser = shopRelUserService.getByUserId(userId); Long shopId = shopRelUser.getShopId(); + //如果商户变动刷新token + if(!shopId.equals(merBaseDto.getShopId())){ + String userKey = SecurityUtils.getUserKey(); + redisService.deleteObject(CacheConstants.LOGIN_TOKEN_KEY+userKey); + throw new ServiceException("登录状态已过期",401); + } merHomeShopTotalVo.setShopId(shopId); Shop shop = this.getById(shopId); merHomeShopTotalVo.setShopType(shop.getShopType()); @@ -880,11 +962,15 @@ * @return void */ @Override - public void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto){ + public void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto) throws WxPayException { ShopAuthentication shopAuthentication = shopAuthenticationService.getById(mgtShopAuthDto.getAuthId()); + Shop shop = this.getByShopId(shopAuthentication.getShopId()); + String applyNumber = IdUtils.simpleUUID(); BeanUtils.copyProperties(mgtShopAuthDto , shopAuthentication); + shopAuthentication.setApplyNumber(applyNumber); shopAuthentication.setAuditStatus(3); shopAuthenticationService.saveOrUpdate(shopAuthentication); + wechatPayUtils.ecommerceApply(shopAuthentication,applyNumber,shop); } /** @@ -1058,4 +1144,198 @@ }).collect(Collectors.toList()); return simpleShopVoList; } + + /** + * @description 获取用户管理商户 + * @author jqs + * @date 2023/7/14 10:00 + * @param userId + * @return Shop + */ + @Override + public Shop getShopByBelongUserId(Long userId){ + LambdaQueryWrapper<Shop> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(Shop::getDelFlag,0); + queryWrapper.eq(Shop::getBelongUserId,userId); + return this.getOne(queryWrapper,false); + } + + /** + * @description 员工端获取商户列表 + * @author jqs + * @date 2023/7/14 15:26 + * @param page + * @param staffShopPageDto + * @return List<StaffShopPageVo> + */ + @Override + public List<StaffShopPageVo> pageStaffShop(Page page, StaffShopPageDto staffShopPageDto){ + List<StaffShopPageVo> staffShopPageVoList = shopMapper.pageStaffShop(page, staffShopPageDto); + return staffShopPageVoList; + } + + /** + * @description 获取员工端商户数量统计 + * @author jqs + * @date 2023/7/14 15:51 + * @param userId + * @return StaffShopSimpleTotalVo + */ + @Override + public StaffShopSimpleTotalVo getStaffSimpleTotal(Long userId){ + List<Long> userIdList = null; + if(remoteSysStaffService.isLeader()){ + userIdList = sysUserService.getUserIdsByDept(userId).getData(); + userIdList.add(userId); + }else { + userIdList.add(userId); + } + return shopMapper.getStaffSimpleTotal(userIdList); + } + + /** + * @description 员工端获取商户详情 + * @author jqs + * @date 2023/7/14 18:32 + * @param shopId + * @return StaffShopInfoGetVo + */ + @Override + public StaffShopInfoGetVo getStaffShopInfo(Long shopId) { + // 创建员工商店信息对象 + StaffShopInfoGetVo staffShopInfoGetVo = new StaffShopInfoGetVo(); + // 通过商店ID获取商店信息 + Shop shop = this.getByShopId(shopId); + // 获取商店文件列表 + List<ShopFile> shopFileList = shopFileService.listShopFileByShopId(shopId); + // 初始化商店图片 + String shopPicture = null; + // 遍历商店文件列表,获取商店图片 + if (shopFileList != null && !shopFileList.isEmpty()) { + for (ShopFile shopFile : shopFileList) { + if (shopFile.getFileType() == 1) { + shopPicture = shopFile.getFileUrl(); + break; + } + } + } + // 创建商店总览对象,并设置商店ID + MerHomeShopTotalVo merHomeShopTotalVo = new MerHomeShopTotalVo(); + merHomeShopTotalVo.setShopId(shopId); + // 通过远程订单服务获取商店总览信息 + MerHomeShopTotalVo orderVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData(); + // 获取商店总计信息 + ShopTotal shopTotal = shopTotalService.getById(shopId); + // 获取商店任务计数 + Integer taskCount = memberTaskService.getMemberIngTotal(shopId); + // 设置员工商店信息对象的属性 + staffShopInfoGetVo.setTodayReservation(0); + staffShopInfoGetVo.setUnHandleOrder(orderVo.getUnHandleOrder()); + staffShopInfoGetVo.setShopTask(taskCount); + staffShopInfoGetVo.setShopTurnover(orderVo.getShopTurnover()); + staffShopInfoGetVo.setCycleSurp(shopTotal.getUseableCyclePerson()); + staffShopInfoGetVo.setExplorationSurp(shopTotal.getUseableExperiencePerson()); + staffShopInfoGetVo.setShopId(shopId); + staffShopInfoGetVo.setShopName(shop.getShopName()); + staffShopInfoGetVo.setShopPicture(shopPicture); + staffShopInfoGetVo.setBusinessStartTime(shop.getBusinessStartTime()); + staffShopInfoGetVo.setBusinessEndTime(shop.getBusinessEndTime()); + staffShopInfoGetVo.setShopownerName(shop.getShopownerName()); + staffShopInfoGetVo.setShopownerPhone(shop.getShopownerPhone()); + staffShopInfoGetVo.setShopAddress(shop.getShopAreaName() + shop.getShopAddress()); + staffShopInfoGetVo.setShopCustomStatus(shop.getShopCustomStatus()); + staffShopInfoGetVo.setShopTags(shop.getShopTags()); + staffShopInfoGetVo.setSupportingCapacityFlag(shop.getSupportingCapacityFlag()); + staffShopInfoGetVo.setOperationPersonFlag(shop.getOperationPersonFlag()); + staffShopInfoGetVo.setExecutiveForceFlag(shop.getExecutiveForceFlag()); + staffShopInfoGetVo.setPatternFlag(shop.getPatternFlag()); + staffShopInfoGetVo.setConnectionFlag(shop.getConnectionFlag()); + staffShopInfoGetVo.setEconomicAbilityFlag(shop.getEconomicAbilityFlag()); + staffShopInfoGetVo.setRelationPartner(shop.getRelationPartner()); + staffShopInfoGetVo.setBusinessHistory(shop.getBusinessHistory()); + staffShopInfoGetVo.setNewAreaMember(0); + staffShopInfoGetVo.setAreaTurnover(BigDecimal.ZERO); + staffShopInfoGetVo.setFrozenFlag(shop.getFrozenFlag()); + // 如果商店类型为1,则获取该商店ID列表的新区域成员和总订单金额 + if (shop.getShopType() == 1) { + List<Long> shopIdList = this.listShopIdByShopId(shop.getShopId()); + if (shopIdList != null && !shopIdList.isEmpty()) { + Integer count = remoteMemberService.getAreaNewMember(shopIdList).getData(); + staffShopInfoGetVo.setNewAreaMember(count); + ShopTotal shopTotalAll = shopTotalService.shopsTotalByIds(shopIdList); + staffShopInfoGetVo.setAreaTurnover(shopTotalAll.getTotalOrderMoney()); + } + } + // 如果商店的扩展联系方式不为空,则设置员工商店信息对象的扩展联系方式列表 + String extendContacts = shop.getExtendContacts(); + if (StringUtils.isNotBlank(extendContacts)) { + List<ExtendContactsVo> extendContactsVoList = JSON.parseArray(extendContacts, ExtendContactsVo.class); + staffShopInfoGetVo.setExtendContactsVoList(extendContactsVoList); + } + // 返回员工商店信息对象 + return staffShopInfoGetVo; + } + + /** + * @description 修改商户评估 + * @author jqs + * @date 2023/7/15 10:18 + * @param staffShopEstimateEditDto + * @return void + */ + @Override + public void editShopEstimate(StaffShopEstimateEditDto staffShopEstimateEditDto){ + Shop shop = new Shop(); + shop.setShopId(staffShopEstimateEditDto.getShopId()); + shop.setSupportingCapacityFlag(staffShopEstimateEditDto.getSupportingCapacityFlag()); + shop.setOperationPersonFlag(staffShopEstimateEditDto.getOperationPersonFlag()); + shop.setExecutiveForceFlag(staffShopEstimateEditDto.getExecutiveForceFlag()); + shop.setPatternFlag(staffShopEstimateEditDto.getPatternFlag()); + shop.setConnectionFlag(staffShopEstimateEditDto.getConnectionFlag()); + shop.setEconomicAbilityFlag(staffShopEstimateEditDto.getEconomicAbilityFlag()); + shop.setRelationPartner(staffShopEstimateEditDto.getRelationPartner()); + shop.setBusinessHistory(staffShopEstimateEditDto.getBusinessHistory()); + shop.setUpdateUserId(staffShopEstimateEditDto.getUserId()); + shop.setUpdateTime(new Date()); + shopMapper.updateShop(shop); + } + + /** + * @description 修改店铺扩展联系人 + * @author jqs + * @date 2023/7/15 11:06 + * @param staffShopECEditDto + * @return void + */ + @Override + public void editExtendContacts(StaffShopECEditDto staffShopECEditDto){ + Shop shop = new Shop(); + String extendContacts = null; + List<ExtendContactsVo> extendContactsVoList = staffShopECEditDto.getExtendContactsVoList(); + if(extendContactsVoList!=null&&!extendContactsVoList.isEmpty()){ + extendContacts = JSON.toJSONString(extendContactsVoList); + } + shop.setExtendContacts(extendContacts); + shop.setShopId(staffShopECEditDto.getShopId()); + shop.setUpdateUserId(staffShopECEditDto.getUserId()); + shop.setUpdateTime(new Date()); + shopMapper.updateExtendContacts(shop); + } + + /** + * @description 修改店铺状态 + * @author jqs + * @date 2023/7/15 11:51 + * @param staffShopCCEditDto + * @return void + */ + @Override + public void editShopCustomStatus(StaffShopCCEditDto staffShopCCEditDto){ + Shop shop = new Shop(); + shop.setShopCustomStatus(staffShopCCEditDto.getShopCustomStatus()); + shop.setShopId(staffShopCCEditDto.getShopId()); + shop.setUpdateUserId(staffShopCCEditDto.getUserId()); + shop.setUpdateTime(new Date()); + shopMapper.updateShop(shop); + } } -- Gitblit v1.7.1