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 dfabd6a..a77cc74 100644 --- a/src/main/java/com/kiisoo/ic/activity/controller/WebAppActivityController.java +++ b/src/main/java/com/kiisoo/ic/activity/controller/WebAppActivityController.java @@ -101,7 +101,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, staffs.stream().map(PoiStoreStaff::getUserId).collect(Collectors.toList())).notIn(PmnPromotionSrc::getType, staffs.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())).eq(PmnPromotionSrc::getType, 1)); // Map ret = new HashMap<>(); ret.put("success", success); diff --git a/src/main/java/com/kiisoo/ic/activity/service/impl/PmnActivityInstanceServiceImpl.java b/src/main/java/com/kiisoo/ic/activity/service/impl/PmnActivityInstanceServiceImpl.java index 8f99de2..1026c77 100644 --- a/src/main/java/com/kiisoo/ic/activity/service/impl/PmnActivityInstanceServiceImpl.java +++ b/src/main/java/com/kiisoo/ic/activity/service/impl/PmnActivityInstanceServiceImpl.java @@ -12,10 +12,17 @@ import com.kiisoo.ic.activity.mapper.PmnActivityInstanceDOMapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.kiisoo.ic.domain.service.PrivilageDomainService; import com.kiisoo.ic.generalize.entity.PrivilageOrganizational; +import com.kiisoo.ic.generalize.entity.PrivilageOrganizationalMember; +import com.kiisoo.ic.generalize.mapper.OrganizationalMemberMapper; import com.kiisoo.ic.generalize.mapper.RetailCompanyMapper; import com.kiisoo.ic.generalize.service.RetailCompanyService; import com.kiisoo.ic.store.entity.PoiStore; import com.kiisoo.ic.store.mapper.PoiStoreDOMapper; +import com.kiisoo.ic.system.entity.PrivilageAccountDO; +import com.kiisoo.ic.system.entity.PrivilageRoleDO; +import com.kiisoo.ic.system.enums.RoleEnum; +import com.kiisoo.ic.system.mapper.PrivilageAccountDOMapper; +import com.kiisoo.ic.system.mapper.PrivilageRoleDOMapper; import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; @@ -69,6 +76,12 @@ public class PmnActivityInstanceServiceImpl extends ServiceImpl pageVO(Long userId, Date startDate, Date endDate, Long organizationId, Long storeId, Integer status, Integer pageNum, Integer pageSize, Date beginTime, Date endTime) { Map results = new HashMap<>(); List shopIds = new ArrayList<>(); - + if(userId != null) { + PrivilageAccountDO privilageAccountDO = privilageAccountDOMapper.selectOne(Wrappers.lambdaQuery().eq(PrivilageAccountDO::getUserId, userId)); + PrivilageRoleDO roleDO = privilageRoleDOMapper.selectRoleName(privilageAccountDO.getUserId()); + System.out.println(roleDO.getCode()); + System.out.println(RoleEnum.getCodeByName("运营人员").getRoleCode()); + if(roleDO.getCode().equals(RoleEnum.getCodeByName("运营人员").getRoleCode())) { + PrivilageOrganizationalMember organizationalMember = organizationalMemberMapper.selectOne(Wrappers.lambdaQuery().eq(PrivilageOrganizationalMember::getUserId, userId)); + organizationId = organizationalMember.getOrgId(); + } + } // if(userId != null) { // if (storeId != null) { // shopIds.add(storeId); 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 8061f20..1381e36 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 @@ -35,6 +35,7 @@ import org.apache.commons.io.FileUtils; import org.apache.shiro.crypto.hash.SimpleHash; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -103,7 +104,7 @@ public class PmnPromotionSrcServiceImpl extends ServiceImpl srcs = list(Wrappers.lambdaQuery().eq(PmnPromotionSrc::getPromoterId, userId).eq(PmnPromotionSrc::getType, type)); + List srcs = list(Wrappers.lambdaQuery().eq(PmnPromotionSrc::getPromoterId, userId).eq(PmnPromotionSrc::getType, type).eq(PmnPromotionSrc::getStatus, 1)); for (PmnPromotionSrc src : srcs) { File codeFile = new File("activity/" + src.getCode() + ".png"); if (!codeFile.exists() || src.getQrCode() == null) { diff --git a/src/main/java/com/kiisoo/ic/config/CorsFilter.java b/src/main/java/com/kiisoo/ic/config/CorsFilter.java new file mode 100644 index 0000000..301de52 --- /dev/null +++ b/src/main/java/com/kiisoo/ic/config/CorsFilter.java @@ -0,0 +1,25 @@ +package com.kiisoo.ic.config; + +import org.springframework.context.annotation.Configuration; + +import javax.servlet.*; +import javax.servlet.annotation.WebFilter; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +@WebFilter(filterName = "CorsFilter") +@Configuration +public class CorsFilter implements Filter { + @Override + public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws ServletException, IOException { + HttpServletResponse response = (HttpServletResponse) res; + HttpServletRequest httpServletRequest = (HttpServletRequest) req; + response.setHeader("Access-Control-Allow-Origin",httpServletRequest.getHeader("Origin")); + response.setHeader("Access-Control-Allow-Credentials", "true"); + response.setHeader("Access-Control-Allow-Methods", "POST, GET, PATCH, DELETE, PUT"); + response.setHeader("Access-Control-Max-Age", "3600"); + response.setHeader("Access-Control-Allow-Headers", httpServletRequest.getHeader("Access-Control-Request-Headers")); + chain.doFilter(req, res); + } +} diff --git a/src/main/java/com/kiisoo/ic/store/controller/PoiStoreController.java b/src/main/java/com/kiisoo/ic/store/controller/PoiStoreController.java index d4b1ac7..76dada5 100644 --- a/src/main/java/com/kiisoo/ic/store/controller/PoiStoreController.java +++ b/src/main/java/com/kiisoo/ic/store/controller/PoiStoreController.java @@ -29,9 +29,9 @@ public class PoiStoreController extends BaseController { private PoiStoreService poiStoreService; + /** * 根据用户id,区域id获取店铺 - * * @return */ @RequestMapping(value = "/user/shop", method = RequestMethod.POST) @@ -61,34 +61,32 @@ public class PoiStoreController extends BaseController { /** * 根据用户id,区域id获取店铺 - * * @return */ - @RequestMapping(value = "/user/shopDTO", method = RequestMethod.POST) + @RequestMapping(value = "/user/shopDTO",method = RequestMethod.POST) @ResponseBody - public Map getUserShopDTO(@RequestParam("userId") long userId, @RequestParam(value = "customerIds", required = false) String customerIds) { + public Map getUserShopDTO(@RequestParam("userId")long userId, @RequestParam(value = "customerIds",required =false)String customerIds){ try { List customers = null; - if (StringUtils.isNotBlank(customerIds)) { + if (StringUtils.isNotBlank(customerIds)){ String[] split = customerIds.replace("[", "").replace("]", "").split(","); List strings = Arrays.asList(split); - if (CollectionUtils.isNotEmpty(strings)) { + if (CollectionUtils.isNotEmpty(strings)){ customers = new ArrayList<>(); - for (String customerId : strings) { - if (StringUtils.isNotBlank(customerId)) { + for (String customerId:strings){ + if (StringUtils.isNotBlank(customerId)){ customers.add(Long.parseLong(customerId)); } } } } - return data(poiStoreService.getRegionShopDTO(userId, customers)); - } catch (Exception e) { - log.error("获取用户店铺失败", e); + return data(poiStoreService.getRegionShopDTO(userId,customers)); + }catch (Exception e){ + log.error("获取用户店铺失败",e); return fail(); } } - /** * 查询所有店铺 * 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 70ce254..4952c62 100644 --- a/src/main/java/com/kiisoo/ic/store/service/PoiStoreService.java +++ b/src/main/java/com/kiisoo/ic/store/service/PoiStoreService.java @@ -53,43 +53,44 @@ public class PoiStoreService { private PrivilageOrganizationalDomainMapper privilageOrganizationalDomainMapper; @Autowired private RetailCompanyMapper retailCompanyMapper; - + @Autowired + private IPmnActivityInstanceService pmnActivityInstanceService; + @Autowired + private IPmnActivityStoreRelationService storeRelationService; /** * 根据区域id找到店铺集合 - * * @param regionId */ - public List getRegionShop(long regionId) { + public List getRegionShop(long regionId){ List poiStores = poiStoreDOMapper.selectRegionShop(regionId); return poiStores; } /** * 根据区域id找到店铺集合,若没有,则查用户所有店铺 - * * @param regionId */ - public List getRegionShop(long userId, List customerIds) { + public List getRegionShop(long userId,List customerIds){ List poiStores = new ArrayList<>(); //找到店铺集合 List shopsIds = privilageDomainService.listUserDatePermission(userId); - if (null != customerIds && customerIds.size() > 0) { + if(null != customerIds && customerIds.size()>0){ Set shopIds = new HashSet<>(); customerIds.forEach(customerId -> { - Set shops = customerViewService.getCompanyShop(customerId, userId); - if (CollectionUtils.isNotEmpty(shops)) { + Set shops = customerViewService.getCompanyShop(customerId,userId); + if (CollectionUtils.isNotEmpty(shops)){ shopIds.addAll(shops); } }); - if (shopIds.size() > 0) { + if(shopIds.size() > 0){ List regionPoiStores = poiStoreDOMapper.selectBatchIds(shopIds); - for (PoiStore item : regionPoiStores) { - if (shopsIds.contains(item.getId())) { + for(PoiStore item : regionPoiStores){ + if(shopsIds.contains(item.getId())){ poiStores.add(item); } } } - } else { + }else{ poiStores = poiStoreDOMapper.selectBatchIds(shopsIds); } return poiStores; @@ -97,29 +98,37 @@ public class PoiStoreService { /** * 根据区域id找到店铺集合,若没有,则查用户所有店铺 - * * @param regionId */ - public List getRegionShopDTO(long userId, List customerIds) { + public List getRegionShopDTO(long userId,List customerIds, Long scheduleId){ List poiStores = new ArrayList<>(); //找到店铺集合 - if (null != customerIds && customerIds.size() > 0) { + if(null != customerIds && customerIds.size()>0){ Set cs = new HashSet<>(); cs.addAll(customerIds); + Set joined = new HashSet<>(); + if(scheduleId != null) { + List instances = pmnActivityInstanceService.list(Wrappers.lambdaQuery().eq(PmnActivityInstance::getScheduleId, scheduleId).select(PmnActivityInstance::getId)); + Set instanceIds = instances.stream().map(PmnActivityInstance::getId).collect(Collectors.toSet()); + List relations = storeRelationService.list(Wrappers.lambdaQuery().in(PmnActivityStoreRelation::getInstanceId, instanceIds).select(PmnActivityStoreRelation::getStoreId)); + joined = relations.stream().map(PmnActivityStoreRelation::getStoreId).collect(Collectors.toSet()); + } 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) { + if(joined.size() > 0) { + shopIds.removeAll(joined); + } + if(shopIds.size() > 0){ poiStores = poiStoreDOMapper.selectDTOBatchIds(shopIds); } - } else { + }else{ poiStores = poiStoreDOMapper.selectDTOBatchIds(privilageDomainService.listUserDatePermission(userId)); } return poiStores; } - /** * 查询所有店铺 * @@ -132,21 +141,20 @@ public class PoiStoreService { /** * 根据区域id找到店铺集合,若没有,则查用户所有店铺 - * * @param companyId 零售公司ID */ - public List getStoreByCompanyId(long userId, Long companyId) { + public List getStoreByCompanyId(long userId,Long companyId){ List poiStores = new ArrayList<>(); //找到店铺集合 List shopsIds = privilageDomainService.listUserDatePermission(userId); - if (!companyId.equals(0L)) { - Set shops = customerViewService.getCompanyShop(companyId, userId); - if (shops.size() > 0) { + if(!companyId.equals(0L)){ + Set shops = customerViewService.getCompanyShop(companyId,userId); + if(shops.size() > 0){ List regionPoiStores = poiStoreDOMapper.selectBatchIds(shops); List intersection = regionPoiStores.stream().filter(item -> shops.contains(item.getId())).collect(toList()); return intersection; } - } else { + }else{ poiStores = poiStoreDOMapper.selectBatchIds(shopsIds); } return poiStores;