banner添加财富等级限制
This commit is contained in:
@@ -53,10 +53,10 @@ public class FirstPageBannerAdminService {
|
||||
*/
|
||||
public IPage<FirstPageBannerAdminVo> getFirstPageBannerList(Integer pageNumber, Integer pageSize, Byte skipType,
|
||||
Byte bannerStatus, Byte bannerType, String beginTime,
|
||||
String endTime, String appId, Integer partitionId, Integer regionId) {
|
||||
String endTime, String appId, Integer partitionId, Integer regionId, String bannerName) {
|
||||
QueryWrapper<FirstPageBanner> wrapper = new QueryWrapper<>();
|
||||
LambdaQueryWrapper<FirstPageBanner> lambdaQueryWrapper = wrapper.lambda();
|
||||
lambdaQueryWrapper.eq(skipType != null && skipType != 0, FirstPageBanner::getSkipType, skipType)
|
||||
lambdaQueryWrapper.eq(skipType != null && skipType != -1, FirstPageBanner::getSkipType, skipType)
|
||||
.eq(bannerStatus != null && bannerStatus != 0, FirstPageBanner::getBannerStatus, bannerStatus)
|
||||
.eq(!StringUtils.isEmpty(appId), FirstPageBanner::getAppId, appId);
|
||||
|
||||
@@ -65,12 +65,15 @@ public class FirstPageBannerAdminService {
|
||||
} else {
|
||||
lambdaQueryWrapper.ne(FirstPageBanner::getBannerType, Constant.BannerType.BANNER_ACTIVITY);
|
||||
}
|
||||
if (StringUtils.isNotEmpty(bannerName)) {
|
||||
lambdaQueryWrapper.like(FirstPageBanner::getBannerName, bannerName);
|
||||
}
|
||||
if (regionId != null && regionId != regionInfoService.ALL_REGION) {
|
||||
lambdaQueryWrapper.eq(FirstPageBanner::getRegionId, regionId);
|
||||
}
|
||||
lambdaQueryWrapper.ge(!StringUtils.isEmpty(beginTime), FirstPageBanner::getStartTime, DateTimeUtil.convertStrToDate(beginTime))
|
||||
.le(!StringUtils.isEmpty(endTime), FirstPageBanner::getEndTime, DateTimeUtil.convertStrToDate(endTime))
|
||||
.like(partitionId != null, FirstPageBanner::getPartitionIds, partitionId)
|
||||
.apply(partitionId != null && partitionId != 0, "JSON_CONTAINS(partition_ids, '"+ partitionId+"')")
|
||||
.orderByAsc(FirstPageBanner::getSeqNo)
|
||||
.orderByDesc(FirstPageBanner::getUpdateTime);
|
||||
IPage<FirstPageBanner> iPage = new Page<>(pageNumber, pageSize);
|
||||
|
@@ -55,9 +55,10 @@ public class SecondPageBannerAdminService {
|
||||
* @return
|
||||
*/
|
||||
public IPage<SecondPageBannerAdminVo> getSecondPageBannerList(Integer pageNumber, Integer pageSize, Byte skipType,
|
||||
Byte bannerStatus, Byte bannerType, Integer timeStatus, String appId, Integer partitionId, Integer regionId) {
|
||||
Byte bannerStatus, Byte bannerType, Integer timeStatus,
|
||||
String appId, Integer partitionId, Integer regionId, String bannerName) {
|
||||
LambdaQueryWrapper<SecondPageBanner> lambdaQueryWrapper = Wrappers.lambdaQuery();
|
||||
lambdaQueryWrapper.eq(skipType != null && skipType != 0, SecondPageBanner::getSkipType, skipType)
|
||||
lambdaQueryWrapper.eq(skipType != null && skipType != -1, SecondPageBanner::getSkipType, skipType)
|
||||
.eq(bannerStatus != null && bannerStatus != 0, SecondPageBanner::getBannerStatus, bannerStatus)
|
||||
.eq(!StringUtils.isEmpty(appId), SecondPageBanner::getAppId, appId);
|
||||
|
||||
@@ -74,11 +75,14 @@ public class SecondPageBannerAdminService {
|
||||
} else if (timeStatus == 3) {//已过期
|
||||
lambdaQueryWrapper.lt(SecondPageBanner::getEndTime, new Date());
|
||||
}
|
||||
if (StringUtils.isNotEmpty(bannerName)) {
|
||||
lambdaQueryWrapper.like(SecondPageBanner::getBannerName, bannerName);
|
||||
}
|
||||
if (regionId != null && regionId != regionInfoService.ALL_REGION) {
|
||||
lambdaQueryWrapper.eq(SecondPageBanner::getRegionId, regionId);
|
||||
}
|
||||
lambdaQueryWrapper.eq(SecondPageBanner::getDelTag, Constant.BannerDel.NO_DEL)
|
||||
.like(partitionId != null, SecondPageBanner::getPartitionIds, partitionId)
|
||||
.apply(partitionId != null && partitionId != 0, "JSON_CONTAINS(partition_ids, '"+ partitionId+"')")
|
||||
.orderByAsc(SecondPageBanner::getSeqNo)
|
||||
.orderByDesc(SecondPageBanner::getUpdateTime);
|
||||
IPage<SecondPageBanner> iPage = new Page<>(pageNumber, pageSize);
|
||||
|
@@ -5,7 +5,6 @@ import com.accompany.admin.service.firstpage.SecondPageBannerAdminService;
|
||||
import com.accompany.admin.service.system.AdminUserService;
|
||||
import com.accompany.admin.service.userevent.vo.UserEventAdminVO;
|
||||
import com.accompany.business.dto.DomainConfigDto;
|
||||
import com.accompany.business.model.firstpage.FirstPageBanner;
|
||||
import com.accompany.business.model.firstpage.SecondPageBanner;
|
||||
import com.accompany.business.model.userevent.UserEvent;
|
||||
import com.accompany.business.model.userevent.constant.UserEventConstant;
|
||||
@@ -159,7 +158,7 @@ public class UserEventAdminService {
|
||||
Long uid = userEvent.getUid();
|
||||
if (eventStatus == UserEventConstant.EventStatus.PASS) {
|
||||
baseSendService.sendSystemMsg(uid.toString(), I18NMessageSourceUtil.getMessage(I18nAlertEnum.USER_EVENT_PASS, uid));
|
||||
this.addFirstBanner(userEvent, uid);
|
||||
this.addSecondBanner(userEvent, uid);
|
||||
} else if (eventStatus == UserEventConstant.EventStatus.REJECT) {
|
||||
if (userEvent.getPayBanner() == UserEventConstant.PayBanner.YES) {
|
||||
//扣钱
|
||||
@@ -172,7 +171,7 @@ public class UserEventAdminService {
|
||||
return BusiResult.success();
|
||||
}
|
||||
|
||||
private void addFirstBanner(UserEvent userEvent, Long uid) {
|
||||
private void addSecondBanner(UserEvent userEvent, Long uid) {
|
||||
if (userEvent.getPayBanner() != UserEventConstant.PayBanner.YES) {
|
||||
return;
|
||||
}
|
||||
|
@@ -71,9 +71,9 @@ public class FirstPageBannerAdminController extends BaseController {
|
||||
@GetMapping(value = "/list")
|
||||
public Pagination<FirstPageBannerAdminVo> getFirstPageBannerList(Byte skipType, Byte bannerStatus, Byte bannerType,
|
||||
String beginTime, String endTime, String appId,
|
||||
Integer partitionId, Integer regionId) {
|
||||
Integer partitionId, Integer regionId, String bannerName) {
|
||||
IPage<FirstPageBannerAdminVo> pageInfo = firstPageBannerAdminService.getFirstPageBannerList(getPageNumber(), getPageSize(),
|
||||
skipType, bannerStatus, bannerType,beginTime,endTime,appId, partitionId, regionId);
|
||||
skipType, bannerStatus, bannerType,beginTime,endTime,appId, partitionId, regionId, bannerName);
|
||||
return new Pagination<>(pageInfo);
|
||||
}
|
||||
|
||||
|
@@ -65,10 +65,10 @@ public class SecondPageBannerAdminController extends BaseController {
|
||||
@GetMapping(value = "/list")
|
||||
public Pagination<SecondPageBannerAdminVo> getSecondPageBannerList(Byte skipType, @RequestParam(defaultValue = "0") Byte bannerStatus,
|
||||
Byte bannerType, @RequestParam(defaultValue = "0") Integer timeStatus,
|
||||
String appId, Integer partitionId,
|
||||
@RequestParam(defaultValue = "1") Integer pageNo, @RequestParam(defaultValue = "20") Integer pageSize, Integer regionId) {
|
||||
String appId, Integer partitionId, @RequestParam(defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(defaultValue = "20") Integer pageSize, Integer regionId, String bannerName) {
|
||||
IPage<SecondPageBannerAdminVo> pageInfo = secondPageBannerAdminService.getSecondPageBannerList(pageNo, pageSize,
|
||||
skipType, bannerStatus, bannerType, timeStatus,appId, partitionId, regionId);
|
||||
skipType, bannerStatus, bannerType, timeStatus,appId, partitionId, regionId, bannerName);
|
||||
return new Pagination<>(pageInfo);
|
||||
}
|
||||
|
||||
|
@@ -57,8 +57,8 @@ public class FirstPageBanner implements Serializable {
|
||||
private Date updateTime;
|
||||
@TableField(value = "operator")
|
||||
private String operator;
|
||||
@TableField(value = "limit_level_exper")
|
||||
private Long limitLevelExper;
|
||||
@TableField(value = "limit_exp_level")
|
||||
private Integer limitExpLevel;
|
||||
@TableField(value = "show_type")
|
||||
private Byte showType;
|
||||
@TableField(value = "show_rule")
|
||||
|
@@ -57,8 +57,8 @@ public class SecondPageBanner implements Serializable {
|
||||
private Date updateTime;
|
||||
@TableField(value = "operator")
|
||||
private String operator;
|
||||
@TableField(value = "limit_level_exper")
|
||||
private Long limitLevelExper;
|
||||
@TableField(value = "limit_exp_level")
|
||||
private Integer limitExpLevel;
|
||||
@TableField(value = "show_type")
|
||||
private Byte showType;
|
||||
@TableField(value = "show_rule")
|
||||
|
@@ -1,12 +1,10 @@
|
||||
package com.accompany.business.service.firstpage;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.accompany.business.model.LevelExperience;
|
||||
import com.accompany.business.model.LevelExperienceExample;
|
||||
import com.accompany.business.model.UserLevelExperience;
|
||||
import com.accompany.business.model.firstpage.FirstPageBanner;
|
||||
import com.accompany.business.mybatismapper.FirstPageBannerMapper;
|
||||
import com.accompany.business.mybatismapper.LevelExperienceMapper;
|
||||
import com.accompany.business.service.fillstrategy.strategy.FillConstant;
|
||||
import com.accompany.business.service.fillstrategy.strategy.FillFactory;
|
||||
import com.accompany.business.service.level.LevelService;
|
||||
import com.accompany.business.service.user.UsersService;
|
||||
@@ -46,8 +44,6 @@ public class FirstPageBannerService extends ServiceImpl<FirstPageBannerMapper, F
|
||||
@Autowired
|
||||
private UsersService usersService;
|
||||
@Autowired
|
||||
private LevelExperienceMapper levelExperienceMapper;
|
||||
@Autowired
|
||||
private LevelService levelService;
|
||||
@Autowired
|
||||
private FillFactory fillFactory;
|
||||
@@ -104,6 +100,7 @@ public class FirstPageBannerService extends ServiceImpl<FirstPageBannerMapper, F
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
List<FirstPageBannerVo> bannerVos = new ArrayList<>();
|
||||
UserLevelExperience userExper = levelService.getUserExper(uid);
|
||||
list.forEach(banner -> {
|
||||
if (StringUtils.isNotBlank(banner.getNoShowChannels()) && StringUtils.isNotBlank(deviceInfo.getChannel())) {
|
||||
// 检查是否不展示的渠道包
|
||||
@@ -123,15 +120,14 @@ public class FirstPageBannerService extends ServiceImpl<FirstPageBannerMapper, F
|
||||
return;
|
||||
}
|
||||
}
|
||||
FirstPageBannerVo bannerVo = convertToBannerVo(banner);
|
||||
if (banner.getSkipType() == 3 && banner.getLimitLevelExper() != null) {
|
||||
UserLevelExperience userExper = levelService.getUserExper(uid);
|
||||
if (userExper == null
|
||||
|| (bannerVo.getActLimitLevelSeq() != null && bannerVo.getActLimitLevelSeq() > userExper.getLevelExperience().getLevelSeq()
|
||||
&& banner.getShowRule().equals(Constant.ActShowRule.REACH_LIMIT_LEVEL_SHOW))) {
|
||||
return;
|
||||
}
|
||||
if (banner.getSkipType() == FillConstant.SkipType.h5Link &&
|
||||
Optional.ofNullable(banner.getLimitExpLevel())
|
||||
.map(limitExpLevel -> userExper != null &&
|
||||
userExper.getLevelExperience().getLevelSeq() < limitExpLevel)
|
||||
.orElse(false)) {
|
||||
return;
|
||||
}
|
||||
FirstPageBannerVo bannerVo = convertToBannerVo(banner);
|
||||
bannerVo.setFillVo(fillFactory.getStrategy(banner.getSkipType()).calFillVo(partitionId));
|
||||
bannerVos.add(bannerVo);
|
||||
});
|
||||
@@ -147,55 +143,19 @@ public class FirstPageBannerService extends ServiceImpl<FirstPageBannerMapper, F
|
||||
private FirstPageBannerVo convertToBannerVo(FirstPageBanner banners) {
|
||||
FirstPageBannerVo firstPageBannerVo = new FirstPageBannerVo();
|
||||
BeanUtils.copyProperties(banners, firstPageBannerVo);
|
||||
if (banners.getLimitLevelExper() != null) {
|
||||
log.info("准备处理活动等级限制信息, firstPageBannerVo:{}, banners:{}", JSON.toJSONString(firstPageBannerVo), banners);
|
||||
handleActLimitExper(firstPageBannerVo, banners);
|
||||
log.info("完成处理活动等级限制信息, firstPageBannerVo:{}", firstPageBannerVo);
|
||||
}
|
||||
if (banners.getSkipType() == 2) {
|
||||
firstPageBannerVo.setActLimitLevelSeq(banners.getLimitExpLevel());
|
||||
if (banners.getSkipType() == FillConstant.SkipType.room) {
|
||||
Users users = usersService.getUserByErbanNo(Long.valueOf(banners.getSkipUri()));
|
||||
if (null != users) {
|
||||
firstPageBannerVo.setSkipUri(users.getUid().toString());
|
||||
}
|
||||
}
|
||||
if (banners.getSkipType() == 3 && firstPageBannerVo.getShowType() == null) {
|
||||
if (banners.getSkipType() == FillConstant.SkipType.h5Link && firstPageBannerVo.getShowType() == null) {
|
||||
firstPageBannerVo.setShowType(Constant.ActShowType.HALF_SCREEN);
|
||||
}
|
||||
return firstPageBannerVo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理活动等级限制
|
||||
*
|
||||
* @param firstPageBannerVo
|
||||
* @param firstPageBanner
|
||||
*/
|
||||
private void handleActLimitExper(FirstPageBannerVo firstPageBannerVo, FirstPageBanner firstPageBanner) {
|
||||
LevelExperience levelInfo = getActLimitLevelInfo(firstPageBanner.getLimitLevelExper());
|
||||
if (null != levelInfo) {
|
||||
firstPageBannerVo.setActLimitLevelSeq(levelInfo.getLevelSeq());
|
||||
firstPageBannerVo.setActLimitLevelName(levelInfo.getLevelName());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取活动的等级限制信息
|
||||
*
|
||||
* @param limitExper
|
||||
* @return
|
||||
*/
|
||||
public LevelExperience getActLimitLevelInfo(Long limitExper) {
|
||||
LevelExperienceExample levelExperienceExample = new LevelExperienceExample();
|
||||
levelExperienceExample.createCriteria().andStatusEqualTo(Constant.status.valid)
|
||||
.andAmountEqualTo(limitExper);
|
||||
List<LevelExperience> levelExperienceList = levelExperienceMapper.selectByExample(levelExperienceExample);
|
||||
LevelExperience levelExperience = null;
|
||||
if (!CollectionUtils.isEmpty(levelExperienceList)) {
|
||||
levelExperience = levelExperienceList.get(0);
|
||||
}
|
||||
return levelExperience;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id获取banner
|
||||
*
|
||||
|
@@ -1,12 +1,10 @@
|
||||
package com.accompany.business.service.firstpage;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.accompany.business.model.LevelExperience;
|
||||
import com.accompany.business.model.LevelExperienceExample;
|
||||
import com.accompany.business.model.UserLevelExperience;
|
||||
import com.accompany.business.model.firstpage.SecondPageBanner;
|
||||
import com.accompany.business.mybatismapper.LevelExperienceMapper;
|
||||
import com.accompany.business.mybatismapper.SecondPageBannerMapper;
|
||||
import com.accompany.business.service.fillstrategy.strategy.FillConstant;
|
||||
import com.accompany.business.service.level.LevelService;
|
||||
import com.accompany.business.service.user.UsersService;
|
||||
import com.accompany.business.vo.firstpage.SecondPageBannerVo;
|
||||
@@ -18,11 +16,8 @@ import com.accompany.common.utils.StringUtils;
|
||||
import com.accompany.core.model.Users;
|
||||
import com.accompany.core.service.common.JedisService;
|
||||
import com.accompany.core.service.region.RegionInfoService;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.nacos.common.utils.CollectionUtils;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.google.gson.Gson;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -47,8 +42,6 @@ public class SecondPageBannerService extends ServiceImpl<SecondPageBannerMapper,
|
||||
@Autowired
|
||||
private UsersService usersService;
|
||||
@Autowired
|
||||
private LevelExperienceMapper levelExperienceMapper;
|
||||
@Autowired
|
||||
private LevelService levelService;
|
||||
@Autowired
|
||||
private RegionInfoService regionInfoService;
|
||||
@@ -105,6 +98,7 @@ public class SecondPageBannerService extends ServiceImpl<SecondPageBannerMapper,
|
||||
}
|
||||
List<SecondPageBannerVo> bannerVos = new ArrayList<>();
|
||||
|
||||
UserLevelExperience userExper = levelService.getUserExper(uid);
|
||||
list.forEach(banner -> {
|
||||
if (StringUtils.isNotBlank(banner.getNoShowChannels()) && StringUtils.isNotBlank(deviceInfo.getChannel())) {
|
||||
// 检查是否不展示的渠道包
|
||||
@@ -124,15 +118,14 @@ public class SecondPageBannerService extends ServiceImpl<SecondPageBannerMapper,
|
||||
return;
|
||||
}
|
||||
}
|
||||
SecondPageBannerVo bannerVo = convertToBannerVo(banner);
|
||||
if (banner.getSkipType() == 3 && banner.getLimitLevelExper() != null) {
|
||||
UserLevelExperience userExper = levelService.getUserExper(uid);
|
||||
if (userExper == null
|
||||
|| (bannerVo.getActLimitLevelSeq() != null && bannerVo.getActLimitLevelSeq() > userExper.getLevelExperience().getLevelSeq()
|
||||
&& banner.getShowRule().equals(Constant.ActShowRule.REACH_LIMIT_LEVEL_SHOW))) {
|
||||
return;
|
||||
}
|
||||
if (banner.getSkipType() == FillConstant.SkipType.h5Link &&
|
||||
Optional.ofNullable(banner.getLimitExpLevel())
|
||||
.map(limitExpLevel -> userExper != null &&
|
||||
userExper.getLevelExperience().getLevelSeq() < limitExpLevel)
|
||||
.orElse(false)) {
|
||||
return;
|
||||
}
|
||||
SecondPageBannerVo bannerVo = convertToBannerVo(banner);
|
||||
bannerVos.add(bannerVo);
|
||||
});
|
||||
return bannerVos;
|
||||
@@ -147,53 +140,17 @@ public class SecondPageBannerService extends ServiceImpl<SecondPageBannerMapper,
|
||||
private SecondPageBannerVo convertToBannerVo(SecondPageBanner banners) {
|
||||
SecondPageBannerVo firstPageBannerVo = new SecondPageBannerVo();
|
||||
BeanUtils.copyProperties(banners, firstPageBannerVo);
|
||||
if (banners.getLimitLevelExper() != null) {
|
||||
log.info("准备处理活动等级限制信息, firstPageBannerVo:{}, banners:{}", JSON.toJSONString(firstPageBannerVo), banners);
|
||||
handleActLimitExper(firstPageBannerVo, banners);
|
||||
log.info("完成处理活动等级限制信息, firstPageBannerVo:{}", firstPageBannerVo);
|
||||
}
|
||||
if (banners.getSkipType() == 2) {
|
||||
firstPageBannerVo.setActLimitLevelSeq(banners.getLimitExpLevel());
|
||||
if (banners.getSkipType() == FillConstant.SkipType.room) {
|
||||
Users users = usersService.getUserByErbanNo(Long.valueOf(banners.getSkipUri()));
|
||||
if (null != users) {
|
||||
firstPageBannerVo.setSkipUri(users.getUid().toString());
|
||||
}
|
||||
}
|
||||
if (banners.getSkipType() == 3 && firstPageBannerVo.getShowType() == null) {
|
||||
if (banners.getSkipType() == FillConstant.SkipType.h5Link && firstPageBannerVo.getShowType() == null) {
|
||||
firstPageBannerVo.setShowType(Constant.ActShowType.HALF_SCREEN);
|
||||
}
|
||||
return firstPageBannerVo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理活动等级限制
|
||||
*
|
||||
* @param firstPageBannerVo
|
||||
* @param firstPageBanner
|
||||
*/
|
||||
private void handleActLimitExper(SecondPageBannerVo firstPageBannerVo, SecondPageBanner firstPageBanner) {
|
||||
LevelExperience levelInfo = getActLimitLevelInfo(firstPageBanner.getLimitLevelExper());
|
||||
if (null != levelInfo) {
|
||||
firstPageBannerVo.setActLimitLevelSeq(levelInfo.getLevelSeq());
|
||||
firstPageBannerVo.setActLimitLevelName(levelInfo.getLevelName());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取活动的等级限制信息
|
||||
*
|
||||
* @param limitExper
|
||||
* @return
|
||||
*/
|
||||
public LevelExperience getActLimitLevelInfo(Long limitExper) {
|
||||
LevelExperienceExample levelExperienceExample = new LevelExperienceExample();
|
||||
levelExperienceExample.createCriteria().andStatusEqualTo(Constant.status.valid)
|
||||
.andAmountEqualTo(limitExper);
|
||||
List<LevelExperience> levelExperienceList = levelExperienceMapper.selectByExample(levelExperienceExample);
|
||||
LevelExperience levelExperience = null;
|
||||
if (!CollectionUtils.isEmpty(levelExperienceList)) {
|
||||
levelExperience = levelExperienceList.get(0);
|
||||
}
|
||||
return levelExperience;
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user