Compare commits
	
		
			2 Commits
		
	
	
		
			5706d70562
			...
			a0180bb249
		
	
	| Author | SHA1 | Date | 
|---|---|---|
|  | a0180bb249 | |
|  | 79850099f0 | 
|  | @ -21,6 +21,7 @@ import java.math.BigDecimal; | ||||||
| import java.util.Date; | import java.util.Date; | ||||||
| import java.util.List; | import java.util.List; | ||||||
| import java.util.Map; | import java.util.Map; | ||||||
|  | import java.util.Set; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * 会员服务接口 |  * 会员服务接口 | ||||||
|  | @ -443,4 +444,5 @@ public interface IMemberServiceApi { | ||||||
|     R<Map<String, Long>> memberRegionMap(Date settleDate); |     R<Map<String, Long>> memberRegionMap(Date settleDate); | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |     R<List<CuMember>> getMemberByIds(Set<Long> memberIds); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -36,10 +36,7 @@ import org.springframework.beans.factory.annotation.Autowired; | ||||||
| import org.springframework.transaction.annotation.Transactional; | import org.springframework.transaction.annotation.Transactional; | ||||||
| 
 | 
 | ||||||
| import java.math.BigDecimal; | import java.math.BigDecimal; | ||||||
| import java.util.Date; | import java.util.*; | ||||||
| import java.util.HashMap; |  | ||||||
| import java.util.List; |  | ||||||
| import java.util.Map; |  | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * 会员涉及dubbo服务 |  * 会员涉及dubbo服务 | ||||||
|  | @ -520,4 +517,9 @@ public class MemberServiceProvider implements IMemberServiceApi { | ||||||
|         return R.ok(resultMap); |         return R.ok(resultMap); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     @Override | ||||||
|  |     public R<List<CuMember>> getMemberByIds(Set<Long> memberIds) { | ||||||
|  |         return R.ok(iCuMemberService.getMemberByIds(memberIds)); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -23,10 +23,7 @@ import com.hzs.member.share.param.ShareRegisterParam; | ||||||
| import com.hzs.system.sys.dto.ApprovalBusinessResultDTO; | import com.hzs.system.sys.dto.ApprovalBusinessResultDTO; | ||||||
| 
 | 
 | ||||||
| import java.math.BigDecimal; | import java.math.BigDecimal; | ||||||
| import java.util.Collection; | import java.util.*; | ||||||
| import java.util.Date; |  | ||||||
| import java.util.List; |  | ||||||
| import java.util.Map; |  | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * 会员 服务类 |  * 会员 服务类 | ||||||
|  | @ -1029,4 +1026,5 @@ public interface ICuMemberService extends IService<CuMember> { | ||||||
|      */ |      */ | ||||||
|     void clearZeroMember(); |     void clearZeroMember(); | ||||||
| 
 | 
 | ||||||
|  |     List<CuMember> getMemberByIds(Set<Long> memberIds); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -3771,4 +3771,10 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i | ||||||
|         baseMapper.clearZeroMember(); |         baseMapper.clearZeroMember(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     @Override | ||||||
|  |     public List<CuMember> getMemberByIds(Set<Long> memberIds) { | ||||||
|  |         return baseMapper.selectList(new LambdaQueryWrapper<CuMember>() | ||||||
|  |                 .in(CuMember::getPkId, memberIds)); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -2,6 +2,7 @@ package com.hzs.activity.declaration.param; | ||||||
| 
 | 
 | ||||||
| import com.fasterxml.jackson.annotation.JsonFormat; | import com.fasterxml.jackson.annotation.JsonFormat; | ||||||
| import com.hzs.activity.add.param.AcAddUpgradeConfigParam; | import com.hzs.activity.add.param.AcAddUpgradeConfigParam; | ||||||
|  | import com.hzs.common.domain.activity.base.AcBaseAuthority; | ||||||
| import com.hzs.common.domain.activity.base.AcBaseConfig; | import com.hzs.common.domain.activity.base.AcBaseConfig; | ||||||
| import com.hzs.common.domain.activity.base.AcGoalMemberConfig; | import com.hzs.common.domain.activity.base.AcGoalMemberConfig; | ||||||
| import lombok.AllArgsConstructor; | import lombok.AllArgsConstructor; | ||||||
|  | @ -108,6 +109,11 @@ public class AcDeclarationDetailParam implements Serializable { | ||||||
|      */ |      */ | ||||||
|     private List<AcGoalMemberConfig> goalMemberConfigList; |     private List<AcGoalMemberConfig> goalMemberConfigList; | ||||||
| 
 | 
 | ||||||
|  |     /** | ||||||
|  |      * 权限配置列表 | ||||||
|  |      */ | ||||||
|  |     private List<AcBaseAuthority> authorityList; | ||||||
|  | 
 | ||||||
|     /** |     /** | ||||||
|      * 是否强制弹框 0 是  1 否 |      * 是否强制弹框 0 是  1 否 | ||||||
|      */ |      */ | ||||||
|  |  | ||||||
|  | @ -44,5 +44,9 @@ public class AcDeclarationParam { | ||||||
|      * 报单赠送信息 |      * 报单赠送信息 | ||||||
|      */ |      */ | ||||||
|     private List<AcDeclarationConfigParam> acDeclarationConfigParams; |     private List<AcDeclarationConfigParam> acDeclarationConfigParams; | ||||||
|  |     /** | ||||||
|  |      * 权限配置列表 | ||||||
|  |      */ | ||||||
|  |     private List<AcBaseAuthority> authorityList; | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1,9 +1,13 @@ | ||||||
| package com.hzs.activity.declaration.service.impl; | package com.hzs.activity.declaration.service.impl; | ||||||
| 
 | 
 | ||||||
| import cn.hutool.core.bean.BeanUtil; | import cn.hutool.core.bean.BeanUtil; | ||||||
|  | import cn.hutool.core.collection.CollectionUtil; | ||||||
|  | import cn.hutool.core.util.StrUtil; | ||||||
| import com.alibaba.nacos.client.naming.utils.CollectionUtils; | import com.alibaba.nacos.client.naming.utils.CollectionUtils; | ||||||
| import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||||
|  | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||||
| import com.hzs.activity.base.param.ActivityParam; | import com.hzs.activity.base.param.ActivityParam; | ||||||
|  | import com.hzs.activity.base.service.IAcBaseAuthorityService; | ||||||
| import com.hzs.activity.base.service.IAcBaseConfigService; | import com.hzs.activity.base.service.IAcBaseConfigService; | ||||||
| import com.hzs.activity.base.service.IActivityService; | import com.hzs.activity.base.service.IActivityService; | ||||||
| import com.hzs.activity.declaration.mapper.AcDeclarationGiftConfigMapper; | import com.hzs.activity.declaration.mapper.AcDeclarationGiftConfigMapper; | ||||||
|  | @ -14,12 +18,12 @@ import com.hzs.activity.declaration.param.AcDeclarationProductParam; | ||||||
| import com.hzs.activity.declaration.service.IAcDeclarationGiftConfigService; | import com.hzs.activity.declaration.service.IAcDeclarationGiftConfigService; | ||||||
| import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | ||||||
| import com.hzs.activity.declaration.service.IAcDeclarationGiftDetailService; | import com.hzs.activity.declaration.service.IAcDeclarationGiftDetailService; | ||||||
|  | import com.hzs.activity.recommend.param.AcRecommendParam; | ||||||
|  | import com.hzs.common.core.enums.*; | ||||||
|  | import com.hzs.common.domain.activity.base.AcBaseAuthority; | ||||||
| import com.hzs.common.domain.activity.declaration.AcDeclarationGiftConfig; | import com.hzs.common.domain.activity.declaration.AcDeclarationGiftConfig; | ||||||
| import com.hzs.common.domain.activity.declaration.AcDeclarationGiftDetail; | import com.hzs.common.domain.activity.declaration.AcDeclarationGiftDetail; | ||||||
| import com.hzs.common.core.constant.CountryConstants; | import com.hzs.common.core.constant.CountryConstants; | ||||||
| import com.hzs.common.core.enums.EActType; |  | ||||||
| import com.hzs.common.core.enums.EApprovalBusiness; |  | ||||||
| import com.hzs.common.core.enums.ERegistrationAuthority; |  | ||||||
| import com.hzs.common.core.web.domain.AjaxResult; | import com.hzs.common.core.web.domain.AjaxResult; | ||||||
| import com.hzs.common.domain.activity.base.AcBaseConfig; | import com.hzs.common.domain.activity.base.AcBaseConfig; | ||||||
| import com.hzs.common.security.utils.SecurityUtils; | import com.hzs.common.security.utils.SecurityUtils; | ||||||
|  | @ -64,6 +68,8 @@ public class AcDeclarationGiftConfigServiceImpl extends ServiceImpl<AcDeclaratio | ||||||
|     private IAcDeclarationGiftConfigService iAcDeclarationGiftConfigService; |     private IAcDeclarationGiftConfigService iAcDeclarationGiftConfigService; | ||||||
|     @Autowired |     @Autowired | ||||||
|     private IGradeServiceApi iGradeServiceApi; |     private IGradeServiceApi iGradeServiceApi; | ||||||
|  |     @Autowired | ||||||
|  |     private IAcBaseAuthorityService iAcBaseAuthorityService; | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     public AjaxResult getDetail(Integer pkId) { |     public AjaxResult getDetail(Integer pkId) { | ||||||
|  | @ -74,13 +80,17 @@ public class AcDeclarationGiftConfigServiceImpl extends ServiceImpl<AcDeclaratio | ||||||
|                 .eq(AcDeclarationGiftConfig::getPkBaseId, pkId) |                 .eq(AcDeclarationGiftConfig::getPkBaseId, pkId) | ||||||
|                 .eq(AcDeclarationGiftConfig::getDelFlag, 0)); |                 .eq(AcDeclarationGiftConfig::getDelFlag, 0)); | ||||||
|         ArrayList<AcDeclarationConfigParam> acDeclarationConfigParams = new ArrayList<>(); |         ArrayList<AcDeclarationConfigParam> acDeclarationConfigParams = new ArrayList<>(); | ||||||
|  |         ArrayList<AcBaseAuthority> acBaseAuthorities = new ArrayList<>(); | ||||||
|         list.forEach(item -> { |         list.forEach(item -> { | ||||||
|             AcDeclarationConfigParam acDeclarationConfigParam = BeanUtil.copyProperties(item, AcDeclarationConfigParam.class); |             AcDeclarationConfigParam acDeclarationConfigParam = BeanUtil.copyProperties(item, AcDeclarationConfigParam.class); | ||||||
|             List<AcDeclarationProductParam> declarationConfigParams = iAcDeclarationGiftDetailService.listByPKRuleId(item.getPkId()); |             List<AcDeclarationProductParam> declarationConfigParams = iAcDeclarationGiftDetailService.listByPKRuleId(item.getPkId()); | ||||||
|  |             // 添加商品详情 | ||||||
|             acDeclarationConfigParam.setAcDeclarationProductParamList(declarationConfigParams); |             acDeclarationConfigParam.setAcDeclarationProductParamList(declarationConfigParams); | ||||||
|             acDeclarationConfigParams.add(acDeclarationConfigParam); |             acDeclarationConfigParams.add(acDeclarationConfigParam); | ||||||
|  |             // 添加权限列表 | ||||||
|  |             acBaseAuthorities.addAll(iAcBaseAuthorityService.listAuthority(item.getPkBaseId())); | ||||||
|         }); |         }); | ||||||
| 
 |         activityParam.setAuthorityList(acBaseAuthorities); | ||||||
|         activityParam.setAcDeclarationConfigParams(acDeclarationConfigParams); |         activityParam.setAcDeclarationConfigParams(acDeclarationConfigParams); | ||||||
|         activityParam.setPkBaseId(baseConfig.getPkId()); |         activityParam.setPkBaseId(baseConfig.getPkId()); | ||||||
|         return AjaxResult.success(activityParam); |         return AjaxResult.success(activityParam); | ||||||
|  | @ -105,7 +115,7 @@ public class AcDeclarationGiftConfigServiceImpl extends ServiceImpl<AcDeclaratio | ||||||
|         // 新增活动基本配置 |         // 新增活动基本配置 | ||||||
|         AcBaseConfig acBaseConfig = iActivityService.saveBaseConfig(activityParam); |         AcBaseConfig acBaseConfig = iActivityService.saveBaseConfig(activityParam); | ||||||
|         // 新增加购活动配置 |         // 新增加购活动配置 | ||||||
|         saveDeclarationConfig(acDeclarationParam.getAcDeclarationConfigParams(), acBaseConfig); |         saveDeclarationConfig(acDeclarationParam, acBaseConfig); | ||||||
|         //日志 |         //日志 | ||||||
|         activityParam.setBusinessCode(acDeclarationParam.getActivityParam().getBusinessCode()); |         activityParam.setBusinessCode(acDeclarationParam.getActivityParam().getBusinessCode()); | ||||||
|         iActivityService.createBaseConfigLog(activityParam, new StringBuffer(), null, EApprovalBusiness.AC_DECLARATION_GIFT_ADD.getValue(), false); |         iActivityService.createBaseConfigLog(activityParam, new StringBuffer(), null, EApprovalBusiness.AC_DECLARATION_GIFT_ADD.getValue(), false); | ||||||
|  | @ -192,7 +202,7 @@ public class AcDeclarationGiftConfigServiceImpl extends ServiceImpl<AcDeclaratio | ||||||
|         activityParam.setPkCountry(loginUser.getDataCountry()); |         activityParam.setPkCountry(loginUser.getDataCountry()); | ||||||
|         activityParam.setPkCreator(loginUser.getUserId()); |         activityParam.setPkCreator(loginUser.getUserId()); | ||||||
|         activityParam.setActType(EActType.DECLARATION_GIFT.getValue()); |         activityParam.setActType(EActType.DECLARATION_GIFT.getValue()); | ||||||
|         updateDeclarationConfig(activityParam, acDeclarationParam.getAcDeclarationConfigParams()); |         updateDeclarationConfig(activityParam, acDeclarationParam); | ||||||
|         iActivityService.createBaseConfigLog(activityParam, new StringBuffer(), null, EApprovalBusiness.AC_DECLARATION_GIFT_UPDATE.getValue(), false); |         iActivityService.createBaseConfigLog(activityParam, new StringBuffer(), null, EApprovalBusiness.AC_DECLARATION_GIFT_UPDATE.getValue(), false); | ||||||
|         return null; |         return null; | ||||||
|     } |     } | ||||||
|  | @ -212,6 +222,25 @@ public class AcDeclarationGiftConfigServiceImpl extends ServiceImpl<AcDeclaratio | ||||||
|         return null; |         return null; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     /** | ||||||
|  |      * 保存活动权限 | ||||||
|  |      * | ||||||
|  |      * @param recommendParam | ||||||
|  |      */ | ||||||
|  |     private void saveAuthority(AcDeclarationParam recommendParam,AcBaseConfig acBaseConfig) { | ||||||
|  |         List<AcBaseAuthority> authorityList = recommendParam.getAuthorityList(); | ||||||
|  |         boolean hasInvalid = authorityList.stream() | ||||||
|  |                 .anyMatch(auth -> auth.getAuthorityType() == null); | ||||||
|  |         if (hasInvalid) { | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  |         if (CollectionUtil.isNotEmpty(authorityList)) { | ||||||
|  |             for (AcBaseAuthority acBaseAuthority : authorityList) { | ||||||
|  |                 acBaseAuthority.setPkBaseId(acBaseConfig.getPkId()); | ||||||
|  |             } | ||||||
|  |             iAcBaseAuthorityService.saveBatch(authorityList); | ||||||
|  |         } | ||||||
|  |     } | ||||||
| 
 | 
 | ||||||
|     private void removeDeclarationConfig(Long pkId) { |     private void removeDeclarationConfig(Long pkId) { | ||||||
|         // 删除活动基本配置 |         // 删除活动基本配置 | ||||||
|  | @ -222,10 +251,15 @@ public class AcDeclarationGiftConfigServiceImpl extends ServiceImpl<AcDeclaratio | ||||||
|         // 删除报单赠送详情配置 |         // 删除报单赠送详情配置 | ||||||
|         iAcDeclarationGiftDetailService.remove(new LambdaQueryWrapper<AcDeclarationGiftDetail>() |         iAcDeclarationGiftDetailService.remove(new LambdaQueryWrapper<AcDeclarationGiftDetail>() | ||||||
|                 .eq(AcDeclarationGiftDetail::getPkBaseId, pkId)); |                 .eq(AcDeclarationGiftDetail::getPkBaseId, pkId)); | ||||||
|  |         // 删除活动权限配置 | ||||||
|  |         iAcBaseAuthorityService.update(Wrappers.<AcBaseAuthority>lambdaUpdate() | ||||||
|  |                 .eq(AcBaseAuthority::getPkBaseId, pkId) | ||||||
|  |                 .eq(AcBaseAuthority::getDelFlag, EDelFlag.UN_DELETE.getValue()) | ||||||
|  |                 .set(AcBaseAuthority::getDelFlag, EDelFlag.DELETE.getValue()) | ||||||
|  |         ); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     private void updateDeclarationConfig(ActivityParam activityParam, List<AcDeclarationConfigParam> acDeclarationConfigParams) { |     private void updateDeclarationConfig(ActivityParam activityParam, AcDeclarationParam acDeclarationParam) { | ||||||
|         { |  | ||||||
|             Long pkId = activityParam.getPkId(); |             Long pkId = activityParam.getPkId(); | ||||||
|             // 查询基础信息 |             // 查询基础信息 | ||||||
|             AcBaseConfig baseConfig = BeanUtil.copyProperties(activityParam, AcBaseConfig.class); |             AcBaseConfig baseConfig = BeanUtil.copyProperties(activityParam, AcBaseConfig.class); | ||||||
|  | @ -235,15 +269,23 @@ public class AcDeclarationGiftConfigServiceImpl extends ServiceImpl<AcDeclaratio | ||||||
|             // 删除活动配置 |             // 删除活动配置 | ||||||
|             baseMapper.delete(new LambdaQueryWrapper<AcDeclarationGiftConfig>() |             baseMapper.delete(new LambdaQueryWrapper<AcDeclarationGiftConfig>() | ||||||
|                     .eq(AcDeclarationGiftConfig::getPkBaseId, pkId)); |                     .eq(AcDeclarationGiftConfig::getPkBaseId, pkId)); | ||||||
|  |             // 删除活动权限配置 | ||||||
|  |             iAcBaseAuthorityService.update(Wrappers.<AcBaseAuthority>lambdaUpdate() | ||||||
|  |                     .eq(AcBaseAuthority::getPkBaseId, pkId) | ||||||
|  |                     .eq(AcBaseAuthority::getDelFlag, EDelFlag.UN_DELETE.getValue()) | ||||||
|  |                     .set(AcBaseAuthority::getDelFlag, EDelFlag.DELETE.getValue()) | ||||||
|  |             ); | ||||||
|             // 删除活动详情配置 |             // 删除活动详情配置 | ||||||
|             iAcDeclarationGiftDetailService.remove(new LambdaQueryWrapper<AcDeclarationGiftDetail>() |             iAcDeclarationGiftDetailService.remove(new LambdaQueryWrapper<AcDeclarationGiftDetail>() | ||||||
|                     .eq(AcDeclarationGiftDetail::getPkBaseId, pkId)); |                     .eq(AcDeclarationGiftDetail::getPkBaseId, pkId)); | ||||||
|             // 添加加购活动配置 |             // 添加加购活动配置 | ||||||
|             saveDeclarationConfig(acDeclarationConfigParams, baseConfig); |             saveDeclarationConfig(acDeclarationParam, baseConfig); | ||||||
|         } |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     private void saveDeclarationConfig(List<AcDeclarationConfigParam> acDeclarationConfigParams, AcBaseConfig acBaseConfig) { |     private void saveDeclarationConfig(AcDeclarationParam acDeclarationParam, AcBaseConfig acBaseConfig) { | ||||||
|  |         List<AcDeclarationConfigParam> acDeclarationConfigParams = acDeclarationParam.getAcDeclarationConfigParams(); | ||||||
|  |         // 保存活动权限配置 | ||||||
|  |         this.saveAuthority(acDeclarationParam,acBaseConfig); | ||||||
|         acDeclarationConfigParams.forEach(item -> { |         acDeclarationConfigParams.forEach(item -> { | ||||||
|             if (item != null) { |             if (item != null) { | ||||||
|                 AcDeclarationGiftConfig build = AcDeclarationGiftConfig.builder() |                 AcDeclarationGiftConfig build = AcDeclarationGiftConfig.builder() | ||||||
|  |  | ||||||
|  | @ -1,10 +1,14 @@ | ||||||
| package com.hzs.activity.tourism.provider; | package com.hzs.activity.tourism.provider; | ||||||
| 
 | 
 | ||||||
|  | import cn.hutool.core.collection.CollectionUtil; | ||||||
| import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||||
|  | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||||
|  | import com.hzs.activity.base.service.IAcBaseAuthorityService; | ||||||
| import com.hzs.activity.base.service.IAcBaseConfigService; | import com.hzs.activity.base.service.IAcBaseConfigService; | ||||||
| import com.hzs.activity.declaration.service.IAcDeclarationGiftConfigService; | import com.hzs.activity.declaration.service.IAcDeclarationGiftConfigService; | ||||||
| import com.hzs.activity.declaration.service.IAcDeclarationGiftRecordService; | import com.hzs.activity.declaration.service.IAcDeclarationGiftRecordService; | ||||||
| import com.hzs.common.core.enums.*; | import com.hzs.common.core.enums.*; | ||||||
|  | import com.hzs.common.domain.activity.base.AcBaseAuthority; | ||||||
| import com.hzs.common.domain.activity.declaration.AcDeclarationGiftConfig; | import com.hzs.common.domain.activity.declaration.AcDeclarationGiftConfig; | ||||||
| import com.hzs.common.domain.activity.declaration.AcDeclarationGiftRecord; | import com.hzs.common.domain.activity.declaration.AcDeclarationGiftRecord; | ||||||
| import com.hzs.activity.tourism.IAcTourismServiceApi; | import com.hzs.activity.tourism.IAcTourismServiceApi; | ||||||
|  | @ -24,9 +28,7 @@ import org.springframework.transaction.annotation.Transactional; | ||||||
| import java.time.LocalDate; | import java.time.LocalDate; | ||||||
| import java.time.ZoneId; | import java.time.ZoneId; | ||||||
| import java.time.temporal.ChronoUnit; | import java.time.temporal.ChronoUnit; | ||||||
| import java.util.Date; | import java.util.*; | ||||||
| import java.util.List; |  | ||||||
| import java.util.Map; |  | ||||||
| import java.util.function.Function; | import java.util.function.Function; | ||||||
| import java.util.stream.Collectors; | import java.util.stream.Collectors; | ||||||
| 
 | 
 | ||||||
|  | @ -54,6 +56,8 @@ public class AcTourismServiceProvider implements IAcTourismServiceApi { | ||||||
|     private IAcBaseConfigService iAcBaseConfigService; |     private IAcBaseConfigService iAcBaseConfigService; | ||||||
|     @Autowired |     @Autowired | ||||||
|     private IMemberServiceApi iMemberServiceApi; |     private IMemberServiceApi iMemberServiceApi; | ||||||
|  |     @Autowired | ||||||
|  |     private IAcBaseAuthorityService iAcBaseAuthorityService; | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     public R<?> handleTourismData() { |     public R<?> handleTourismData() { | ||||||
|  | @ -148,24 +152,38 @@ public class AcTourismServiceProvider implements IAcTourismServiceApi { | ||||||
|                         Function.identity(), |                         Function.identity(), | ||||||
|                         (a, b) -> b |                         (a, b) -> b | ||||||
|                 )); |                 )); | ||||||
| 
 |         // 一次批量查询会员信息 | ||||||
|  |         Set<Long> memberIds = new HashSet<>(); | ||||||
|         orderList.forEach(order -> { |         orderList.forEach(order -> { | ||||||
|             // TODO 一天可能会有几百单,最好改成批量查询 |             memberIds.add(order.getPkMember()); | ||||||
|             // 查看是否有重复订单 |             memberIds.add(order.getPkCreator()); | ||||||
|             int count = iAcDeclarationGiftRecordService.count(new LambdaQueryWrapper<AcDeclarationGiftRecord>() |         }); | ||||||
|                     .eq(AcDeclarationGiftRecord::getOrderCode, order.getOrderCode()) | 
 | ||||||
|                     .eq(AcDeclarationGiftRecord::getDelFlag, EDelFlag.UN_DELETE.getValue())); |         Map<Long, CuMember> memberMap = iMemberServiceApi.getMemberByIds(memberIds) | ||||||
|             if (count > 0) { |                 .getData().stream().collect(Collectors.toMap(CuMember::getPkId, m -> m)); | ||||||
|                 log.warn("当前订单已同步至报单明细{}", order.getOrderCode()); | 
 | ||||||
|                 return; | 
 | ||||||
|             } |         List<String> orderCodes = orderList.stream() | ||||||
|             // TODO 下面两个查询会员,报单会员可能都是同一个人,最好提前查询或者做个map存下来,防止多次查询数据库 |                 .map(SaOrder::getOrderCode) | ||||||
|             // 查询新会员信息 |                 .collect(Collectors.toList()); | ||||||
|             R<CuMember> newMemberResult = iMemberServiceApi.getMember(order.getPkMember()); | 
 | ||||||
|             CuMember newMember = newMemberResult.getData(); |         // 过滤已存在订单 | ||||||
|             // 查询老会员信息 |         Set<String> existSet = iAcDeclarationGiftRecordService.list( | ||||||
|             R<CuMember> oldMemberResult = iMemberServiceApi.getMember(order.getPkCreator()); |                 new LambdaQueryWrapper<AcDeclarationGiftRecord>() | ||||||
|             CuMember oldMember = oldMemberResult.getData(); |                         .in(AcDeclarationGiftRecord::getOrderCode, orderCodes) | ||||||
|  |                         .eq(AcDeclarationGiftRecord::getDelFlag, EDelFlag.UN_DELETE.getValue()) | ||||||
|  |         ).stream().map(AcDeclarationGiftRecord::getOrderCode).collect(Collectors.toSet()); | ||||||
|  | 
 | ||||||
|  |         orderList = orderList.stream() | ||||||
|  |                 .filter(order -> !existSet.contains(order.getOrderCode())) | ||||||
|  |                 .collect(Collectors.toList()); | ||||||
|  | 
 | ||||||
|  |         List<AcDeclarationGiftRecord> recordList = new ArrayList<>(); | ||||||
|  |         orderList.forEach(order -> { | ||||||
|  |             // 新会员信息 | ||||||
|  |             CuMember newMember = memberMap.get(order.getPkMember()); | ||||||
|  |             // 老会员信息 | ||||||
|  |             CuMember oldMember = memberMap.get(order.getPkCreator()); | ||||||
|             if (oldMember == null || newMember == null) { |             if (oldMember == null || newMember == null) { | ||||||
|                 log.warn("会员信息不存在, 新会员id={},老会员id={}", order.getPkMember(), order.getPkCreator()); |                 log.warn("会员信息不存在, 新会员id={},老会员id={}", order.getPkMember(), order.getPkCreator()); | ||||||
|                 return; |                 return; | ||||||
|  | @ -180,8 +198,11 @@ public class AcTourismServiceProvider implements IAcTourismServiceApi { | ||||||
|                         oldMember.getPkId(), oldMember.getRegisterAuthority(), newMember.getPkSettleGrade()); |                         oldMember.getPkId(), oldMember.getRegisterAuthority(), newMember.getPkSettleGrade()); | ||||||
|                 return; |                 return; | ||||||
|             } |             } | ||||||
| 
 |             // 查询活动权限 | ||||||
|             // TODO 入库改成批量 |             AcBaseConfig baseConfig = iAcBaseConfigService.getById(matchedConfig.getPkBaseId()); | ||||||
|  |             if (!this.checkAuthority(baseConfig, order.getPkMember())) { | ||||||
|  |                 return; | ||||||
|  |             } | ||||||
|             AcDeclarationGiftRecord record = AcDeclarationGiftRecord.builder() |             AcDeclarationGiftRecord record = AcDeclarationGiftRecord.builder() | ||||||
|                     .pkRuleId(matchedConfig.getPkId()) |                     .pkRuleId(matchedConfig.getPkId()) | ||||||
|                     .pkBaseId(matchedConfig.getPkBaseId()) |                     .pkBaseId(matchedConfig.getPkBaseId()) | ||||||
|  | @ -192,13 +213,73 @@ public class AcTourismServiceProvider implements IAcTourismServiceApi { | ||||||
|             record.setDelFlag(EDelFlag.UN_DELETE.getValue()); |             record.setDelFlag(EDelFlag.UN_DELETE.getValue()); | ||||||
|             record.setPkCreator(oldMember.getPkId()); |             record.setPkCreator(oldMember.getPkId()); | ||||||
|             record.setPkCountry(pkCountry); |             record.setPkCountry(pkCountry); | ||||||
|             // 插入数据库 |             recordList.add(record); | ||||||
|             iAcDeclarationGiftRecordService.save(record); |  | ||||||
| 
 |  | ||||||
|             log.info("成功插入报单赠送记录 -> memberId={}, ruleId={}", |  | ||||||
|                     oldMember.getPkId(), matchedConfig.getPkId()); |  | ||||||
|         }); |         }); | ||||||
|  |         if (!recordList.isEmpty()) { | ||||||
|  |             iAcDeclarationGiftRecordService.saveBatch(recordList); | ||||||
|  |             log.info("[DeclarationGiftJob] 订单量={} 活动数={} 插入记录={}", | ||||||
|  |                     orderList.size(), acBaseConfigList.size(), recordList.size()); | ||||||
|  |         } | ||||||
|         return R.ok(); |         return R.ok(); | ||||||
|     } |     } | ||||||
|  |     /** | ||||||
|  |      * 校验活动权限(true:进行处理,false:不进行处理) | ||||||
|  |      * | ||||||
|  |      * @param baseConfig 活动配置 | ||||||
|  |      * @param pkMember   会员ID | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     private boolean checkAuthority(AcBaseConfig baseConfig, Long pkMember) { | ||||||
|  |         List<AcBaseAuthority> authList = iAcBaseAuthorityService.list(Wrappers.<AcBaseAuthority>lambdaQuery() | ||||||
|  |                 .eq(AcBaseAuthority::getPkBaseId, baseConfig.getPkId()) | ||||||
|  |                 .orderByDesc(AcBaseAuthority::getAuthorityType) | ||||||
|  |         ); | ||||||
|  |         if (CollectionUtil.isNotEmpty(authList)) { | ||||||
|  |             Map<Integer, List<String>> authMap = new HashMap<>(); | ||||||
|  |             for (AcBaseAuthority authority : authList) { | ||||||
|  |                 authMap.computeIfAbsent(authority.getAuthorityType(), k -> new ArrayList<>()); | ||||||
|  |                 authMap.get(authority.getAuthorityType()).add(authority.getMemberCode()); | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             for (Integer key : authMap.keySet()) { | ||||||
|  |                 List<String> memberCodeList = authMap.get(key); | ||||||
|  |                 switch (EWaresPermissionType.getEnumByValue(key)) { | ||||||
|  |                     case AUTH_ORITY_TYPE: | ||||||
|  |                         // 全部 | ||||||
|  |                         return true; | ||||||
|  |                     case PLACE_STOP: | ||||||
|  |                         // 安置禁止 | ||||||
|  |                         if (iAcBaseAuthorityService.checkPlaceParent(pkMember, memberCodeList) > 0) { | ||||||
|  |                             return false; | ||||||
|  |                         } else { | ||||||
|  |                             return true; | ||||||
|  |                         } | ||||||
|  |                     case BLOOD_STOP: | ||||||
|  |                         // 血缘禁止 | ||||||
|  |                         if (iAcBaseAuthorityService.checkParent(pkMember, memberCodeList) > 0) { | ||||||
|  |                             return false; | ||||||
|  |                         } else { | ||||||
|  |                             return true; | ||||||
|  |                         } | ||||||
|  |                     case PLACE_ALLWO: | ||||||
|  |                         // 安置可见 | ||||||
|  |                         if (iAcBaseAuthorityService.checkPlaceParent(pkMember, memberCodeList) > 0) { | ||||||
|  |                             return true; | ||||||
|  |                         } else { | ||||||
|  |                             return false; | ||||||
|  |                         } | ||||||
|  |                     case BLOOD_ALLOW: | ||||||
|  |                         // 血缘可见 | ||||||
|  |                         if (iAcBaseAuthorityService.checkParent(pkMember, memberCodeList) > 0) { | ||||||
|  |                             return true; | ||||||
|  |                         } else { | ||||||
|  |                             return false; | ||||||
|  |                         } | ||||||
|  |                     default: | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         return true; | ||||||
|  |     } | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue