From 45e53a944cf4ac013f9c5105f3a06cb507ad0a47 Mon Sep 17 00:00:00 2001 From: zhenghuang <236220500@qq.com> Date: Mon, 25 May 2020 16:43:13 +0800 Subject: [PATCH] swagger mysql --- .../ic/activity/bean/PromotionSrcVO.java | 6 +++ .../ic/activity/bean/PushPromotionsVO.java | 15 ++++++ .../ActivityInstanceController.java | 1 + .../controller/WebAppActivityController.java | 25 ++++++--- .../listener/GenerateQRCodeListener.java | 8 +-- .../service/IPmnPromotionSrcService.java | 6 +-- .../impl/PmnPromotionSrcServiceImpl.java | 53 +++++++++---------- .../ic/store/bean/PoiStoreStaffDTO.java | 5 ++ .../ic/store/mapper/PoiStoreDOMapper.java | 23 +++++--- .../ic/store/service/PoiSellerService.java | 31 ++++++++--- .../ic/store/service/PoiStoreService.java | 39 ++++++++------ .../resources/mapper/PoiStoreDOMapper.xml | 33 ++++++++++++ .../PrivilageUserShopRelationDOMapper.xml | 2 +- 13 files changed, 180 insertions(+), 67 deletions(-) create mode 100644 src/main/java/com/kiisoo/ic/activity/bean/PushPromotionsVO.java diff --git a/src/main/java/com/kiisoo/ic/activity/bean/PromotionSrcVO.java b/src/main/java/com/kiisoo/ic/activity/bean/PromotionSrcVO.java index c03d127..db23da5 100644 --- a/src/main/java/com/kiisoo/ic/activity/bean/PromotionSrcVO.java +++ b/src/main/java/com/kiisoo/ic/activity/bean/PromotionSrcVO.java @@ -3,6 +3,8 @@ package com.kiisoo.ic.activity.bean; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.kiisoo.ic.generalize.entity.PrivilageOrganizational; +import com.kiisoo.ic.store.entity.PoiStore; import com.kiisoo.ic.store.entity.PoiStoreStaff; import lombok.Data; @@ -25,10 +27,14 @@ public class PromotionSrcVO { private ActivityInstanceVO instanceVO; + private PrivilageOrganizational organizational; + private PromotionFriendsSrcVO friendsSrc; private List storeStaffs; + private PoiStore store; + private Long caseId; private Long status; diff --git a/src/main/java/com/kiisoo/ic/activity/bean/PushPromotionsVO.java b/src/main/java/com/kiisoo/ic/activity/bean/PushPromotionsVO.java new file mode 100644 index 0000000..a425a6a --- /dev/null +++ b/src/main/java/com/kiisoo/ic/activity/bean/PushPromotionsVO.java @@ -0,0 +1,15 @@ +package com.kiisoo.ic.activity.bean; + +import lombok.Data; + +import java.util.List; + +@Data +public class PushPromotionsVO { + + Long userId; + + List list; + + Long instanceId; +} diff --git a/src/main/java/com/kiisoo/ic/activity/controller/ActivityInstanceController.java b/src/main/java/com/kiisoo/ic/activity/controller/ActivityInstanceController.java index bb96b2d..093c9f7 100644 --- a/src/main/java/com/kiisoo/ic/activity/controller/ActivityInstanceController.java +++ b/src/main/java/com/kiisoo/ic/activity/controller/ActivityInstanceController.java @@ -64,6 +64,7 @@ public class ActivityInstanceController extends BaseController { return fail(); } } + @ApiOperation(value = "店铺码分页列表") @GetMapping(value = "/StoreCode") @ApiImplicitParams({ diff --git a/src/main/java/com/kiisoo/ic/activity/controller/WebAppActivityController.java b/src/main/java/com/kiisoo/ic/activity/controller/WebAppActivityController.java index 42c7ec7..300461f 100644 --- a/src/main/java/com/kiisoo/ic/activity/controller/WebAppActivityController.java +++ b/src/main/java/com/kiisoo/ic/activity/controller/WebAppActivityController.java @@ -3,6 +3,7 @@ package com.kiisoo.ic.activity.controller; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.kiisoo.ic.activity.bean.ActivityInstanceVO; import com.kiisoo.ic.activity.bean.PromotionSrcVO; +import com.kiisoo.ic.activity.bean.PushPromotionsVO; import com.kiisoo.ic.activity.entity.PmnActivityInstance; import com.kiisoo.ic.activity.entity.PmnPromotionFriendsSrc; import com.kiisoo.ic.activity.entity.PmnPromotionSrc; @@ -42,6 +43,8 @@ import java.util.stream.Collectors; public class WebAppActivityController extends BaseController { @Autowired private IPmnPromotionSrcService pmnPromotionSrcService; + @Autowired + private PoiStoreStaffDOMapper poiStoreStaffDOMapper; @ApiOperation(value = "我的活动推广列表") @GetMapping("/get/promotions") @@ -65,18 +68,28 @@ public class WebAppActivityController extends BaseController { @PostMapping("/post/promotions") @ApiImplicitParams({ @ApiImplicitParam(name = "userId", value = "用户ID", dataType = "int", paramType = "form"), - @ApiImplicitParam(name = "list", value = "选中导购列表", dataType = "array", paramType = "form"), + @ApiImplicitParam(name = "list", value = "选中导购staffId列表", dataType = "array", paramType = "form"), @ApiImplicitParam(name = "instanceId", value = "活动ID", dataType = "array", paramType = "form"), }) - public Map pushPromotion(long userId, List list, long instanceId) { + public Map pushPromotion(@RequestBody PushPromotionsVO vo) { // TODO 将活动推广给单个或多个导购 promotion_src // TODO 如果已经推广过了,则忽略 try { List fails = new ArrayList<>(); List success = new ArrayList<>(); - for (PoiStoreStaff staff : list) { - boolean create = pmnPromotionSrcService.createCode(staff, instanceId); - if (!create) { + Long instanceId = vo.getInstanceId(); + Long userId = vo.getUserId(); + List ids = vo.getList(); + if(ids.size() <= 0) { + return fail("00004", "请传入list"); + } + if(instanceId == null) { + return fail("00004", "请传入实例ID"); + } + List staffs = poiStoreStaffDOMapper.selectBatchIds(ids); + for (PoiStoreStaff staff : staffs) { + PmnPromotionSrc create = pmnPromotionSrcService.createCode(staff, instanceId); + if (create != null) { fails.add(staff); } else { success.add(staff); @@ -87,7 +100,7 @@ public class WebAppActivityController extends BaseController { */ PmnPromotionSrc up = new PmnPromotionSrc(); up.setStatus(2L); - pmnPromotionSrcService.update(up, Wrappers.lambdaQuery().eq(PmnPromotionSrc::getInstanceId, instanceId).notIn(PmnPromotionSrc::getPromoterId, list.stream().map(PoiStoreStaff::getUserId).collect(Collectors.toList())).notIn(PmnPromotionSrc::getType, list.stream().map(PoiStoreStaff::getType).collect(Collectors.toList()))); + pmnPromotionSrcService.update(up, Wrappers.lambdaQuery().eq(PmnPromotionSrc::getInstanceId, instanceId).notIn(PmnPromotionSrc::getPromoterId, staffs.stream().map(PoiStoreStaff::getUserId).collect(Collectors.toList())).notIn(PmnPromotionSrc::getType, staffs.stream().map(PoiStoreStaff::getType).collect(Collectors.toList()))); // Map ret = new HashMap<>(); ret.put("success", success); diff --git a/src/main/java/com/kiisoo/ic/activity/listener/GenerateQRCodeListener.java b/src/main/java/com/kiisoo/ic/activity/listener/GenerateQRCodeListener.java index a54a810..b698a40 100644 --- a/src/main/java/com/kiisoo/ic/activity/listener/GenerateQRCodeListener.java +++ b/src/main/java/com/kiisoo/ic/activity/listener/GenerateQRCodeListener.java @@ -3,6 +3,7 @@ package com.kiisoo.ic.activity.listener; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.kiisoo.ic.activity.entity.PmnActivityInstance; import com.kiisoo.ic.activity.entity.PmnActivityStoreRelation; +import com.kiisoo.ic.activity.entity.PmnPromotionSrc; import com.kiisoo.ic.activity.event.ActivityInstanceCreatedEvent; import com.kiisoo.ic.activity.service.IPmnActivityStoreRelationService; import com.kiisoo.ic.activity.service.IPmnPromotionSrcService; @@ -44,9 +45,10 @@ public class GenerateQRCodeListener { List staffs = poiStoreStaffDOMapper.selectList(Wrappers.lambdaQuery().in(PoiStoreStaff::getStoreId, storeIds).eq(PoiStoreStaff::getType, 1).eq(PoiStoreStaff::getStatus, 1)); log.info("staffs: {}", staffs); List fails = new LinkedList<>(); - staffs.stream().forEach(item -> { - boolean save = pmnPromotionSrcService.createCode(item, instance.getId()); - if (!save) { + staffs.stream().collect( + Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(staff -> staff.getStoreId()))), ArrayList::new)).forEach(item -> { + PmnPromotionSrc save = pmnPromotionSrcService.createCode(item, instance.getId()); + if (save == null) { fails.add(item); } }); diff --git a/src/main/java/com/kiisoo/ic/activity/service/IPmnPromotionSrcService.java b/src/main/java/com/kiisoo/ic/activity/service/IPmnPromotionSrcService.java index f850e58..7495e94 100644 --- a/src/main/java/com/kiisoo/ic/activity/service/IPmnPromotionSrcService.java +++ b/src/main/java/com/kiisoo/ic/activity/service/IPmnPromotionSrcService.java @@ -5,8 +5,8 @@ import com.kiisoo.ic.activity.bean.PromotionSrcVO; import com.kiisoo.ic.activity.entity.PmnPromotionSrc; import com.kiisoo.ic.store.entity.PoiStoreStaff; -import java.util.Date; import java.util.List; +import java.util.Map; /** *

@@ -18,7 +18,7 @@ import java.util.List; */ public interface IPmnPromotionSrcService extends IService { List listUserCodes(Long userId) throws Exception; - List pageStoreCode(Long userId, Long instanceId, Integer pageNum, Integer pageSize) throws Exception; + Map pageStoreCode(Long userId, Long instanceId, Integer pageNum, Integer pageSize) throws Exception; String saveCodeFile(String fileUrl, String code); - boolean createCode(PoiStoreStaff staff, Long instanceId); + PmnPromotionSrc createCode(PoiStoreStaff staff, Long instanceId); } diff --git a/src/main/java/com/kiisoo/ic/activity/service/impl/PmnPromotionSrcServiceImpl.java b/src/main/java/com/kiisoo/ic/activity/service/impl/PmnPromotionSrcServiceImpl.java index 0f38fc2..dbf191c 100644 --- a/src/main/java/com/kiisoo/ic/activity/service/impl/PmnPromotionSrcServiceImpl.java +++ b/src/main/java/com/kiisoo/ic/activity/service/impl/PmnPromotionSrcServiceImpl.java @@ -1,14 +1,13 @@ package com.kiisoo.ic.activity.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; 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.pagehelper.Page; import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import com.kiisoo.ic.activity.bean.ActivityInstanceVO; import com.kiisoo.ic.activity.bean.PromotionSrcVO; -import com.kiisoo.ic.activity.entity.PmnActivityInstance; import com.kiisoo.ic.activity.entity.PmnActivityInstanceConfig; import com.kiisoo.ic.activity.entity.PmnActivityStoreRelation; import com.kiisoo.ic.activity.entity.PmnPromotionSrc; @@ -18,24 +17,17 @@ import com.kiisoo.ic.activity.service.IPmnActivityInstanceService; import com.kiisoo.ic.activity.service.IPmnActivityStoreRelationService; import com.kiisoo.ic.activity.service.IPmnPromotionSrcService; import com.kiisoo.ic.constants.Constants; -import com.kiisoo.ic.employee.entity.PrivilageCpUserDO; -import com.kiisoo.ic.employee.mapper.PrivilageCpUserDOMapper; import com.kiisoo.ic.store.entity.PoiStore; import com.kiisoo.ic.store.entity.PoiStoreStaff; -import com.kiisoo.ic.store.entity.PrivilageCpUserStoreDO; import com.kiisoo.ic.store.mapper.PoiStoreDOMapper; import com.kiisoo.ic.store.mapper.PoiStoreStaffDOMapper; -import com.kiisoo.ic.store.mapper.PrivilageCpUserStoreDOMapper; -import com.kiisoo.ic.store.service.PoiStoreService; import com.kiisoo.ic.store.service.StoreEmployeeService; import com.kiisoo.ic.system.entity.PrivilageAccountDO; import com.kiisoo.ic.system.entity.PrivilageRoleDO; import com.kiisoo.ic.system.entity.PrivilageUserDO; -import com.kiisoo.ic.system.enums.RoleEnum; import com.kiisoo.ic.system.mapper.PrivilageRoleDOMapper; import com.kiisoo.ic.system.mapper.PrivilageUserDOMapper; import com.kiisoo.ic.system.service.PrivilageAccountService; -import com.kiisoo.ic.webappmy.vo.StafferInfoVO; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.io.FileUtils; import org.apache.shiro.crypto.hash.SimpleHash; @@ -45,9 +37,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.File; -import java.io.FileOutputStream; import java.net.URL; -import java.sql.Wrapper; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; @@ -163,7 +153,7 @@ public class PmnPromotionSrcServiceImpl extends ServiceImpl pageStoreCode(Long userId, Long instanceId, Integer pageNum, Integer pageSize) throws Exception { + public Map pageStoreCode(Long userId, Long instanceId, Integer pageNum, Integer pageSize) throws Exception { Map results = new HashMap<>(); - PageHelper.startPage(pageNum, pageSize); - List storeRelations = pmnActivityStoreRelationService.list(Wrappers.lambdaQuery().eq(PmnActivityStoreRelation::getInstanceId, instanceId)); - if (CollectionUtils.isEmpty(storeRelations)) { + com.baomidou.mybatisplus.extension.plugins.pagination.Page page = new com.baomidou.mybatisplus.extension.plugins.pagination.Page(pageNum, pageSize); + com.baomidou.mybatisplus.extension.plugins.pagination.Page storeRelations = pmnActivityStoreRelationService.page(page, Wrappers.lambdaQuery().eq(PmnActivityStoreRelation::getInstanceId, instanceId)); + if (CollectionUtils.isEmpty(storeRelations.getRecords())) { results.put("this", null); } AtomicInteger number = new AtomicInteger(1 + ((pageNum - 1) * pageSize)); - for (PmnActivityStoreRelation store : storeRelations) { - PmnPromotionSrc src = getOne(Wrappers.lambdaQuery().eq(PmnPromotionSrc::getPromoterId, store.getStoreId()).eq(PmnPromotionSrc::getInstanceId, instanceId).eq(PmnPromotionSrc::getType, 2)); + List srcs = new ArrayList<>(); + for (PmnActivityStoreRelation store : storeRelations.getRecords()) { + PmnPromotionSrc src = getOne(Wrappers.lambdaQuery().eq(PmnPromotionSrc::getPromoterId, store.getStoreId()).eq(PmnPromotionSrc::getInstanceId, instanceId).eq(PmnPromotionSrc::getType, 2).last("limit 0,1")); if(src == null || src.getCode() == null) { - File codeFile = new File("activity/" + src.getCode() + ".png"); - + PoiStoreStaff staff = poiStoreStaffDOMapper.selectOne(Wrappers.lambdaQuery().eq(PoiStoreStaff::getStoreId, store.getStoreId()).eq(PoiStoreStaff::getType, 1).ne(PoiStoreStaff::getUserId, 0).eq(PoiStoreStaff::getDeleted, 0).eq(PoiStoreStaff::getStatus, 1)); + src = createCode(staff, instanceId); } + PromotionSrcVO vo = new PromotionSrcVO(); + BeanUtils.copyProperties(src, vo); + vo.setStore(poiStoreDOMapper.selectById(store.getStoreId())); + vo.setOrganizational(poiStoreDOMapper.findStoreCompany(store.getStoreId())); + srcs.add(vo); + number.incrementAndGet(); } //求分页总数 -// Page pageList = (Page) storeRelations; -// Long totalSize = pageList.getTotal(); - return null; + com.baomidou.mybatisplus.extension.plugins.pagination.Page srcVoPage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page(); + BeanUtils.copyProperties(storeRelations, srcVoPage); + srcVoPage.setRecords(srcs); + results.put("this", srcVoPage); + return results; } @Override diff --git a/src/main/java/com/kiisoo/ic/store/bean/PoiStoreStaffDTO.java b/src/main/java/com/kiisoo/ic/store/bean/PoiStoreStaffDTO.java index 543b9f3..6465361 100644 --- a/src/main/java/com/kiisoo/ic/store/bean/PoiStoreStaffDTO.java +++ b/src/main/java/com/kiisoo/ic/store/bean/PoiStoreStaffDTO.java @@ -1,8 +1,11 @@ package com.kiisoo.ic.store.bean; +import com.kiisoo.ic.activity.entity.PmnActivityInstance; import com.kiisoo.ic.store.entity.PoiStoreStaff; import lombok.Data; +import java.util.List; + /** * 店铺人员具体信息 */ @@ -26,4 +29,6 @@ public class PoiStoreStaffDTO extends PoiStoreStaff { /**员工id*/ private Long staffId; + private List instanceList; + } diff --git a/src/main/java/com/kiisoo/ic/store/mapper/PoiStoreDOMapper.java b/src/main/java/com/kiisoo/ic/store/mapper/PoiStoreDOMapper.java index 7716887..cffdeb3 100644 --- a/src/main/java/com/kiisoo/ic/store/mapper/PoiStoreDOMapper.java +++ b/src/main/java/com/kiisoo/ic/store/mapper/PoiStoreDOMapper.java @@ -2,6 +2,7 @@ package com.kiisoo.ic.store.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.kiisoo.ic.generalize.entity.CompanyStoreDO; +import com.kiisoo.ic.generalize.entity.PrivilageOrganizational; import com.kiisoo.ic.generalize.entity.ShopRegionDO; import com.kiisoo.ic.store.bean.PoiStoreDTO; import com.kiisoo.ic.store.entity.PoiStore; @@ -46,24 +47,26 @@ public interface PoiStoreDOMapper extends BaseMapper { List selectSellerByShop(Long shopId); - String selectStoreQrCode(@Param("shopId")Long shopId); - List selectShopByNameOrCode (@Param("name") String name); + String selectStoreQrCode(@Param("shopId") Long shopId); - List selectShopByCustomerIds(@Param("customerIds")List customerIds); + List selectShopByNameOrCode(@Param("name") String name); + + List selectShopByCustomerIds(@Param("customerIds") List customerIds); /** * 查询全部的店铺 + * * @return */ List selectAllCompanyStore(); - List selectShopByCustomerIdAndStore(@Param("customerIds")List customerIds, @Param("storeId") Long storeId, @Param("code") String code); + List selectShopByCustomerIdAndStore(@Param("customerIds") List customerIds, @Param("storeId") Long storeId, @Param("code") String code); /** * 查省 */ - String selectProvinceName(@Param("cityId")Long cityId); + String selectProvinceName(@Param("cityId") Long cityId); /** * 查询零售公司下的店铺 @@ -73,6 +76,14 @@ public interface PoiStoreDOMapper extends BaseMapper { * @author dexiang.jiang * @date 2020/05/17 12:07 */ - List selectShopIdByCustomerId(@Param("orgId")Long orgId); + List selectShopIdByCustomerId(@Param("orgId") Long orgId); + + /** + * 查询店铺所属公司 + * + * @param storeId + * @return + */ + PrivilageOrganizational findStoreCompany(@Param("storeId") Long storeId); } diff --git a/src/main/java/com/kiisoo/ic/store/service/PoiSellerService.java b/src/main/java/com/kiisoo/ic/store/service/PoiSellerService.java index e98a51e..86073bd 100644 --- a/src/main/java/com/kiisoo/ic/store/service/PoiSellerService.java +++ b/src/main/java/com/kiisoo/ic/store/service/PoiSellerService.java @@ -1,5 +1,10 @@ package com.kiisoo.ic.store.service; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.kiisoo.ic.activity.entity.PmnActivityInstance; +import com.kiisoo.ic.activity.entity.PmnPromotionSrc; +import com.kiisoo.ic.activity.service.IPmnActivityInstanceService; +import com.kiisoo.ic.activity.service.IPmnPromotionSrcService; import com.kiisoo.ic.customer.service.CustomerViewService; import com.kiisoo.ic.domain.service.PrivilageDomainService; import com.kiisoo.ic.generalize.service.RetailCompanyService; @@ -32,11 +37,17 @@ public class PoiSellerService { @Autowired private CustomerViewService customerViewService; + @Autowired + private IPmnActivityInstanceService pmnActivityInstanceService; + @Autowired + private IPmnPromotionSrcService pmnPromotionSrcService; + /** * 找到店铺id中所有的导购 + * * @param shopId 店铺id */ - public List getShopSeller(List shopId){ + public List getShopSeller(List shopId) { List sellers = poiStoreStaffDOMapper.selectSellersByShopIds(shopId); return sellers; } @@ -44,21 +55,21 @@ public class PoiSellerService { /** * 找到区域或者店铺中所有的导购 */ - public List getAllSeller(Long regionId, Long shopId, long userId, Long companyId){ + public List getAllSeller(Long regionId, Long shopId, long userId, Long companyId) { List shopIds = new ArrayList<>(); //先找到店铺 - if(null != shopId){ + if (null != shopId) { //有店铺就用店铺 shopIds.add(shopId); - }else if(regionId != null){ + } else if (regionId != null) { //有区域就查区域店铺 shopIds = privilageDomainService.listUserDatePermission(userId); List stores = poiStoreService.getRegionShop(regionId); List regionShopIds = stores.stream().map(i -> i.getId()).collect(Collectors.toList()); shopIds.retainAll(regionShopIds); - }else if(companyId != null){ + } else if (companyId != null) { //有公司就查公司店铺 - shopIds.addAll(customerViewService.getCompanyShop(companyId,userId)); + shopIds.addAll(customerViewService.getCompanyShop(companyId, userId)); } // else if(customers != null){ // for(Long cp : customers){ @@ -72,6 +83,14 @@ public class PoiSellerService { shopIds = privilageDomainService.listUserDatePermission(userId); } List sellers = poiStoreStaffDOMapper.selectSellersByShopIds(shopIds); + for (PoiStoreStaffDTO seller : sellers) { + List srcs = pmnPromotionSrcService.list(Wrappers.lambdaQuery().eq(PmnPromotionSrc::getPromoterId, seller.getUserId()).eq(PmnPromotionSrc::getType, 1).eq(PmnPromotionSrc::getStatus, 1).select(PmnPromotionSrc::getInstanceId)); + List instanceIds = srcs.stream().map(PmnPromotionSrc::getInstanceId).collect(Collectors.toList()); + if(instanceIds.size() > 0) { + List instances = pmnActivityInstanceService.listByIds(instanceIds); + seller.setInstanceList(instances); + } + } return sellers; } diff --git a/src/main/java/com/kiisoo/ic/store/service/PoiStoreService.java b/src/main/java/com/kiisoo/ic/store/service/PoiStoreService.java index 094407b..5deca0e 100644 --- a/src/main/java/com/kiisoo/ic/store/service/PoiStoreService.java +++ b/src/main/java/com/kiisoo/ic/store/service/PoiStoreService.java @@ -1,8 +1,14 @@ package com.kiisoo.ic.store.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.kiisoo.ic.customer.service.CustomerViewService; +import com.kiisoo.ic.domain.entity.PrivilageDomainEntityDO; +import com.kiisoo.ic.domain.mapper.PrivilageDomainEntityDOMapper; import com.kiisoo.ic.domain.service.PrivilageDomainService; +import com.kiisoo.ic.generalize.entity.PrivilageOrganizationalDomain; +import com.kiisoo.ic.generalize.mapper.PrivilageOrganizationalDomainMapper; +import com.kiisoo.ic.generalize.mapper.RetailCompanyMapper; import com.kiisoo.ic.generalize.service.RetailCompanyService; import com.kiisoo.ic.store.bean.PoiStoreDTO; import com.kiisoo.ic.store.bean.PoiStoreStaffDTO; @@ -18,6 +24,7 @@ import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.stream.Collectors; import static java.util.stream.Collectors.toList; @@ -38,6 +45,14 @@ public class PoiStoreService { @Autowired private CustomerViewService customerViewService; + + @Autowired + private PrivilageDomainEntityDOMapper privilageDomainEntityDOMapper; + + @Autowired + private PrivilageOrganizationalDomainMapper privilageOrganizationalDomainMapper; + @Autowired + private RetailCompanyMapper retailCompanyMapper; /** * 根据区域id找到店铺集合 * @param regionId @@ -84,25 +99,19 @@ public class PoiStoreService { public List getRegionShopDTO(long userId,List customerIds){ List poiStores = new ArrayList<>(); //找到店铺集合 - List shopsIds = privilageDomainService.listUserDatePermission(userId); if(null != customerIds && customerIds.size()>0){ - Set shopIds = new HashSet<>(); - customerIds.forEach(customerId -> { - Set shops = customerViewService.getCompanyShop(customerId,userId); - if (CollectionUtils.isNotEmpty(shops)){ - shopIds.addAll(shops); - } - }); + Set cs = new HashSet<>(); + cs.addAll(customerIds); + Set childs = retailCompanyMapper.selectChildList(cs); + List domains = privilageOrganizationalDomainMapper.selectList(Wrappers.lambdaQuery().in(PrivilageOrganizationalDomain::getOrgId, childs).select(PrivilageOrganizationalDomain::getDomainId)); + Set domainIds = domains.stream().map(PrivilageOrganizationalDomain::getDomainId).collect(Collectors.toSet()); + List entityDOS = privilageDomainEntityDOMapper.selectList(Wrappers.lambdaQuery().in(PrivilageDomainEntityDO::getDomainId, domainIds).eq(PrivilageDomainEntityDO::getType, 3).select(PrivilageDomainEntityDO::getEntityId)); + Set shopIds = entityDOS.stream().map(PrivilageDomainEntityDO::getEntityId).collect(Collectors.toSet()); if(shopIds.size() > 0){ - List regionPoiStores = poiStoreDOMapper.selectDTOBatchIds(shopIds); - for(PoiStoreDTO item : regionPoiStores){ - if(shopsIds.contains(item.getId())){ - poiStores.add(item); - } - } + poiStores = poiStoreDOMapper.selectDTOBatchIds(shopIds); } }else{ - poiStores = poiStoreDOMapper.selectDTOBatchIds(shopsIds); + poiStores = poiStoreDOMapper.selectDTOBatchIds(privilageDomainService.listUserDatePermission(userId)); } return poiStores; } diff --git a/src/main/resources/mapper/PoiStoreDOMapper.xml b/src/main/resources/mapper/PoiStoreDOMapper.xml index 964c2b9..8dd5031 100644 --- a/src/main/resources/mapper/PoiStoreDOMapper.xml +++ b/src/main/resources/mapper/PoiStoreDOMapper.xml @@ -206,4 +206,37 @@ and t4.entity_id = t5.id and t4.type = 3 ; + + diff --git a/src/main/resources/mapper/PrivilageUserShopRelationDOMapper.xml b/src/main/resources/mapper/PrivilageUserShopRelationDOMapper.xml index d5e5c41..ad86d77 100644 --- a/src/main/resources/mapper/PrivilageUserShopRelationDOMapper.xml +++ b/src/main/resources/mapper/PrivilageUserShopRelationDOMapper.xml @@ -11,7 +11,7 @@