From e44338285e4b3f544f63884baf173ce561026b10 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Wed, 29 Oct 2025 15:27:15 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E6=B4=BB=E5=8A=A8=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=8A=A5=E5=8D=95=E8=B5=A0=E9=80=81=E6=B7=BB=E5=8A=A0=E6=9D=83?= =?UTF-8?q?=E9=99=90=E8=BF=87=E6=BB=A4=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/api/ApiActivityController.java | 52 +++++++++------- .../base/mapper/AcBaseAuthorityMapper.java | 14 ++++- .../base/service/IAcBaseAuthorityService.java | 8 ++- .../impl/AcBaseAuthorityServiceImpl.java | 62 ++++++++++++++++++- .../activity/base/AcBaseAuthorityMapper.xml | 22 +++++++ .../activity/base/AcBaseConfigMapper.xml | 15 +---- .../domain/activity/base/AcBaseAuthority.java | 3 - 7 files changed, 130 insertions(+), 46 deletions(-) diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/base/controller/api/ApiActivityController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/base/controller/api/ApiActivityController.java index 61822838..3cdcd018 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/base/controller/api/ApiActivityController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/base/controller/api/ApiActivityController.java @@ -1,7 +1,10 @@ package com.hzs.activity.base.controller.api; +import cn.hutool.core.collection.CollectionUtil; import com.hzs.activity.base.param.ActivityParam; +import com.hzs.activity.base.service.IAcBaseAuthorityService; import com.hzs.activity.base.service.IAcBaseConfigService; +import com.hzs.common.core.enums.EActType; import com.hzs.common.core.web.controller.BaseController; import com.hzs.common.core.web.page.TableDataInfo; import com.hzs.common.domain.activity.base.AcBaseConfig; @@ -14,44 +17,51 @@ import java.util.ArrayList; import java.util.List; /** - * @description: 查询活动列表 - * @author: sui q - * @time: 2023/4/27 09:15 - * @classname: ApiActivityController - * @package_name: com.hzs.activity.base.controller.api - * version 1.0.0 + * 查询活动列表 */ @RestController @RequestMapping("/api/base") public class ApiActivityController extends BaseController { - private IAcBaseConfigService baseConfigService; - @Autowired - public void setBaseConfigService(IAcBaseConfigService baseConfigService) { - this.baseConfigService = baseConfigService; - } + private IAcBaseConfigService iAcBaseConfigService; + @Autowired + private IAcBaseAuthorityService iAcBaseAuthorityService; /* - * @description: 查询活动列表 - * @author: sui q - * @date: 2023/4/21 17:33 - * @param: null null + * 查询活动列表 **/ @GetMapping("/activity-list") public TableDataInfo activityList() { - return getDataTable(baseConfigService.queryBaseConfigList(SecurityUtils.getPkCountry(), SecurityUtils.getUserId())); + Long pkMember = SecurityUtils.getUserId(); + String memberCode = SecurityUtils.getMemberCode(); + + List resultList = new ArrayList<>(); + + List list = iAcBaseConfigService.queryBaseConfigList(SecurityUtils.getPkCountry(), SecurityUtils.getUserId()); + if (CollectionUtil.isNotEmpty(list)) { + for (AcBaseConfigExt acBaseConfigExt : list) { + if (EActType.DECLARATION_GIFT.getValue() == acBaseConfigExt.getActType()) { + // 报单赠送,需要处理权限 + if (!iAcBaseAuthorityService.checkAuthority(pkMember, memberCode, acBaseConfigExt.getPkId())) { + continue; + } + } + resultList.add(acBaseConfigExt); + } + } + + TableDataInfo tableDataInfo = getDataTable(list); + tableDataInfo.setRows(resultList); + return tableDataInfo; } /* - * @description: 查询活动列表 - * @author: sui q - * @date: 2023/4/21 17:33 - * @param: null null + * 查询活动列表 **/ @PostMapping("/activity-detail") public TableDataInfo activityDetail(@RequestBody ActivityParam activityParam) { - AcBaseConfigExt acBaseConfig = baseConfigService.queryBaseConfigDetail(activityParam.getPkId(), SecurityUtils.getPkCountry()); + AcBaseConfigExt acBaseConfig = iAcBaseConfigService.queryBaseConfigDetail(activityParam.getPkId(), SecurityUtils.getPkCountry()); List acBaseConfigList = new ArrayList<>(); acBaseConfigList.add(acBaseConfig); return getDataTable(acBaseConfigList); diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/base/mapper/AcBaseAuthorityMapper.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/base/mapper/AcBaseAuthorityMapper.java index 2e06fba1..bccb4e85 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/base/mapper/AcBaseAuthorityMapper.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/base/mapper/AcBaseAuthorityMapper.java @@ -5,12 +5,10 @@ import com.hzs.common.domain.activity.base.AcBaseAuthority; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Set; /** * 活动基础权限表 Mapper 接口 - * - * @author hzs - * @since 2025-02-18 */ public interface AcBaseAuthorityMapper extends BaseMapper { @@ -40,4 +38,14 @@ public interface AcBaseAuthorityMapper extends BaseMapper { */ List listAuthority(@Param("pkBaseId") Long pkBaseId); + /** + * 批量查询会员是否在血缘伞下 + */ + Set queryBlood(@Param("paramList") Set paramList, @Param("pkMember") Long pkMember); + + /** + * 批量查询会员是否在安置伞下 + */ + Set queryPlace(@Param("paramList") Set paramList, @Param("pkMember") Long pkMember); + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/base/service/IAcBaseAuthorityService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/base/service/IAcBaseAuthorityService.java index 94cc7d3d..6455dfab 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/base/service/IAcBaseAuthorityService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/base/service/IAcBaseAuthorityService.java @@ -7,9 +7,6 @@ import java.util.List; /** * 活动基础权限表 服务类 - * - * @author hzs - * @since 2025-02-18 */ public interface IAcBaseAuthorityService extends IService { @@ -39,4 +36,9 @@ public interface IAcBaseAuthorityService extends IService { */ List listAuthority(Long pkBaseId); + /** + * 校验权限 + */ + boolean checkAuthority(Long pkMember, String memberCode, Long pkBaseId); + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/base/service/impl/AcBaseAuthorityServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/base/service/impl/AcBaseAuthorityServiceImpl.java index 4bae60e5..cee11255 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/base/service/impl/AcBaseAuthorityServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/base/service/impl/AcBaseAuthorityServiceImpl.java @@ -1,18 +1,19 @@ package com.hzs.activity.base.service.impl; +import cn.hutool.core.collection.CollectionUtil; import com.hzs.activity.base.mapper.AcBaseAuthorityMapper; import com.hzs.activity.base.service.IAcBaseAuthorityService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.hzs.common.core.enums.EWaresPermissionType; import com.hzs.common.domain.activity.base.AcBaseAuthority; import org.springframework.stereotype.Service; +import java.util.HashSet; import java.util.List; +import java.util.Set; /** * 活动基础权限表 服务实现类 - * - * @author hzs - * @since 2025-02-18 */ @Service public class AcBaseAuthorityServiceImpl extends ServiceImpl implements IAcBaseAuthorityService { @@ -32,4 +33,59 @@ public class AcBaseAuthorityServiceImpl extends ServiceImpl authorityList = baseMapper.listAuthority(pkBaseId); + if (CollectionUtil.isNotEmpty(authorityList)) { + // 血缘查询 + Set authorityParentSet = new HashSet<>(); + // 安置查询 + Set authorityPlaceSet = new HashSet<>(); + + for (AcBaseAuthority acBaseAuthority : authorityList) { + if (EWaresPermissionType.MEMBER.getValue() == acBaseAuthority.getAuthorityType()) { + // 指定会员 + if (acBaseAuthority.getMemberCode().equals(memberCode)) { + return true; + } + } else if (EWaresPermissionType.BLOOD_ALLOW.getValue() == acBaseAuthority.getAuthorityType() + || EWaresPermissionType.BLOOD_STOP.getValue() == acBaseAuthority.getAuthorityType()) { + // 血缘关系 + authorityParentSet.add(acBaseAuthority.getMemberCode()); + } else if (EWaresPermissionType.PLACE_ALLWO.getValue() == acBaseAuthority.getAuthorityType() + || EWaresPermissionType.PLACE_STOP.getValue() == acBaseAuthority.getAuthorityType()) { + // 安置关系 + authorityPlaceSet.add(acBaseAuthority.getMemberCode()); + } + } + + // 查询血缘 + Set authParentList = new HashSet<>(); + if (authorityParentSet.size() > 0) { + authParentList = baseMapper.queryBlood(authorityParentSet, pkMember); + } + // 查询安置 + Set authPlaceList = new HashSet<>(); + if (authorityPlaceSet.size() > 0) { + authPlaceList = baseMapper.queryPlace(authorityPlaceSet, pkMember); + } + + for (AcBaseAuthority acBaseAuthority : authorityList) { + if (acBaseAuthority.getAuthorityType() == EWaresPermissionType.BLOOD_STOP.getValue()) { + // 血缘禁止 + if (authParentList.contains(pkMember)) { + return false; + } + } else if (acBaseAuthority.getAuthorityType() == EWaresPermissionType.PLACE_STOP.getValue()) { + // 安置禁止 + if (authPlaceList.contains(pkMember)) { + return false; + } + } + } + + } + return true; + } + } diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/activity/base/AcBaseAuthorityMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/activity/base/AcBaseAuthorityMapper.xml index 0e2d1e70..5ef62d21 100644 --- a/bd-business/bd-business-sale/src/main/resources/mapper/activity/base/AcBaseAuthorityMapper.xml +++ b/bd-business/bd-business-sale/src/main/resources/mapper/activity/base/AcBaseAuthorityMapper.xml @@ -36,4 +36,26 @@ and aba.pk_base_id = #{pkBaseId} + + + + diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/activity/base/AcBaseConfigMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/activity/base/AcBaseConfigMapper.xml index f9f4f7f8..9ba441b9 100644 --- a/bd-business/bd-business-sale/src/main/resources/mapper/activity/base/AcBaseConfigMapper.xml +++ b/bd-business/bd-business-sale/src/main/resources/mapper/activity/base/AcBaseConfigMapper.xml @@ -56,25 +56,14 @@ when act_end_date < sysdate then 2 else 1 end) ACT_STATUS, ac.act_explain, - nvl(draw.exist_draw_num, 1) exist_draw_num, - pk_new_people, - nvl(people.exist_new_people_gift, 1) exist_new_people_gift + nvl(draw.exist_draw_num, 1) exist_draw_num from ac_base_config ac left join ( select pk_base_id, 0 exist_draw_num from ac_draw_reward_num where del_flag = 0 and pk_member = #{pkMember} - and (total_surplus_num + available_surplus_num) > 0) draw - on ac.pk_id = draw.pk_base_id - left join ( - select distinct pk_base_id, pk_new_people, 0 exist_new_people_gift - from ac_people_service - where del_flag = 0 - and pk_member = #{pkMember} - and plan_state = 0 - ) people - on ac.pk_id = people.pk_base_id + and (total_surplus_num + available_surplus_num) > 0) draw on ac.pk_id = draw.pk_base_id where ac.del_flag = 0 and ac.pk_country = #{pkCountry} and ac.dis_start_date <= sysdate diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/activity/base/AcBaseAuthority.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/activity/base/AcBaseAuthority.java index fb5ccf89..00b87ceb 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/activity/base/AcBaseAuthority.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/activity/base/AcBaseAuthority.java @@ -9,9 +9,6 @@ import java.io.Serializable; /** * 活动基础权限表 - * - * @author hzs - * @since 2025-02-18 */ @Data @Accessors(chain = true)