From b2d360d9113b6955287108ca9e90d76a1f3c1419 Mon Sep 17 00:00:00 2001 From: liukangdong <898885815@qq.com> Date: 星期日, 29 九月 2024 15:05:11 +0800 Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/zbomyoujia --- server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 102 insertions(+), 18 deletions(-) diff --git a/server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java index 2c79efd..44ba5fd 100644 --- a/server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java +++ b/server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java @@ -41,6 +41,7 @@ import org.springframework.util.CollectionUtils; import org.springframework.web.multipart.MultipartFile; +import java.math.BigDecimal; import java.util.*; import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; @@ -99,6 +100,11 @@ @Override public void updateById(Shop shop) { shopMapper.updateById(shop); + usersMapper.update(new UpdateWrapper<Users>().lambda() + .set(Users::getCardImg,null) + .isNotNull(Users::getCardImg) + .eq(Users::getDepartmentId,shop.getId()) + ); } @Override @@ -358,6 +364,8 @@ shop.setLegalPhone(model.getLegalPhone()); shop.setLegalIdcode(model.getLegalIdcode()); shop.setLegalName(model.getLegalName()); + shop.setFcode(model.getFcode()); + shop.setScode(model.getScode()); shop.setTaxRegCode(model.getTaxRegCode()); shopMapper.updateById(shop); } @@ -736,6 +744,7 @@ shop.setSecondType(model.getSecondType()); shop.setAttribute(model.getAttribute()); shop.setParentIamId(model.getParentOrgId()); + shop.setScode(model.getScode()); newList.add(shop); }else { shop.setEditor(loginUserInfo.getId()); @@ -744,6 +753,7 @@ shop.setSecondType(model.getSecondType()); shop.setName(model.getName()); shop.setCode(model.getCode()); + shop.setScode(model.getScode()); shop.setUnitCode(model.getUnitCode()); if(Constants.equalsInteger(model.getStatus(),Constants.TWO)){ shop.setIsdeleted(Constants.ONE); @@ -897,33 +907,32 @@ @Override public PageData<Shop> queryShopByLL(PageWrap<Shop> pageWrap) { -// if(Objects.isNull(pageWrap.getModel()) -// || Objects.isNull(pageWrap.getModel().getLatitude()) -// || Objects.isNull(pageWrap.getModel().getLongitude())){ -// return null; -// } + if(Objects.isNull(pageWrap.getModel()) + || Objects.isNull(pageWrap.getModel().getLatitude()) + || Objects.isNull(pageWrap.getModel().getLongitude())){ + return null; + } IPage<Shop> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper<Shop> queryWrapper = new MPJLambdaWrapper<>(); -// queryWrapper.select("ID,NAME,ADDRESS,PROVINCE_NAME,CITY_NAME,AREA_NAME,TOWN,AREA_NAME,LEGAL_PHONE" + -// " ,CONVERT (ST_Distance_Sphere (point ("+pageWrap.getModel().getLongitude()+", "+pageWrap.getModel().getLatitude()+" ), point ( LONGITUDE, LATITUDE )) /1000,decimal(15,2)) as distance ") - queryWrapper.select("ID,NAME,ADDRESS,PROVINCE_NAME,CITY_NAME,AREA_NAME,TOWN,AREA_NAME,LEGAL_PHONE ") + queryWrapper.select("ID,NAME,LINK_PHONE,ADDRESS,PROVINCE_NAME,CITY_NAME,AREA_NAME,TOWN,AREA_NAME,LEGAL_PHONE " + + " , (6371 * ACOS(COS(RADIANS("+pageWrap.getModel().getLatitude()+")) * COS(RADIANS(latitude)) * COS(RADIANS(longitude) - RADIANS("+pageWrap.getModel().getLongitude()+")) + SIN(RADIANS("+pageWrap.getModel().getLatitude()+")) * SIN(RADIANS(latitude)) ) ) as distance " ) .eq("isdeleted",Constants.ZERO) -// .isNotNull("LATITUDE") -// .isNotNull("LONGITUDE") + .isNotNull("LATITUDE") + .isNotNull("LONGITUDE") .eq("TYPE",Constants.TWO) .eq("SECOND_TYPE",Constants.THREE) - .eq("STATUS",Constants.ONE); -// .orderByAsc(" distance ") + .eq("STATUS",Constants.ONE) + .orderByAsc(" distance "); Utils.MP.blankToNull(pageWrap.getModel()); PageData<Shop> pageData = PageData.from(shopMapper.selectPage(page, queryWrapper)); String prefix = StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.RESOURCE_PATH).getCode()) + StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.USERS_FILE).getCode()); for (Shop shop:pageData.getRecords()) { + this.dealDistance(shop); //鏌ヨ闂ㄥ簵涓嬪璐暟鎹� List<Users> usersList =usersMapper.selectList(new QueryWrapper<Users>().lambda().eq(Users::getDepartmentId,shop.getId()) .eq(Users::getIsdeleted,Constants.ZERO) .eq(Users::getStatus,Constants.ONE) - .eq(Users::getType,Constants.ZERO) ); for (Users users:usersList) { if(StringUtils.isNotBlank(users.getImgurl())){ @@ -935,6 +944,29 @@ return pageData; } + /** + * 澶勭悊闂ㄥ簵璺濈鏄剧ず + * @param shop + */ + public void dealDistance(Shop shop){ + if(Objects.isNull(shop.getDistance())){ + shop.setDistanceStr("-"); + }else{ + //璺濈灏忎簬1鍏噷 鏄剧ず绫� + if(shop.getDistance().compareTo(BigDecimal.ONE)<Constants.ZERO){ + BigDecimal distanceM = shop.getDistance().multiply(new BigDecimal(1000).setScale(0)); + //100绫充箣鍐� + if(distanceM.compareTo(new BigDecimal(100))<0){ + shop.setDistanceStr("<100绫�"); + }else{ + shop.setDistanceStr(distanceM.divide(BigDecimal.valueOf(1)).setScale(0,BigDecimal.ROUND_HALF_UP) + "m"); + } + }else{ + shop.setDistanceStr(shop.getDistance().divide(BigDecimal.valueOf(1)).setScale(2,BigDecimal.ROUND_HALF_UP) + "km"); + } + } + } + @Override public Shop shopDetail(Long id,Long memberId) { QueryWrapper<Shop> queryWrapper = new QueryWrapper<Shop>(); @@ -942,8 +974,8 @@ Member member = memberMapper.selectById(memberId); //濡傛灉浜哄憳娌℃湁缁忕含搴︿俊鎭紝鍒欎笉鏌ヨ璺濈 if(Objects.nonNull(member)&&Objects.nonNull(member.getLatitude())&&Objects.nonNull(member.getLongitude())){ - queryWrapper.select("ID,NAME,ADDRESS,PROVINCE_NAME,CITY_NAME,AREA_NAME,TOWN,AREA_NAME,LEGAL_PHONE," + - " CONVERT (ST_Distance_Sphere (point ("+member.getLongitude()+", "+member.getLatitude()+" ), point ( LONGITUDE, LATITUDE )) /1000,decimal(15,2)) as distance "); + queryWrapper.select(" * " + + " , (6371 * ACOS(COS(RADIANS("+member.getLatitude()+")) * COS(RADIANS(latitude)) * COS(RADIANS(longitude) - RADIANS("+member.getLongitude()+")) + SIN(RADIANS("+member.getLatitude()+")) * SIN(RADIANS(latitude)) ) ) as distance " ); } } queryWrapper.eq("id",id); @@ -956,8 +988,8 @@ List<Users> usersList =usersMapper.selectList(new QueryWrapper<Users>().lambda().eq(Users::getDepartmentId,shop.getId()) .eq(Users::getIsdeleted,Constants.ZERO) .eq(Users::getStatus,Constants.ONE) - .eq(Users::getType,Constants.ZERO) ); + this.dealDistance(shop); for (Users users:usersList) { if(StringUtils.isNotBlank(users.getImgurl())){ users.setImgurlFull(prefix + users.getImgurl()); @@ -965,7 +997,7 @@ } shop.setUsersList(usersList); //鏌ヨ缁忚惀鑼冨洿淇℃伅 - List<CategorySeg> categorySegList = categorySegMapper.selectList(new QueryWrapper<CategorySeg>().lambda().eq(CategorySeg::getOrgId,shop.getOrgId()).eq(CategorySeg::getIsdeleted,Constants.ZERO)); + List<CategorySeg> categorySegList = categorySegMapper.selectList(new QueryWrapper<CategorySeg>().lambda().eq(CategorySeg::getScode,shop.getScode()).eq(CategorySeg::getIsdeleted,Constants.ZERO)); if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(categorySegList)){ List<UnitCodeVo> unitCodeVoList =systemDictDataBiz.getUnitList(); List<String> seqNameList = new ArrayList<>(); @@ -975,7 +1007,8 @@ seqNameList.add(seqName); } } - shop.setSeqNameList(seqNameList); + Set<String> hs = new HashSet<String>(seqNameList); + shop.setSeqNameList(new ArrayList<String>(hs)); } return shop; } @@ -993,6 +1026,57 @@ Shop updShop = new Shop(); BeanUtils.copyProperties(editShopDTO,updShop); shopMapper.updateById(updShop); + usersMapper.update(new UpdateWrapper<Users>().lambda() + .set(Users::getCardImg,null) + .isNotNull(Users::getCardImg) + .eq(Users::getDepartmentId,shop.getId()) + ); + } + + @Override + public List<Shop> getUserShopList(Long userId) { + Users users = usersMapper.selectById(userId); + if(Objects.isNull(users)){ + return new ArrayList<>(); + } + Shop userShop = shopMapper.selectById(users.getDepartmentId()); + if(Objects.isNull(userShop)){ + return new ArrayList<>(); + } + Boolean manageShop = true; + if(users.getRoleCodes().indexOf(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.ZBOM_CUSTOMIZED,Constants.USERS_MANAGE_CODE).getCode()))>=0){ + manageShop = false; + } + List<Shop> shopList = shopMapper.selectList(new QueryWrapper<Shop>() + .lambda() + .eq(Shop::getScode,userShop.getScode()) + .eq(Shop::getType,Constants.TWO) + .eq(Shop::getSecondType,Constants.THREE) + .apply(manageShop,"1=2") + ); + //鏌ヨ缁忚惀鑼冨洿淇℃伅 + List<CategorySeg> categorySegAllList = categorySegMapper.selectList(new QueryWrapper<CategorySeg>().lambda() + .isNotNull(CategorySeg::getOrgId) + .eq(CategorySeg::getIsdeleted,Constants.ZERO)); + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(categorySegAllList)){ + for (Shop shop:shopList) { + if(StringUtils.isBlank(shop.getOrgId())){ + continue; + } + List<CategorySeg> categorySegList = categorySegAllList.stream().filter(i->i.getScode().equals(shop.getScode())).collect(Collectors.toList()); + List<UnitCodeVo> unitCodeVoList =systemDictDataBiz.getUnitList(); + List<String> seqNameList = new ArrayList<>(); + for(CategorySeg model : categorySegList){ + String seqName = systemDictDataBiz.getUnitName(model.getUnitCode(),unitCodeVoList); + if(Objects.nonNull(seqName)){ + seqNameList.add(seqName); + } + } + Set<String> hs = new HashSet<String>(seqNameList); + shop.setSeqNameList(new ArrayList<String>(hs)); + } + } + return shopList; } } -- Gitblit v1.9.3