package com.doumee.service.business.impl;
|
|
import com.doumee.biz.system.SystemDictDataBiz;
|
import com.doumee.core.annotation.excel.ExcelImporter;
|
import com.doumee.core.constants.ResponseStatus;
|
import com.doumee.core.exception.BusinessException;
|
import com.doumee.core.model.LoginUserInfo;
|
import com.doumee.core.model.PageData;
|
import com.doumee.core.model.PageWrap;
|
import com.doumee.core.utils.Constants;
|
import com.doumee.core.utils.Utils;
|
import com.doumee.dao.admin.request.CategoryImport;
|
import com.doumee.dao.admin.request.FcodeImport;
|
import com.doumee.dao.admin.request.ShopImport;
|
import com.doumee.dao.admin.request.UpdateShopSortDTO;
|
import com.doumee.dao.business.CategorySegMapper;
|
import com.doumee.dao.business.MemberMapper;
|
import com.doumee.dao.business.SegmentsMapper;
|
import com.doumee.dao.business.UsersMapper;
|
import com.doumee.dao.business.join.ShopJoinMapper;
|
import com.doumee.dao.business.model.*;
|
import com.doumee.dao.business.vo.ShopTree;
|
import com.doumee.dao.business.vo.ShopTreeVo;
|
import com.doumee.dao.business.vo.UnitCodeVo;
|
import com.doumee.dao.web.reqeust.EditShopDTO;
|
import com.doumee.dao.web.reqeust.ShopQueryByLLDTO;
|
import com.doumee.service.business.ShopService;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
import org.apache.commons.lang3.StringUtils;
|
import org.apache.shiro.SecurityUtils;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.scheduling.annotation.Async;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
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;
|
import java.util.concurrent.Executors;
|
import java.util.stream.Collectors;
|
|
/**
|
* 志邦组织信息表Service实现
|
* @author 江蹄蹄
|
* @date 2024/07/04 14:40
|
*/
|
@Service
|
public class ShopServiceImpl implements ShopService {
|
ExecutorService executor = Executors.newFixedThreadPool(1);
|
@Autowired
|
private RedisTemplate<String, Object> redisTemplate;
|
@Autowired
|
private ShopJoinMapper shopMapper;
|
|
@Autowired
|
private SegmentsMapper segmentsMapper;
|
@Autowired
|
private CategorySegMapper categorySegMapper;
|
@Autowired
|
private UsersMapper usersMapper;
|
@Autowired
|
private SystemDictDataBiz systemDictDataBiz;
|
@Autowired
|
private MemberMapper memberMapper;
|
|
@Override
|
public Long create(Shop shop) {
|
shopMapper.insert(shop);
|
return shop.getId();
|
}
|
|
@Override
|
public void deleteById(Long id) {
|
shopMapper.deleteById(id);
|
}
|
|
@Override
|
public void delete(Shop shop) {
|
UpdateWrapper<Shop> deleteWrapper = new UpdateWrapper<>(shop);
|
shopMapper.delete(deleteWrapper);
|
}
|
|
@Override
|
public void deleteByIdInBatch(List<Long> ids) {
|
if (CollectionUtils.isEmpty(ids)) {
|
return;
|
}
|
shopMapper.deleteBatchIds(ids);
|
}
|
|
@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
|
public void updateByIdInBatch(List<Shop> shops) {
|
if (CollectionUtils.isEmpty(shops)) {
|
return;
|
}
|
for (Shop shop: shops) {
|
this.updateById(shop);
|
}
|
}
|
|
@Override
|
public Shop findById(Long id) {
|
return shopMapper.selectById(id);
|
}
|
|
@Override
|
public Shop findOne(Shop shop) {
|
QueryWrapper<Shop> wrapper = new QueryWrapper<>(shop);
|
return shopMapper.selectOne(wrapper);
|
}
|
|
@Override
|
public List<Shop> findList(Shop shop) {
|
QueryWrapper<Shop> wrapper = new QueryWrapper<>(shop);
|
return shopMapper.selectList(wrapper);
|
}
|
|
@Override
|
public List<Shop> listByParent(String piamId) {
|
QueryWrapper<Shop> wrapper = new QueryWrapper<>();
|
wrapper .select("shop.*,(select count(b.id) from shop b where b.isdeleted=0 and b.parent_iam_id = shop.org_id) as childNum")
|
.lambda()
|
.eq(StringUtils.isNotBlank(piamId),Shop::getParentIamId,piamId)
|
.isNull(StringUtils.isBlank(piamId),Shop::getParentIamId)
|
// .eq(Shop::getIsdeleted,Constants.ZERO)
|
.orderByAsc(Shop::getOrderNum);
|
List<Shop> list = shopMapper.selectList(wrapper);
|
if(list!=null){
|
for (Shop shop :list){
|
shop.setIsLeaf(shop.getChildNum()<=0);
|
shop.setHasChildren(shop.getChildNum()>0);
|
// shop.setChildList(shopMapper.selectList(new QueryWrapper<Shop>().lambda().eq(Shop::getParentIamId,shop.getOrgId())));
|
}
|
}
|
return list;
|
|
}
|
|
@Override
|
public PageData<Shop> findPage(PageWrap<Shop> pageWrap) {
|
IPage<Shop> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
|
MPJLambdaWrapper<Shop> queryWrapper = new MPJLambdaWrapper<>();
|
queryWrapper.selectAll(Shop.class);
|
queryWrapper.leftJoin(" shop t1 on t1.org_id = t.parent_iam_id");
|
Utils.MP.blankToNull(pageWrap.getModel());
|
if (pageWrap.getModel().getId() != null) {
|
queryWrapper.eq(Shop::getId, pageWrap.getModel().getId());
|
}
|
if (pageWrap.getModel().getCreator() != null) {
|
queryWrapper.eq(Shop::getCreator, pageWrap.getModel().getCreator());
|
}
|
if (pageWrap.getModel().getCreateDate() != null) {
|
queryWrapper.ge(Shop::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
|
queryWrapper.le(Shop::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
|
}
|
if (pageWrap.getModel().getEditor() != null) {
|
queryWrapper.eq(Shop::getEditor, pageWrap.getModel().getEditor());
|
}
|
if (pageWrap.getModel().getEditDate() != null) {
|
queryWrapper.ge(Shop::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
|
queryWrapper.le(Shop::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
|
}
|
if (pageWrap.getModel().getIsdeleted() != null) {
|
queryWrapper.eq(Shop::getIsdeleted, pageWrap.getModel().getIsdeleted());
|
}
|
if (pageWrap.getModel().getRemark() != null) {
|
queryWrapper.eq(Shop::getRemark, pageWrap.getModel().getRemark());
|
}
|
if (pageWrap.getModel().getOrgId() != null) {
|
queryWrapper.eq(Shop::getOrgId, pageWrap.getModel().getOrgId());
|
}
|
queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getName()),Shop::getName, pageWrap.getModel().getName());
|
if (pageWrap.getModel().getOrgOldId() != null) {
|
queryWrapper.eq(Shop::getOrgOldId, pageWrap.getModel().getOrgOldId());
|
}
|
if (pageWrap.getModel().getParentId() != null) {
|
queryWrapper.eq(Shop::getParentId, pageWrap.getModel().getParentId());
|
}
|
if (pageWrap.getModel().getStatus() != null) {
|
queryWrapper.eq(Shop::getStatus, pageWrap.getModel().getStatus());
|
}
|
if (pageWrap.getModel().getOrderNum() != null) {
|
queryWrapper.eq(Shop::getOrderNum, pageWrap.getModel().getOrderNum());
|
}
|
if (pageWrap.getModel().getSourceCode() != null) {
|
queryWrapper.eq(Shop::getSourceCode, pageWrap.getModel().getSourceCode());
|
}
|
if (pageWrap.getModel().getCode() != null) {
|
queryWrapper.eq(Shop::getCode, pageWrap.getModel().getCode());
|
}
|
if (pageWrap.getModel().getType() != null) {
|
queryWrapper.eq(Shop::getType, pageWrap.getModel().getType());
|
}
|
if (pageWrap.getModel().getAttribute() != null) {
|
queryWrapper.eq(Shop::getAttribute, pageWrap.getModel().getAttribute());
|
}
|
if (pageWrap.getModel().getWeixinId() != null) {
|
queryWrapper.eq(Shop::getWeixinId, pageWrap.getModel().getWeixinId());
|
}
|
if (pageWrap.getModel().getDingdingId() != null) {
|
queryWrapper.eq(Shop::getDingdingId, pageWrap.getModel().getDingdingId());
|
}
|
if (pageWrap.getModel().getSyncDate() != null) {
|
queryWrapper.ge(Shop::getSyncDate, Utils.Date.getStart(pageWrap.getModel().getSyncDate()));
|
queryWrapper.le(Shop::getSyncDate, Utils.Date.getEnd(pageWrap.getModel().getSyncDate()));
|
}
|
if (pageWrap.getModel().getSyncInfo() != null) {
|
queryWrapper.eq(Shop::getSyncInfo, pageWrap.getModel().getSyncInfo());
|
}
|
if (pageWrap.getModel().getFcode() != null) {
|
queryWrapper.eq(Shop::getFcode, pageWrap.getModel().getFcode());
|
}
|
if (pageWrap.getModel().getScode() != null) {
|
queryWrapper.eq(Shop::getScode, pageWrap.getModel().getScode());
|
}
|
if (pageWrap.getModel().getZcode() != null) {
|
queryWrapper.eq(Shop::getZcode, pageWrap.getModel().getZcode());
|
}
|
if (pageWrap.getModel().getGlCode() != null) {
|
queryWrapper.eq(Shop::getGlCode, pageWrap.getModel().getGlCode());
|
}
|
if (pageWrap.getModel().getGlName() != null) {
|
queryWrapper.eq(Shop::getGlName, pageWrap.getModel().getGlName());
|
}
|
queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCountry()),Shop::getCountry, pageWrap.getModel().getCountry());
|
if (pageWrap.getModel().getProvinceCode() != null) {
|
queryWrapper.eq(Shop::getProvinceCode, pageWrap.getModel().getProvinceCode());
|
}
|
queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getProvinceName()),Shop::getProvinceName, pageWrap.getModel().getProvinceName());
|
if (pageWrap.getModel().getCityCode() != null) {
|
queryWrapper.eq(Shop::getCityCode, pageWrap.getModel().getCityCode());
|
}
|
queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCityName()),Shop::getCityName, pageWrap.getModel().getCityName());
|
if (pageWrap.getModel().getAreaCode() != null) {
|
queryWrapper.eq(Shop::getAreaCode, pageWrap.getModel().getAreaCode());
|
}
|
queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getAreaName()),Shop::getAreaName, pageWrap.getModel().getAreaName());
|
if (pageWrap.getModel().getUnitCode() != null) {
|
queryWrapper.eq(Shop::getUnitCode, pageWrap.getModel().getUnitCode());
|
}
|
if (pageWrap.getModel().getSecondType() != null) {
|
queryWrapper.eq(Shop::getSecondType, pageWrap.getModel().getSecondType());
|
}
|
queryWrapper.apply(StringUtils.isNotBlank(pageWrap.getModel().getParentName()),
|
"(t1.name like '%"+pageWrap.getModel().getParentName()+"%' or t1.code like '%"+pageWrap.getModel().getParentName()+"%' )" );
|
queryWrapper.exists(StringUtils.isNotBlank(pageWrap.getModel().getSiteCode()),
|
"(select c.id from category_seg c where c.isdeleted=0 and (c.org_id=t.code or c.scode =t1.code ) limit 1)" );
|
for(PageWrap.SortData sortData: pageWrap.getSorts()) {
|
if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
|
queryWrapper.orderByDesc(sortData.getProperty());
|
} else {
|
queryWrapper.orderByAsc(sortData.getProperty());
|
}
|
}
|
PageData<Shop> pageData = PageData.from(shopMapper.selectPage(page, queryWrapper));
|
//查询经营范围信息
|
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:pageData.getRecords()) {
|
if(StringUtils.isBlank(shop.getOrgId())){
|
continue;
|
}
|
List<CategorySeg> categorySegList = categorySegAllList.stream().filter(i->i.getOrgId().equals(shop.getOrgId())).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);
|
}
|
}
|
shop.setSeqNameList(seqNameList);
|
}
|
}
|
|
return pageData;
|
}
|
|
@Override
|
public long count(Shop shop) {
|
QueryWrapper<Shop> wrapper = new QueryWrapper<>(shop);
|
return shopMapper.selectCount(wrapper);
|
}
|
@Override
|
// @Async
|
@Transactional(rollbackFor = {BusinessException.class,Exception.class})
|
public String importFcodeBatch(MultipartFile file){
|
Boolean importing = (Boolean) redisTemplate.opsForValue().get(Constants.RedisKeys.IMPORTING_SHOP);
|
if(importing!=null && importing){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,已存在导入或者上下级重置任务正在执行中,请稍后再试!");
|
}
|
redisTemplate.opsForValue().set(Constants.RedisKeys.IMPORTING_SHOP,true);
|
try {
|
LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
|
ExcelImporter ie = null;
|
List<FcodeImport> dataList =null;
|
try {
|
ie = new ExcelImporter(file,0,0);
|
dataList = ie.getDataList(FcodeImport.class,null);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
if(dataList == null || dataList.size() ==0){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,录入数据为空!");
|
}
|
Date date =new Date();
|
List<FcodeImport> finalDataList = dataList;
|
Callable<String> task = () -> {
|
dealFcodeDataBiz(finalDataList,date,loginUserInfo);
|
return "异步任务完成";
|
};
|
executor.submit(task);
|
return "导入成功";
|
}catch (BusinessException e){
|
throw e;
|
}catch (Exception e){
|
throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"信息导入失败,请稍后重试");
|
}
|
}
|
|
private void dealFcodeDataBiz(List<FcodeImport> dataList, Date date, LoginUserInfo loginUserInfo) {
|
try {
|
for(int i=0;i<dataList.size();i++){
|
FcodeImport model = dataList.get(i);
|
if(StringUtils.isBlank(model.getOrgId()) ){
|
continue;
|
}
|
Shop shop = shopMapper.selectOne(new QueryWrapper<Shop>().lambda().eq(Shop::getOrgId,model.getOrgId()));
|
if(shop == null){
|
continue;
|
}
|
shop.setCountry(model.getCountry());
|
shop.setProvinceCode(model.getProvinceCode());
|
shop.setProvinceName(model.getProvinceName());
|
shop.setCityCode(model.getCityCode());
|
shop.setCityName(model.getCityName());
|
shop.setTown(model.getTown());
|
shop.setEditDate(date);
|
shop.setEditor(loginUserInfo.getId());
|
shop.setAreaCode(model.getAreaCode());
|
shop.setAreaName(model.getAreaName());
|
shop.setRegAddr(model.getRegAddr());
|
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);
|
}
|
|
}catch (BusinessException e){
|
throw e;
|
}catch (Exception e){
|
throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"信息导入失败,请稍后重试");
|
}finally {
|
executor.shutdown();
|
redisTemplate.delete(Constants.RedisKeys.IMPORTING_SHOP);
|
}
|
}
|
|
@Override
|
@Transactional(rollbackFor = {BusinessException.class,Exception.class})
|
public String importCategoryBatch(MultipartFile file){
|
Boolean importing = (Boolean) redisTemplate.opsForValue().get(Constants.RedisKeys.IMPORTING_SHOP);
|
if(importing!=null && importing){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,已存在导入或者上下级重置任务正在执行中,请稍后再试!");
|
}
|
redisTemplate.opsForValue().set(Constants.RedisKeys.IMPORTING_SHOP,true);
|
try {
|
LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
|
ExcelImporter ie = null;
|
List<CategoryImport> dataList =null;
|
try {
|
ie = new ExcelImporter(file,0,0);
|
dataList = ie.getDataList(CategoryImport.class,null);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
if(dataList == null || dataList.size() ==0){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,录入数据为空!");
|
}
|
Date date =new Date();
|
List<CategoryImport> finalDataList = dataList;
|
Callable<String> task = () -> {
|
dealCategoryDataBiz(finalDataList,date,loginUserInfo);
|
return "异步任务完成";
|
};
|
executor.submit(task);
|
return "导入成功";
|
}catch (BusinessException e){
|
throw e;
|
}catch (Exception e){
|
throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"信息导入失败,请稍后重试");
|
}
|
}
|
|
@Async
|
public void dealCategoryDataBiz(List<CategoryImport> dataList, Date date, LoginUserInfo loginUserInfo) {
|
try {
|
List<CategorySeg> categorySegList = new ArrayList<>();
|
List<Segments> segmentsList = new ArrayList<>();
|
Map<String,List<String>> siteCodes = new HashMap<>();
|
List<String> orgIdList = new ArrayList<>();
|
for(int i=0;i<dataList.size();i++){
|
CategoryImport model = dataList.get(i);
|
if(StringUtils.isBlank(model.getOrgId()) ){
|
continue;
|
}
|
orgIdList.add(model.getOrgId());
|
dealSegmentData(date,model,loginUserInfo,segmentsList);
|
categorySegList.add(initInsertCategorySeg(date,model,loginUserInfo,siteCodes));
|
}
|
if(orgIdList.size()>0){
|
categorySegMapper.delete(new UpdateWrapper<CategorySeg>().lambda() .in(CategorySeg::getOrgId,orgIdList));
|
}
|
if(siteCodes.size()>0){
|
for(Map.Entry<String ,List<String>> entry : siteCodes.entrySet()){
|
String key = entry.getKey();
|
List<String> codes = entry.getValue();
|
Shop ts = null;
|
String tcode =key.substring(2);
|
if(StringUtils.startsWith(key,"f_")){
|
ts = shopMapper.selectOne(new QueryWrapper<Shop>().lambda()
|
.eq(Shop::getCode,tcode)
|
.eq(Shop::getSecondType,Constants.TWO ));
|
}
|
if(StringUtils.startsWith(key,"f_")){
|
ts = shopMapper.selectOne(new QueryWrapper<Shop>().lambda()
|
.eq(Shop::getCode,tcode)
|
.eq(Shop::getSecondType,Constants.ONE ));
|
}
|
if(ts!=null){
|
ts.setSiteCode(String.join("; ", codes) +";");
|
shopMapper.updateById(ts);
|
}
|
}
|
}
|
if(categorySegList.size()>0){
|
int temp = 0;
|
while(temp < categorySegList.size()){
|
int index;
|
if(temp + 500 <= categorySegList.size()){
|
index = temp+500;
|
}else{
|
index = categorySegList.size();
|
}
|
categorySegMapper.insert(categorySegList.subList(temp,index));
|
temp = index;
|
}
|
}
|
if(segmentsList.size()>0){
|
int temp = 0;
|
while(temp < segmentsList.size()){
|
int index;
|
if(temp + 500 <= segmentsList.size()){
|
index = temp+500;
|
}else{
|
index = segmentsList.size();
|
}
|
segmentsMapper.insert(segmentsList.subList(temp,index));
|
temp = index;
|
}
|
}
|
}catch (BusinessException e){
|
throw e;
|
}catch (Exception e){
|
throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"信息导入失败,请稍后重试");
|
}finally {
|
executor.shutdown(); // 关闭ExecutorService
|
redisTemplate.delete(Constants.RedisKeys.IMPORTING_SHOP);
|
}
|
}
|
|
private void dealSegmentData(Date date, CategoryImport model, LoginUserInfo loginUserInfo, List<Segments> segmentsList) {
|
|
if(StringUtils.isNotBlank(model.getSegId())){
|
//如果战区不为空
|
if(newSegment(model.getSegId(),Constants.ZERO,segmentsList) && segmentsMapper.selectCount(new QueryWrapper<Segments>().lambda()
|
.eq(Segments::getSegmentId,model.getSegId())
|
.eq(Segments::getUnitCode,model.getUnitCode())
|
.eq(Segments::getType,Constants.ZERO)) ==0){
|
segmentsList.add(initSegmentData(model,date,loginUserInfo,Constants.ZERO));
|
}
|
}
|
if(StringUtils.isNotBlank(model.getSegId2())){
|
//如果省区不为空
|
if(newSegment(model.getSegId2(),Constants.ONE,segmentsList) && segmentsMapper.selectCount(new QueryWrapper<Segments>().lambda()
|
.eq(Segments::getSegmentId,model.getSegId2())
|
.eq(Segments::getParentId,model.getSegId())
|
.eq(Segments::getUnitCode,model.getUnitCode())
|
.eq(Segments::getType,Constants.ONE)) ==0){
|
segmentsList.add(initSegmentData(model,date,loginUserInfo,Constants.ONE));
|
}
|
}
|
if(StringUtils.isNotBlank(model.getSegId3())){
|
//如果片区不为空
|
if(newSegment(model.getSegId3(),Constants.TWO,segmentsList) && segmentsMapper.selectCount(new QueryWrapper<Segments>().lambda()
|
.eq(Segments::getSegmentId,model.getSegId3())
|
.eq(Segments::getUnitCode,model.getUnitCode())
|
.eq(Segments::getParentId,model.getSegId2())
|
.eq(Segments::getType,Constants.TWO)) ==0){
|
segmentsList.add(initSegmentData(model,date,loginUserInfo,Constants.TWO));
|
}
|
}
|
}
|
|
private boolean newSegment(String segId2, int one, List<Segments> segmentsList) {
|
for(Segments s : segmentsList){
|
if(StringUtils.equals(s.getSegmentId(),segId2) && Constants.equalsInteger(one,s.getType())){
|
return false;
|
}
|
}
|
return true;
|
}
|
|
private Segments initSegmentData(CategoryImport model, Date date, LoginUserInfo loginUserInfo, int type) {
|
Segments data = new Segments();
|
data.setCreateDate(date);
|
data.setEditDate(date);
|
data.setCreator(loginUserInfo.getId());
|
data.setEditor(loginUserInfo.getId());
|
data.setIsdeleted(Constants.ZERO);
|
data.setStatus(Constants.ZERO);
|
data.setUnitCode(model.getUnitCode());
|
data.setType(type);
|
if(type ==Constants.ZERO){
|
data.setName(model.getSegName());
|
data.setSegmentId(model.getSegId());
|
data.setParentId(null);
|
data.setRemark(model.getSegName());
|
}else if(type ==Constants.ONE){
|
data.setName(model.getSegName2());
|
data.setSegmentId(model.getSegId2());
|
data.setParentId(model.getSegId());
|
data.setRemark(model.getSegName()+"/"+model.getSegName2());
|
}else{
|
data.setName(model.getSegName3());
|
data.setSegmentId(model.getSegId3());
|
data.setParentId(model.getSegId2());
|
data.setRemark(model.getSegName()+"/"+model.getSegName2()+"/"+model.getSegName3());
|
}
|
return data;
|
}
|
|
private CategorySeg initInsertCategorySeg(Date date, CategoryImport model, LoginUserInfo loginUserInfo,Map<String,List<String>> siteCodes) {
|
CategorySeg data = new CategorySeg();
|
data.setCreateDate(date);
|
data.setEditDate(date);
|
data.setCreator(loginUserInfo.getId());
|
data.setEditor(loginUserInfo.getId());
|
data.setIsdeleted(Constants.ZERO);
|
data.setOrgId(model.getOrgId());
|
data.setSegId(model.getSegId());
|
data.setSegId2(model.getSegId2());
|
data.setSegId3(model.getSegId3());
|
data.setSegName(model.getSegName());
|
data.setSegName2(model.getSegName2());
|
data.setSegName3(model.getSegName3());
|
data.setShipToAddress(model.getShipToAddress());
|
data.setShipToPhone(model.getShipToPhone());
|
data.setShipToPerson(model.getShipToPerson());
|
data.setBrandId(model.getBrandId());
|
data.setUnitCode(model.getUnitCode());
|
data.setSiteCode(model.getSiteCode());
|
data.setScode(model.getScode());
|
dealSiteCode(model,siteCodes);
|
|
return data;
|
}
|
|
private void dealSiteCode(CategoryImport model, Map<String, List<String>> siteCodes) {
|
List<String> tList = siteCodes.get(model.getOrgId());
|
if(tList == null){
|
tList = new ArrayList<>();
|
}
|
if(isNewSiteCode(model.getSiteCode(),tList)){
|
tList.add(model.getSiteCode());
|
siteCodes.put("f_"+model.getOrgId(),tList);
|
}
|
tList = siteCodes.get(model.getScode());
|
if(tList == null){
|
tList = new ArrayList<>();
|
}
|
if(isNewSiteCode(model.getSiteCode(),tList)){
|
tList.add(model.getSiteCode());
|
siteCodes.put("s_"+model.getScode(),tList);
|
}
|
}
|
|
private boolean isNewSiteCode(String siteCode, List<String> tList) {
|
if(tList!=null){
|
for(String s :tList){
|
if(StringUtils.equals(s,siteCode)){
|
return false;
|
}
|
}
|
}
|
return true;
|
}
|
|
@Override
|
// @Async
|
@Transactional(rollbackFor = {BusinessException.class,Exception.class})
|
public String importBatch(MultipartFile file){
|
Boolean importing = (Boolean) redisTemplate.opsForValue().get(Constants.RedisKeys.IMPORTING_SHOP);
|
if(importing!=null && importing){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,已存在导入或者上下级重置任务正在执行中,请稍后再试!");
|
}
|
redisTemplate.opsForValue().set(Constants.RedisKeys.IMPORTING_SHOP,true);
|
try {
|
LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
|
ExcelImporter ie = null;
|
List<ShopImport> dataList =null;
|
try {
|
ie = new ExcelImporter(file,1,0);
|
dataList = ie.getDataList(ShopImport.class,null);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
if(dataList == null || dataList.size() ==0){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,录入数据为空!");
|
}
|
Date date =new Date();
|
List<ShopImport> finalDataList = dataList;
|
Callable<String> task = () -> {
|
dealShopDataBiz(finalDataList,date,loginUserInfo);
|
return "异步任务完成";
|
};
|
executor.submit(task);
|
|
return "导入成功";
|
}catch (BusinessException e){
|
throw e;
|
}catch (Exception e){
|
throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"信息导入失败,请稍后重试");
|
}
|
}
|
|
private void dealShopDataBiz(List<ShopImport> dataList, Date date, LoginUserInfo loginUserInfo) {
|
try {
|
List<Shop> list = shopMapper.selectJoinList(Shop.class,new MPJLambdaWrapper<Shop>()
|
.selectAll(Shop.class)
|
);
|
List<Shop> insertShops = new ArrayList<>();
|
List<Shop> updateShops = new ArrayList<>();
|
for(int i=0;i<dataList.size();i++){
|
ShopImport model = dataList.get(i);
|
if(StringUtils.isBlank(model.getName())
|
&&StringUtils.isBlank(model.getCode()) ){
|
continue;
|
}
|
Shop shop = checkModelParam(model,insertShops,updateShops,i,loginUserInfo,list,date);
|
}
|
if(insertShops .size() >0){
|
int temp = 0;
|
while(temp < insertShops.size()){
|
int index;
|
if(temp + 500 <= insertShops.size()){
|
index = temp+500;
|
}else{
|
index = insertShops.size();
|
}
|
shopMapper.insert(insertShops.subList(temp,index));
|
temp = index;
|
}
|
}
|
if(updateShops .size() >0){
|
for(Shop s : updateShops){
|
//遍历更新数据
|
shopMapper.updateById(s);
|
}
|
}
|
}catch (BusinessException e){
|
throw e;
|
}catch (Exception e){
|
throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"信息导入失败,请稍后重试");
|
}finally {
|
executor.shutdown();
|
redisTemplate.delete(Constants.RedisKeys.IMPORTING_SHOP);
|
}
|
}
|
|
|
private Shop checkModelParam(ShopImport model, List<Shop> newList, List<Shop> updateList, int index, LoginUserInfo loginUserInfo
|
, List<Shop> list,Date date) {
|
if(StringUtils.isBlank(model.getOrgId())){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+(index+3)+"行【组织编码】信息不完整,请检查表格内容!");
|
}
|
if(StringUtils.isBlank(model.getName())){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+(index+3)+"行【组织名称】信息不完整,请检查表格内容!");
|
}
|
if( Constants.formatIntegerNum(model.getType()) <1 || Constants.formatIntegerNum(model.getType()) >3 ){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+(index+3)+"行【组织一级类型】信息不正确,请填写1-5正确的类型值,请检查表格内容!");
|
}
|
if( model.getSecondType()!=null && (Constants.formatIntegerNum(model.getSecondType()) <1 || Constants.formatIntegerNum(model.getSecondType()) >5) ){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+(index+3)+"行【组织二级类型】信息不正确,请填写1-5正确的类型值,请检查表格内容!");
|
}
|
if( Constants.formatIntegerNum(model.getType()) <1 || Constants.formatIntegerNum(model.getType()) >5 ){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+(index+3)+"行【组织类型】信息不正确,请填写1-5正确的类型值,请检查表格内容!");
|
}
|
if( model.getAttribute() !=null && (Constants.formatIntegerNum(model.getAttribute()) <1 || Constants.formatIntegerNum(model.getAttribute()) >5 )){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+(index+3)+"行【组织属性】信息不正确,请填写1-5正确的属性值,请检查表格内容!");
|
}
|
Shop shop = getShopByOrgID(model.getOrgId(),list);
|
if(shop == null){
|
shop = new Shop();
|
shop.setCreator(loginUserInfo.getId());
|
shop.setCreateDate(date);
|
shop.setEditor(loginUserInfo.getId());
|
shop.setEditDate(date);
|
shop.setOrgId(model.getOrgId());
|
shop.setName(model.getName());
|
shop.setCode(model.getCode());
|
shop.setUnitCode(model.getUnitCode());
|
shop.setStatus(model.getStatus());
|
if(Constants.equalsInteger(model.getStatus(),Constants.TWO)){
|
shop.setIsdeleted(Constants.ONE);
|
}else{
|
shop.setIsdeleted(Constants.ZERO);
|
}
|
shop.setType(model.getType());
|
shop.setSecondType(model.getSecondType());
|
shop.setAttribute(model.getAttribute());
|
shop.setParentIamId(model.getParentOrgId());
|
shop.setScode(model.getScode());
|
newList.add(shop);
|
}else {
|
shop.setEditor(loginUserInfo.getId());
|
shop.setEditDate(date);
|
shop.setType(model.getType());
|
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);
|
}else{
|
shop.setIsdeleted(Constants.ZERO);
|
}
|
shop.setStatus(model.getStatus());
|
shop.setAttribute(model.getAttribute());
|
shop.setParentIamId(model.getParentOrgId());
|
updateList.add(shop);
|
}
|
return shop;
|
}
|
|
private Shop getShopByOrgID(String orgId, List<Shop> list) {
|
if(list ==null || list.size() ==0){
|
return null;
|
}
|
for(Shop s :list){
|
if(StringUtils.equals(s.getOrgId(),orgId)){
|
return s;
|
}
|
}
|
return null;
|
}
|
|
@Override
|
public void updateSort(UpdateShopSortDTO dto) {
|
Shop shop = shopMapper.selectById(dto.getId());
|
if(Objects.isNull(shop)){
|
throw new BusinessException(ResponseStatus.DATA_EMPTY);
|
}
|
|
List<Shop> shopPool;
|
if (shop.getParentId() == null) {
|
shopPool = shopMapper.selectList(new QueryWrapper<Shop>().lambda()
|
.eq(Shop::getIsdeleted,Constants.ZERO)
|
.isNull(Shop::getParentId)
|
.orderByAsc(Shop::getOrderNum)
|
);
|
} else {
|
shopPool = shopMapper.selectList(new QueryWrapper<Shop>().lambda()
|
.eq(Shop::getIsdeleted,Constants.ZERO)
|
.eq(Shop::getParentId,shop.getParentId())
|
.orderByAsc(Shop::getOrderNum)
|
);
|
}
|
int currentMenuIndex = 0;
|
for (int i = 0; i < shopPool.size(); i++) {
|
if (shopPool.get(i).getId().equals(dto.getId())) {
|
currentMenuIndex = i;
|
break;
|
}
|
}
|
// 上移
|
if ("top".equals(dto.getDirection())) {
|
if (currentMenuIndex - 1 < 0) {
|
return;
|
}
|
Shop preMenu = shopPool.get(currentMenuIndex - 1);
|
shopPool.remove(currentMenuIndex - 1);
|
shopPool.add(currentMenuIndex, preMenu);
|
}
|
// 下移
|
else {
|
if (currentMenuIndex + 1 > shopPool.size() - 1) {
|
return;
|
}
|
Shop nextMenu = shopPool.remove(currentMenuIndex + 1);
|
shopPool.add(currentMenuIndex, nextMenu);
|
}
|
for (int i = 0; i < shopPool.size(); i++) {
|
shopPool.get(i).setOrderNum(i);
|
}
|
|
for (Shop updShop:shopPool) {
|
shopMapper.updateById(updShop);
|
}
|
}
|
@Override
|
public List<ShopTreeVo> shopTree(Integer type){
|
MPJLambdaWrapper<Shop> queryWrapper = new MPJLambdaWrapper<>();
|
queryWrapper.selectAll(Shop.class);
|
queryWrapper.select("t1.name_path",Shop::getParentNamePath);
|
queryWrapper.select("t1.id_path",Shop::getParentIdPath);
|
queryWrapper.select("t1.type",Shop::getParentType);
|
queryWrapper.leftJoin(Shop.class,Shop::getId,Shop::getParentId);
|
queryWrapper.eq(Shop::getIsdeleted, Constants.ZERO);
|
queryWrapper.eq(type!=null,Shop::getType,type);
|
queryWrapper.orderByAsc(true,"t.order_num");
|
List<ShopTreeVo> shopList = shopMapper.selectJoinList(ShopTreeVo.class,queryWrapper);
|
ShopTree treeBuild = new ShopTree(shopList);
|
shopList = treeBuild.buildTree();
|
return shopList;
|
}
|
@Override
|
public List<ShopTreeVo> shopTreeCache(Integer type){
|
|
return (List<ShopTreeVo>) redisTemplate.opsForValue().get(Constants.RedisKeys.SHOP_TREE);
|
}
|
@Override
|
@Async
|
public void dealShopNamePath(){
|
redisTemplate.opsForValue().set(Constants.RedisKeys.IMPORTING_SHOP,true);
|
try {
|
List<ShopTreeVo> shopList = shopTree(null);
|
updateNamePath(null,shopList);
|
}catch (Exception e){
|
|
}finally {
|
|
redisTemplate.opsForValue().set(Constants.RedisKeys.IMPORTING_SHOP,false);
|
}
|
|
}
|
/**
|
* 递归处理组织编码和名称完整路径问题
|
* @param parent
|
* @param shopList
|
*/
|
private void updateNamePath(Shop parent,List<ShopTreeVo> shopList) {
|
if(shopList!=null && shopList.size()>0){
|
for(ShopTreeVo shop : shopList){
|
Shop s = new Shop();
|
s.setId(shop.getId());
|
s.setName(shop.getName());
|
if(parent == null){
|
s.setNamePath(s.getName());
|
s.setIdPath(s.getId()+"/");
|
shopMapper.updateById(s);
|
}else{
|
String idPath = StringUtils.defaultString(parent.getIdPath(),"")+ shop.getId()+"/";
|
String namePath =StringUtils.defaultString(parent.getNamePath(),"")+"/"+shop.getName();
|
s.setParentId(parent.getId());
|
s.setNamePath(namePath);
|
s.setIdPath(idPath);
|
if(!(Constants.equalsLong(parent.getId(),shop.getParentId())
|
&& StringUtils.equals(idPath,shop.getIdPath())
|
&&StringUtils.equals(namePath,shop.getNamePath())) ){
|
shopMapper.updateById(s);
|
}
|
}
|
if(shop.getChildList()!=null && shop.getChildList().size()>0){
|
updateNamePath(s,shop.getChildList());
|
}
|
}
|
}
|
}
|
|
|
|
@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;
|
}
|
IPage<Shop> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
|
MPJLambdaWrapper<Shop> queryWrapper = new MPJLambdaWrapper<>();
|
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")
|
.eq("TYPE",Constants.TWO)
|
.eq("SECOND_TYPE",Constants.THREE)
|
.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)
|
);
|
for (Users users:usersList) {
|
if(StringUtils.isNotBlank(users.getImgurl())){
|
users.setImgurlFull(prefix + users.getImgurl());
|
}
|
}
|
shop.setUsersList(usersList);
|
}
|
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>();
|
if(Objects.nonNull(memberId)){
|
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 " +
|
" , (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);
|
Shop shop = shopMapper.selectOne(queryWrapper);
|
if(Objects.isNull(shop)){
|
throw new BusinessException(ResponseStatus.DATA_EMPTY);
|
}
|
String prefix = StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.RESOURCE_PATH).getCode()) +
|
StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.USERS_FILE).getCode());
|
List<Users> usersList =usersMapper.selectList(new QueryWrapper<Users>().lambda().eq(Users::getDepartmentId,shop.getId())
|
.eq(Users::getIsdeleted,Constants.ZERO)
|
.eq(Users::getStatus,Constants.ONE)
|
);
|
this.dealDistance(shop);
|
for (Users users:usersList) {
|
if(StringUtils.isNotBlank(users.getImgurl())){
|
users.setImgurlFull(prefix + users.getImgurl());
|
}
|
}
|
shop.setUsersList(usersList);
|
//查询经营范围信息
|
List<CategorySeg> categorySegList = categorySegMapper.selectList(new QueryWrapper<CategorySeg>().lambda().eq(CategorySeg::getOrgId,shop.getOrgId()).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<>();
|
for(CategorySeg model : categorySegList){
|
String seqName = systemDictDataBiz.getUnitName(model.getUnitCode(),unitCodeVoList);
|
if(Objects.nonNull(seqName)){
|
seqNameList.add(seqName);
|
}
|
}
|
shop.setSeqNameList(seqNameList);
|
}
|
return shop;
|
}
|
|
@Override
|
public void updShop(EditShopDTO editShopDTO) {
|
if(Objects.isNull(editShopDTO)
|
|| Objects.isNull(editShopDTO.getId())){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST);
|
}
|
Shop shop = shopMapper.selectById(editShopDTO.getId());
|
if(Objects.isNull(shop)){
|
throw new BusinessException(ResponseStatus.DATA_EMPTY);
|
}
|
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){
|
users.setManageShop(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.getOrgId().equals(shop.getOrgId())).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);
|
}
|
}
|
shop.setSeqNameList(seqNameList);
|
}
|
}
|
return shopList;
|
}
|
|
}
|