From 1772afb069b75871572c9c438bbd2bc403f864df Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期三, 13 十二月 2023 11:43:51 +0800 Subject: [PATCH] 修改bug --- ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java | 152 ++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 120 insertions(+), 32 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 24a94d1..f8c3ec3 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 @@ -18,6 +18,7 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.common.core.utils.ExceptionUtil; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.bean.BeanUtils; import com.ruoyi.common.core.utils.uuid.IdUtils; @@ -36,6 +37,9 @@ import com.ruoyi.shop.service.task.ShopTaskService; import com.ruoyi.shop.util.HuiFuTianXiaUtil; import com.ruoyi.shop.util.WechatPayUtils; +import com.ruoyi.shop.util.map.MapUtil; +import com.ruoyi.shop.util.map.vo.TencentDistanceMatrix; +import com.ruoyi.shop.util.map.vo.TencentDistanceMatrixElements; import com.ruoyi.system.api.constant.AppErrorConstant; import com.ruoyi.system.api.constant.SecurityConstant; import com.ruoyi.system.api.domain.dto.*; @@ -458,7 +462,7 @@ }else{ shop.setCooperativeFlag(0); } - shop.setShopStatus(handelShopStatus(shop.getFrozenFlag(),shop.getCooperativeFlag(),shop.getAuthFlag(),shop.getAccountFlag())); + shop.setShopStatus(handelShopStatus(shop.getFrozenFlag(),shop.getCooperativeFlag(),shop.getAuthFlag())); shop.setUpdateTime(new Date()); shop.setUpdateUserId(mgtTerminateCooperationDto.getUserId()); this.saveOrUpdate(shop); @@ -479,7 +483,7 @@ }else{ shop.setFrozenFlag(0); } - shop.setShopStatus(handelShopStatus(shop.getFrozenFlag(),shop.getCooperativeFlag(),shop.getAuthFlag(),shop.getAccountFlag())); + shop.setShopStatus(handelShopStatus(shop.getFrozenFlag(),shop.getCooperativeFlag(),shop.getAuthFlag())); this.saveOrUpdate(shop); } @@ -490,13 +494,13 @@ * @param * @return Integer */ - private Integer handelShopStatus(Integer frozenFlag, Integer cooperativeFlag, Integer authFlag,Integer accountFlag){ + private Integer handelShopStatus(Integer frozenFlag, Integer cooperativeFlag, Integer authFlag){ Integer shopStatus = 1; if(frozenFlag == 1){ shopStatus = 0; return shopStatus; } - if(authFlag == 0 || accountFlag==0){ + if(authFlag == 0){ shopStatus = 3; return shopStatus; } @@ -759,8 +763,32 @@ //获取绑定商户 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()); + List<AppNearShopVo> appNearShopVos = shopMapper.getNearbyShops(appNearbyShopDto); + if(appNearShopVos.size() > 0){ + log.info("候选店铺:{}", JSON.toJSONString(appNearShopVos)); + StringBuffer to = new StringBuffer(); + for (AppNearShopVo appNearShopVo : appNearShopVos) { + to.append(appNearShopVo.getLatitude() + "," + appNearShopVo.getLongitude() + ";"); + } + String form = appNearbyShopDto.getLatitude() + "," + appNearbyShopDto.getLongitude(); + R<List<TencentDistanceMatrix>> r = MapUtil.tencentDistanceMatrix(form, to.substring(0, to.length() - 1), "walking"); + if(r.getCode() != 200){ + throw new ServiceException(r.getMsg()); + } + List<TencentDistanceMatrix> data = r.getData(); + //存储最短距离 + BigDecimal dis = new BigDecimal(0); + AppNearShopVo appNearShopVo = null; + List<TencentDistanceMatrixElements> elements = data.get(0).getElements(); + for (int i = 0; i < elements.size(); i++) { + TencentDistanceMatrixElements matrix = elements.get(i); + if(i == 0 || dis.compareTo(new BigDecimal(matrix.getDistance())) > 0){ + dis = new BigDecimal(matrix.getDistance()); + appNearShopVo = appNearShopVos.get(i); + } + } + shop = this.getById(appNearShopVo.getShopId()); + } }else{ return appNearbyShopVo; } @@ -817,7 +845,43 @@ List<Long> userIds = new ArrayList<>(); List<Long> shopIds = new ArrayList<>(); //如果是leader 查询leader下面所有的员工下的所有shopId - if(remoteSysStaffService.isLeader()){ +// if(remoteSysStaffService.isLeader()){ +// userIds = sysUserService.getUserIdsByDept(userId).getData(); +// //根据用户所有id查询关联的商户id +// MgtBasePlatformDto mgtBasePlatformDto = new MgtBasePlatformDto(); +// mgtBasePlatformDto.setUserIdList(userIds); +// shopIds = shopMapper.listShopIdByTotal(mgtBasePlatformDto); +// List<Shop> shopList = this.getShopByBelongUserId(userId); +// if(shopList!=null&&!shopList.isEmpty()){ +// for(Shop shop : shopList){ +// shopIds.add(shop.getShopId()); +// } +// userIds.add(userId); +// } +// }else { +// //普通员工查询商户归属的shopId +// List<Shop> shopList = this.getShopByBelongUserId(userId); +// if(shopList!=null&&!shopList.isEmpty()){ +// for(Shop shop : shopList){ +// shopIds.add(shop.getShopId()); +// } +// userIds.add(userId); +// } +// } + + // TODO: 2023/12/5 统一改成使用权限来控制数据 + R<SysUser> sysUser = sysUserService.getSysUser(userId); + if(sysUser.getCode() != 200){ + throw new RuntimeException(sysUser.getMsg()); + } + //员工端数据权限(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限) + //2/4暂未使用 + String dataScopeEmployee = sysUser.getData().getDataScopeEmployee(); + if(dataScopeEmployee.equals("1")){ + userIds = null; + shopIds = null; + } + if(dataScopeEmployee.equals("3")){ userIds = sysUserService.getUserIdsByDept(userId).getData(); //根据用户所有id查询关联的商户id MgtBasePlatformDto mgtBasePlatformDto = new MgtBasePlatformDto(); @@ -830,8 +894,8 @@ } userIds.add(userId); } - }else { - //普通员工查询商户归属的shopId + } + if(dataScopeEmployee.equals("5")){ List<Shop> shopList = this.getShopByBelongUserId(userId); if(shopList!=null&&!shopList.isEmpty()){ for(Shop shop : shopList){ @@ -840,19 +904,10 @@ userIds.add(userId); } } + //分别查询 - StaffHomeShopTotalVo staffHomeShopTotalVo = new StaffHomeShopTotalVo(); - if(userIds!=null&&!userIds.isEmpty()){ - staffHomeShopTotalVo = shopMapper.getStaffHomeTotal(userIds); - }else{ - staffHomeShopTotalVo.setShopTotal(0); - staffHomeShopTotalVo.setAgencyTotal(0); - staffHomeShopTotalVo.setDealerTotal(0); - } - Integer shopTaskCount = 0; - if(shopIds!=null&&!shopIds.isEmpty()){ - shopTaskService.getShopIngTotal(shopIds); - } + StaffHomeShopTotalVo staffHomeShopTotalVo = shopMapper.getStaffHomeTotal(userIds); + Integer shopTaskCount = shopTaskService.getShopIngTotal(shopIds); staffHomeShopTotalVo.setFollowMember(0); staffHomeShopTotalVo.setNewMember(0); staffHomeShopTotalVo.setShopTask(shopTaskCount); @@ -1096,8 +1151,9 @@ */ @Override public void mgtShopHFTXAuth(MgtShopHFTXAuthDto mgtShopHFTXAuthDto) { - ShopAuthenticationHftx shopAuthenticationHftx = shopAuthenticationHftxService.getOne(new QueryWrapper<ShopAuthenticationHftx>().eq("shop_id", mgtShopHFTXAuthDto.getShopId())); - if(null != shopAuthenticationHftx && "Y".equals(shopAuthenticationHftx.getAuditStatus())){ + ShopAuthenticationHftx shopAuthenticationHftx = shopAuthenticationHftxService.getOne(new QueryWrapper<ShopAuthenticationHftx>() + .eq("shop_id", mgtShopHFTXAuthDto.getShopId()).eq("is_delete", 0)); + if(null != shopAuthenticationHftx && Arrays.asList("U", "Y").contains(shopAuthenticationHftx.getAuditStatus())){ throw new ServiceException("不能重复进件"); } if(null == shopAuthenticationHftx){ @@ -1105,6 +1161,7 @@ shopAuthenticationHftx.setIsDelete(0); shopAuthenticationHftx.setInsertTime(new Date()); } + String auditStatus = shopAuthenticationHftx.getAuditStatus(); BeanUtils.copyProperties(mgtShopHFTXAuthDto, shopAuthenticationHftx); shopAuthenticationHftx.setReqSeqId(IdUtils.simpleUUID()); shopAuthenticationHftx.setAuditStatus(""); @@ -1113,13 +1170,18 @@ * 开始调起进件接口 */ R<MerchantBasicdataVo> r = null; - //用户 - if(mgtShopHFTXAuthDto.getType() == 1){ + //用户(重新提交) + if((StringUtils.isEmpty(auditStatus) || "N".equals(auditStatus) || "F".equals(auditStatus)) && mgtShopHFTXAuthDto.getType() == 1){ r = HuiFuTianXiaUtil.merchantBasicdataIndv(mgtShopHFTXAuthDto, shopAuthenticationHftx, callback_path + "/shop/mgt/shop/merchantBasicdataNotify"); } - //企业进件 - if(mgtShopHFTXAuthDto.getType() == 2){ + //企业进件(重新提交) + if((StringUtils.isEmpty(auditStatus) || "N".equals(auditStatus) || "F".equals(auditStatus)) && mgtShopHFTXAuthDto.getType() == 2){ r = HuiFuTianXiaUtil.merchantBasicdataEnt(mgtShopHFTXAuthDto, shopAuthenticationHftx, callback_path + "/shop/mgt/shop/merchantBasicdataNotify"); + } + + //修改资料 + if("Y".equals(auditStatus)){ + r = HuiFuTianXiaUtil.merchantBasicdataModify(mgtShopHFTXAuthDto, shopAuthenticationHftx, callback_path + "/shop/mgt/shop/merchantBasicdataNotify"); } if(null == r){ throw new ServiceException("参数异常"); @@ -1160,11 +1222,13 @@ if("Y".equals(data.getAuditStatus())){ Shop shop = this.getByShopId(shopAuthenticationHftx.getShopId()); shop.setShopStatus(1); + shop.setAuthFlag(1); this.updateById(shop); } } return R.ok(data.getReqSeqId()); } + /** * @description 获取平台商户统计 @@ -1412,17 +1476,37 @@ @Override public StaffShopSimpleTotalVo getStaffSimpleTotal(Long userId){ List<Long> userIdList = new ArrayList<>(); - if(remoteSysStaffService.isLeader()){ +// if(remoteSysStaffService.isLeader()){ +// userIdList = sysUserService.getUserIdsByDept(userId).getData(); +// userIdList.add(userId); +// }else { +// userIdList.add(userId); +// } + + // TODO: 2023/12/5 统一改成使用权限来控制数据 + R<SysUser> sysUser = sysUserService.getSysUser(userId); + if(sysUser.getCode() != 200){ + throw new RuntimeException(sysUser.getMsg()); + } + //员工端数据权限(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限) + //2/4暂未使用 + String dataScopeEmployee = sysUser.getData().getDataScopeEmployee(); + if(dataScopeEmployee.equals("1")){ + userIdList = null; + } + if(dataScopeEmployee.equals("3")){ userIdList = sysUserService.getUserIdsByDept(userId).getData(); userIdList.add(userId); - }else { + } + if(dataScopeEmployee.equals("5")){ userIdList.add(userId); } + StaffShopSimpleTotalVo shopTotal = shopMapper.getStaffSimpleTotal(1,userIdList); StaffShopSimpleTotalVo agencyTotal = shopMapper.getStaffSimpleTotal(2,userIdList); shopTotal.setAgencyTotal(agencyTotal.getShopTotal()); shopTotal.setOpenAgencyTotal(agencyTotal.getOpenShopTotal()); - shopTotal.setCloseAgencyTotal(agencyTotal.getCloseAgencyTotal()); + shopTotal.setCloseAgencyTotal(agencyTotal.getCloseShopTotal()); return shopTotal; } @@ -1625,13 +1709,17 @@ private void applySuccessUpdateShopStatus(Long shopId){ // 更新商户状态为正常 Shop shop = this.getById(shopId); - Integer shopStatus = handelShopStatus(shop.getFrozenFlag(), shop.getCooperativeFlag(), 1,shop.getAccountFlag()); + Integer shopStatus = handelShopStatus(shop.getFrozenFlag(), shop.getCooperativeFlag(), 1); LambdaUpdateWrapper<Shop> updateWrapper = Wrappers.lambdaUpdate(); updateWrapper.eq(Shop::getShopId, shopId) .set(Shop::getShopStatus, shopStatus) .set(Shop::getAuthFlag, 1); this.update(updateWrapper); } + + + + /** * @description @@ -1753,7 +1841,7 @@ ProfitSharingReceiverResult result = wechatPayUtils.addProfitSharingReceiver(request); if(StringUtils.isNotBlank(result.getAccount())){ shop.setAccountFlag(1); - shop.setShopStatus(handelShopStatus(shop.getFrozenFlag(),shop.getCooperativeFlag(),shop.getAuthFlag(),1)); + shop.setShopStatus(handelShopStatus(shop.getFrozenFlag(),shop.getCooperativeFlag(),shop.getAuthFlag())); this.saveOrUpdate(shop); } } -- Gitblit v1.7.1