奖励配置后台

This commit is contained in:
2025-04-17 18:30:45 +08:00
parent bb7ccfc020
commit f72ab66c47
6 changed files with 366 additions and 9 deletions

View File

@@ -0,0 +1,77 @@
package com.accompany.admin.controller.activity;
import com.accompany.business.common.vo.RewardVo;
import com.accompany.business.constant.activity.ActivityType;
import com.accompany.business.model.activity.h5.ActivityH5LevelAward;
import com.accompany.business.param.ActivityH5Param;
import com.accompany.business.service.activity.h5.ActivityH5LevelAwardService;
import com.accompany.business.vo.activity.h5.ActivityH5LevelAwardVo;
import com.accompany.common.result.BusiResult;
import com.accompany.core.exception.AdminServiceException;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* <p>
* h5活动等级奖励表 前端控制器
* </p>
*
* @author wxf
* @since 2024-01-11
*/
@RestController
@RequestMapping("/activityH5LevelAward")
public class ActivityH5LevelAwardController {
@Autowired
private ActivityH5LevelAwardService activityH5LevelAwardService;
@ApiOperation(value = "列表", httpMethod = "GET")
@GetMapping("/list")
public BusiResult<IPage<ActivityH5LevelAwardVo>> list(ActivityH5Param param) {
return BusiResult.success(activityH5LevelAwardService.listPage(param));
}
@ApiOperation(value = "保存",httpMethod = "POST")
@PostMapping("/save")
public BusiResult<Void> save(ActivityH5LevelAward activityH5LevelAward) {
RewardVo rewardVo = activityH5LevelAwardService.coverRewardByType(activityH5LevelAward.getAwardType(), activityH5LevelAward.getAwardId().intValue());
if (rewardVo == null) {
throw new AdminServiceException("奖励不存在");
}
activityH5LevelAwardService.save(activityH5LevelAward);
return BusiResult.success();
}
@ApiOperation(value = "更新", httpMethod = "POST")
@PostMapping("/update")
public BusiResult<Void> update(ActivityH5LevelAward activityH5LevelAward) {
ActivityH5LevelAward target = activityH5LevelAwardService.getById(activityH5LevelAward.getId());
if (target == null) {
throw new AdminServiceException("配置不存在");
}
activityH5LevelAward.setUpdateTime(new Date());
activityH5LevelAwardService.updateById(activityH5LevelAward);
return BusiResult.success();
}
@ApiOperation(value = "删除", httpMethod = "POST")
@PostMapping("/del")
public BusiResult<Void> del(Integer id) {
activityH5LevelAwardService.removeById(id);
return BusiResult.success();
}
}

View File

@@ -0,0 +1,102 @@
package com.accompany.admin.controller.activity;
import com.accompany.business.common.constant.RewardTypeEnum;
import com.accompany.business.constant.activity.ActivityType;
import com.accompany.business.model.activity.h5.ActivityH5LevelExp;
import com.accompany.business.param.ActivityH5Param;
import com.accompany.business.service.activity.h5.ActivityH5LevelExpService;
import com.accompany.common.result.BusiResult;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* h5活动等级经验对照表 前端控制器
* </p>
*
* @author wxf
* @since 2024-01-11
*/
@RestController
@RequestMapping("/activityH5LevelExp")
public class ActivityH5LevelExpController {
@Autowired
private ActivityH5LevelExpService activityH5LevelExpService;
@ApiOperation("活动列表")
@GetMapping("/activityType")
public BusiResult<List<JSONObject>> activityType(){
List<JSONObject> acts = new ArrayList<>();
for (ActivityType value : ActivityType.values()) {
if (value.isAdminShow()) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("type", value.getType());
jsonObject.put("name", value.getName());
acts.add(jsonObject);
}
}
return BusiResult.success(acts);
}
@ApiOperation("奖励类型列表")
@GetMapping("/awardType")
public BusiResult<List<JSONObject>> awardType(){
List<JSONObject> acts = new ArrayList<>();
for (RewardTypeEnum value : RewardTypeEnum.values()) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("awardType", value.getType());
jsonObject.put("name", value.getDesc());
acts.add(jsonObject);
}
return BusiResult.success(acts);
}
@ApiOperation("选择列表")
@GetMapping("/select/list")
public BusiResult<List<ActivityH5LevelExp>> listAll(ActivityH5Param param) {
return BusiResult.success(activityH5LevelExpService.listAll(param));
}
// @ApiOperation("列表")
// @GetMapping("/list")
// public BusiResult<IPage<ActivityH5LevelExp>> list(ActivityH5Param param) {
// return BusiResult.success(activityH5LevelExpService.listPage(param));
// }
//
// @ApiOperation("保存")
// @GetMapping("/save")
// public BusiResult<Void> save(ActivityH5LevelExp activityH5LevelExp) {
// activityH5LevelExpService.save(activityH5LevelExp);
// return BusiResult.success();
// }
// @ApiOperation("更新")
// @GetMapping("/update")
// public BusiResult<Void> update(ActivityH5LevelExp activityH5LevelExp) {
// ActivityH5LevelExp exp = activityH5LevelExpService.getById(activityH5LevelExp.getId());
// BeanUtils.copyProperties(activityH5LevelExp,exp);
// activityH5LevelExpService.updateById(exp);
// return BusiResult.success();
// }
// @ApiOperation("删除")
// @GetMapping("/del")
// public BusiResult<Void> del(Integer id) {
// activityH5LevelExpService.removeById(id);
// return BusiResult.success();
// }
}

View File

@@ -1,12 +1,16 @@
package com.accompany.business.constant.activity;
import java.util.Arrays;
import java.util.Map;
import java.util.stream.Collectors;
import static com.accompany.common.constant.Constant.DefMsgType.ACTIVITY_FIRST_COMMON;
public enum ActivityType {
activity_charge(1, "Monthly Recharge", ACTIVITY_FIRST_COMMON, true),
SS_GUILD(2, "SS GUILD", ACTIVITY_FIRST_COMMON, true),
SS_GUILD_S_GOLD_REWARD(3, "SS GUILD GOLD REWARD", ACTIVITY_FIRST_COMMON, true),
SS_GUILD_S_GOLD_REWARD(3, "SS GUILD S GOLD REWARD", ACTIVITY_FIRST_COMMON, true),
SS_GUILD_SS_GOLD_REWARD(4, "SS GUILD GOLD REWARD", ACTIVITY_FIRST_COMMON, true),
DAY_CONSUME(5, "DAY CONSUME", ACTIVITY_FIRST_COMMON, true),
ACTIVITY_CP(6, "ACTIVITY CP", ACTIVITY_FIRST_COMMON, true),
@@ -14,17 +18,17 @@ public enum ActivityType {
ACT_SIGN_BY_INVITE(8, "ACT SIGN BY INVITE", ACTIVITY_FIRST_COMMON, true),
COMMON_ACTIVITY(9, "COMMON ACTIVITY", ACTIVITY_FIRST_COMMON, true),
KRYPTON_MONTH(10, "COMMON ACTIVITY", ACTIVITY_FIRST_COMMON, true),
KRYPTON_MONTH(10, "KRYPTON MONTH", ACTIVITY_FIRST_COMMON, true),
VIGOUR_MONTH(11, "COMMON ACTIVITY", ACTIVITY_FIRST_COMMON, true),
VIGOUR_MONTH(11, "VIGOUR MONTH", ACTIVITY_FIRST_COMMON, true),
GUILD_MONTH_TOP(12, "GUILD MONTH", ACTIVITY_FIRST_COMMON, true),
GUILD_MONTH_ANCHOR_TOP(13, "GUILD_MONTH_ANCHOR_TOP", ACTIVITY_FIRST_COMMON, true),
GUILD_MONTH_ANCHOR_TOP(13, "GUILD MONTH ANCHOR TOP", ACTIVITY_FIRST_COMMON, true),
USER_LEVEL_EXP(14, "USER LEVEL EXP", ACTIVITY_FIRST_COMMON, true),
RAMADAN_GIFT_SEND(15, "RAMADAN GIFT SEND DAY", ACTIVITY_FIRST_COMMON, false),
RAMADAN_GIFT_SEND_GOLD_POOL(15, "RAMADAN GIFT SEND DAY", ACTIVITY_FIRST_COMMON, false),
RAMADAN_GIFT_SEND_GOLD_POOL_BAK(15, "RAMADAN GIFT SEND DAY BAK", ACTIVITY_FIRST_COMMON, false),
RAMADAN_GIFT_SEND_DAY_TOTAL(15, "RAMADAN GIFT SEND DAY TOTAL", ACTIVITY_FIRST_COMMON, true),
RAMADAN_GIFT_SEND_DAY_TOTAL(15, "RAMADAN GIFT SEND DAY TOTAL", ACTIVITY_FIRST_COMMON, false),
RAMADAN_GIFT_SEND_TOTAL(16, "RAMADAN GIFT SEND TOTAL", ACTIVITY_FIRST_COMMON, true),
;
@@ -62,4 +66,7 @@ public enum ActivityType {
}
return null;
}
public static Map<Integer, String> typeNameMap() {
return Arrays.stream(values()).filter(x -> x.isAdminShow()).collect(Collectors.toMap(ActivityType::getType, x -> x.getName()));
}
}

View File

@@ -6,4 +6,6 @@ import lombok.Data;
@Data
public class ActivityH5LevelAwardVo extends ActivityH5LevelAward {
private String name;
private String awardName;
private String awardPic;
}

View File

@@ -1,6 +1,7 @@
package com.accompany.business.service.activity.h5;
import com.accompany.business.common.vo.RewardVo;
import com.accompany.business.model.activity.h5.ActivityH5LevelAward;
import com.accompany.business.param.ActivityH5Param;
import com.accompany.business.vo.activity.h5.ActivityH5LevelAwardVo;
@@ -25,4 +26,6 @@ public interface ActivityH5LevelAwardService extends IService<ActivityH5LevelAwa
List<ActivityH5LevelAward> listByLevelPartition(Integer partitionId, Integer level, Integer type);
IPage<ActivityH5LevelAwardVo> listPage(ActivityH5Param param);
RewardVo coverRewardByType(Byte type, Integer refId);
}

View File

@@ -1,11 +1,41 @@
package com.accompany.business.service.activity.h5;
import com.accompany.business.common.constant.RewardTypeEnum;
import com.accompany.business.common.vo.RewardVo;
import com.accompany.business.constant.activity.ActivityType;
import com.accompany.business.model.*;
import com.accompany.business.model.activity.h5.ActivityH5LevelAward;
import com.accompany.business.model.activity.h5.ActivityH5LevelExp;
import com.accompany.business.model.dress.ChatBubble;
import com.accompany.business.model.dress.InfoCard;
import com.accompany.business.model.dress.PersonalBackground;
import com.accompany.business.model.dress.UserPersonalBackground;
import com.accompany.business.model.vip.VipInfo;
import com.accompany.business.mybatismapper.NameplateMapper;
import com.accompany.business.mybatismapper.activity.h5.ActivityH5LevelAwardMapper;
import com.accompany.business.param.ActivityH5Param;
import com.accompany.business.service.car.CarGoodsService;
import com.accompany.business.service.car.CarPayService;
import com.accompany.business.service.dress.*;
import com.accompany.business.service.gift.GiftService;
import com.accompany.business.service.headwear.HeadwearService;
import com.accompany.business.service.medal.MedalService;
import com.accompany.business.service.medal.UserMedalService;
import com.accompany.business.service.nameplate.UserNameplateService;
import com.accompany.business.service.purse.UserPurseService;
import com.accompany.business.service.user.UserBackpackService;
import com.accompany.business.service.vip.ChatBubbleService;
import com.accompany.business.service.vip.VipInfoService;
import com.accompany.business.service.vip.VipLevelBizService;
import com.accompany.business.vo.activity.h5.ActivityH5LevelAwardVo;
import com.accompany.common.config.SystemConfig;
import com.accompany.common.constant.Constant;
import com.accompany.common.status.BusiStatus;
import com.accompany.common.utils.DateTimeUtil;
import com.accompany.core.base.SpringContextHolder;
import com.accompany.core.enumeration.BillObjTypeEnum;
import com.accompany.core.exception.AdminServiceException;
import com.accompany.core.exception.ServiceException;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -13,10 +43,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import com.accompany.business.common.constant.RewardTypeEnum;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* <p>
@@ -32,6 +66,41 @@ public class ActivityH5LevelAwardServiceImpl extends ServiceImpl<ActivityH5Level
@Autowired
private ActivityH5LevelExpService activityH5LevelExpService;
@Autowired
private GiftService giftService;
@Autowired
private UserBackpackService userBackpackService;
@Autowired
private NameplateMapper nameplateMapper;
@Autowired
private UserNameplateService userNameplateService;
@Autowired
private ChatBubbleService chatBubbleService;
@Autowired
private UserChatBubbleService userChatBubbleService;
@Autowired
private HeadwearService headwearService;
@Autowired
private CarGoodsService carGoodsService;
@Autowired
private CarPayService carPayService;
@Autowired
private InfoCardService infoCardService;
@Autowired
private UserInfoCardService userInfoCardService;
@Autowired
private VipInfoService vipInfoService;
@Autowired
@Lazy
private UserPurseService userPurseService;
@Autowired
private MedalService medalService;
@Autowired
private UserMedalService userMedalService;
@Autowired
private PersonalBackgroundService personalBackgroundService;
@Autowired
private UserPersonalBackgroundService userPersonalBackgroundService;
@Override
public IPage<ActivityH5LevelAwardVo> listPage(ActivityH5Param param) {
@@ -39,6 +108,9 @@ public class ActivityH5LevelAwardServiceImpl extends ServiceImpl<ActivityH5Level
LambdaQueryWrapper<ActivityH5LevelAward> queryWrapper = new LambdaQueryWrapper<>();
if (param.getPartitionId() != null && param.getPartitionId() != 0) {
queryWrapper.eq(ActivityH5LevelAward::getPartitionId, param.getPartitionId());
}
if (param.getType() !=null){
queryWrapper.eq(ActivityH5LevelAward::getType,param.getType());
}
@@ -51,16 +123,20 @@ public class ActivityH5LevelAwardServiceImpl extends ServiceImpl<ActivityH5Level
if (param.getEndTime() != null){
queryWrapper.le(ActivityH5LevelAward::getCreateTime,param.getEndTime());
}
queryWrapper.orderByDesc(ActivityH5LevelAward::getUpdateTime);
IPage<ActivityH5LevelAward> levelAwardIPage = this.page(page, queryWrapper);
List<ActivityH5LevelAward> records = levelAwardIPage.getRecords();
List<ActivityH5LevelAwardVo> resultList = new ArrayList<>();
Map<Integer, String> typeNameMap = ActivityType.typeNameMap();
if (CollectionUtils.isNotEmpty(records)) {
for (ActivityH5LevelAward record : records) {
ActivityH5LevelAwardVo activityH5LevelAwardVo = new ActivityH5LevelAwardVo();
BeanUtils.copyProperties(record, activityH5LevelAwardVo);
ActivityH5LevelExp serviceLevelExp = activityH5LevelExpService.getLevelExp(record.getPartitionId(), record.getLevel(), record.getType());
if (serviceLevelExp != null) {
activityH5LevelAwardVo.setName(serviceLevelExp.getName());
activityH5LevelAwardVo.setName(typeNameMap.get(record.getType()));
RewardVo rewardVo = this.coverRewardByType(record.getAwardType(), record.getAwardId().intValue());
if (rewardVo != null) {
activityH5LevelAwardVo.setAwardName(rewardVo.getName());
activityH5LevelAwardVo.setAwardPic(rewardVo.getPic());
}
resultList.add(activityH5LevelAwardVo);
}
@@ -74,6 +150,96 @@ public class ActivityH5LevelAwardServiceImpl extends ServiceImpl<ActivityH5Level
return result;
}
public RewardVo coverRewardByType(Byte type, Integer refId) {
RewardVo vo = new RewardVo();
vo.setType(type);
vo.setRefId(refId);
RewardTypeEnum typeEnum = RewardTypeEnum.getByRewardType(type);
switch (typeEnum) {
case HEADWEAR:
Headwear headwear = headwearService.getHeadwear(refId);
if (null == headwear) {
return null;
}
vo.setName(headwear.getName());
vo.setPic(headwear.getPic());
break;
case NAMEPLATE:
Nameplate nameplate = nameplateMapper.selectById(refId.longValue());
if (null == nameplate) {
return null;
}
vo.setName(nameplate.getName());
vo.setPic(nameplate.getIconPic());
break;
case CHATBUBBLE:
ChatBubble chatBubble = chatBubbleService.getChatBubbleById(refId.longValue());
if (null == chatBubble) {
return null;
}
vo.setName(chatBubble.getName());
vo.setPic(chatBubble.getAndroidUrl());
break;
case INFOCARD:
InfoCard infoCard = infoCardService.getInfoCardById(refId.longValue());
if (null == infoCard) {
return null;
}
vo.setName(infoCard.getName());
vo.setPic(infoCard.getPic());
break;
case CAR:
CarGoods car = carGoodsService.getCarGoods(refId);
if (null == car) {
return null;
}
vo.setName(car.getName());
vo.setPic(car.getPic());
break;
case GIFT:
Gift gift = giftService.getGiftById(refId);
if (null == gift){
return null;
}
vo.setName(gift.getGiftName());
vo.setPic(gift.getPicUrl());
break;
case DIAMOND:
vo.setName(typeEnum.getDesc());
break;
case GOLD:
vo.setName(typeEnum.getDesc());
break;
case VIP:
VipInfo vipInfo = vipInfoService.getByVipLevel(refId);
if (null == vipInfo){
return null;
}
vo.setName(vipInfo.getVipName());
vo.setPic(vipInfo.getVipIcon());
break;
case MEDAL:
Medal medal = medalService.getById(refId);
if (null == medal){
return null;
}
vo.setName(medal.getName());
vo.setPic(medal.getPicUrl());
break;
case PERSONAL:
PersonalBackground personalBackground = personalBackgroundService.getById(refId);
if (null == personalBackground){
return null;
}
vo.setName(personalBackground.getName());
vo.setPic(personalBackground.getPic());
break;
default:
break;
}
return vo;
}
@Override
public List<ActivityH5LevelAward> listByLevel(Integer level, Integer type) {
return this.baseMapper.listByLevel(level,type);