miduo_gm/src/main/java/com/jmfy/controller/ActivityController.java

266 lines
9.6 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.jmfy.controller;
import com.jmfy.dao.ActivityDao;
import com.jmfy.dao.ServerInfoDao;
import com.jmfy.model.gm.ARBActivity;
import com.jmfy.model.gm.ARBMission;
import com.jmfy.model.ServerInfo;
import com.jmfy.model.vo.ARBActivityTypeEnum;
import com.jmfy.model.vo.ARBActivityTypeVo;
import com.jmfy.redisProperties.RedisUserKey;
import com.jmfy.utils.*;
import config.SItemConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
* @Author hj
* @Date 2022/9/26 16:45:24
* @Description:
* @Version 1.0
*/
@Controller
public class ActivityController {
private static final Logger LOGGER = LoggerFactory.getLogger(ActivityController.class);
@Resource
private ServerInfoDao serverInfoDao;
@Resource
private ActivityDao activityDao;
/**
* 活动信息界面
* @param map
* @return
* @throws Exception
*/
@RequestMapping(value = "/findARBActivityInfos", method = {RequestMethod.POST, RequestMethod.GET})
public String findARBActivityInfos(ModelMap map, HttpServletRequest request) throws Exception {
String serverId = request.getParameter("serverId");
List<ARBActivity> allActivityList = new ArrayList<>();
// 没有serverId获取全部活动信息
if (StringUtil.isEmpty(serverId)){
allActivityList = activityDao.findAllActivityList();
}
// 获取对应服务器的活动信息
else {
String[] serverIds = serverId.split(",");
for (String id : serverIds) {
allActivityList.addAll(activityDao.findServerActivityList(id));
}
}
List<ServerInfo> serverInfos = serverInfoDao.getAllServerInfo();
map.addAttribute("serverInfos", serverInfos);
map.addAttribute("allActivityList", allActivityList);
return "activity/arb/ARBActivitys";
}
/**
* 切换到活动信息更新页面
* @param request
* @return
* @throws Exception
*/
@RequestMapping(value = "/jumpUpdateARBActivity", method = {RequestMethod.POST, RequestMethod.GET})
public String jumpUpdateARBActivity(ModelMap map, HttpServletRequest request) throws Exception {
String activityId = request.getParameter("activityId");
if (!StringUtil.isEmpty(activityId)){
ARBActivity oneActivity = activityDao.findOneActivity(activityId);
map.addAttribute("activity", oneActivity);
}
List<ARBActivityTypeVo> typeList = new ArrayList<>(ARBActivityTypeEnum.getVoMap().values());
map.addAttribute("typeList", typeList);
List<ServerInfo> serverInfos = serverInfoDao.getAllServerInfo();
serverInfos.add(0,new ServerInfo(0,"全部"));
map.addAttribute("serverInfos", serverInfos);
return "activity/arb/updateARBActivity";
}
/**
* 修改活动信息
* @param activity
* @return
* @throws Exception
*/
@PostMapping(value = "/updateARBActivity")
public @ResponseBody int
updateARBActivity(@RequestBody ARBActivity activity) throws Exception {
LOGGER.error("updateARBActivity ---------------- ");
// 删除旧缓存
ARBActivity oldActivity = activityDao.findOneActivity(activity.getId());
for (String serverId : oldActivity.getServerIds()) {
RedisUtil.getInstence().delMapKey(RedisUserKey.GM_ACTIVITY_INFO,serverId,oldActivity.getId());
}
// 存库
activityDao.uporsetActivity(activity);
// 放入redis
ARBActivity oneActivity = activityDao.findOneActivity(activity.getId());
if (oneActivity != null){
for (String serverId : oneActivity.getServerIds()) {
RedisUtil.getInstence().putMapEntry(RedisUserKey.GM_ACTIVITY_INFO,serverId,activity.getId(),oneActivity,-1);
}
}
return 1;
}
/**
* 删除活动信息
* @param request
* @return
* @throws Exception
*/
@RequestMapping(value = "/removeARBActivity", method = {RequestMethod.POST, RequestMethod.GET})
public @ResponseBody int
removeARBActivity(HttpServletRequest request) throws Exception {
// mongo
String activityId = request.getParameter("activityId");
ARBActivity oneActivity = activityDao.findOneActivity(activityId);
activityDao.deleteActivity(activityId);
// redis
if (oneActivity != null){
for (String serverId : oneActivity.getServerIds()) {
RedisUtil.getInstence().delMapKey(RedisUserKey.GM_ACTIVITY_INFO,serverId,activityId);
}
}
return 1;
}
/**
* 档位信息界面
* @param map
* @return
* @throws Exception
*/
@RequestMapping(value = "/findARBMissions", method = {RequestMethod.POST, RequestMethod.GET})
public String findARBMissions(ModelMap map, HttpServletRequest request) throws Exception {
String activityId = request.getParameter("activityId");
List<ARBMission> missions = activityDao.findActivityMissionList(activityId);
map.addAttribute("missions", missions);
map.addAttribute("activityId", activityId);
return "activity/arb/ARBMissions";
}
/**
* 切换到活动信息更新页面
* @param request
* @return
* @throws Exception
*/
@RequestMapping(value = "/jumpAddARBMission", method = {RequestMethod.POST, RequestMethod.GET})
public String jumpAddARBMission(ModelMap map, HttpServletRequest request) throws Exception {
String missionId = request.getParameter("missionId");
if (!StringUtil.isEmpty(missionId)){
ARBMission mission = activityDao.findOneMission(missionId);
map.addAttribute("mission", mission);
}
ArrayList<SItemConfig> itemList = new ArrayList<>(FileCacheUtils.itemMap.values());
map.addAttribute("itemList",itemList);
String activityId = request.getParameter("activityId");
map.addAttribute("activityId", activityId);
int type = activityDao.findOneActivity(activityId).getType();
map.addAttribute("type", type);
return "activity/arb/addARBMission";
}
/**
* 修改档位信息
* @param request
* @return
* @throws Exception
*/
@RequestMapping(value = "/addARBMission", method = {RequestMethod.POST, RequestMethod.GET})
public @ResponseBody int
addARBMission(HttpServletRequest request) throws Exception {
HashMap<String, String> parameterMap = JsonUtil.getInstence().getParameterMap(request);
ARBMission mission = new ARBMission();
String sort = parameterMap.get("sort");
String title = parameterMap.get("title");
String propId = parameterMap.get("propId");
String propNum = parameterMap.get("propNum");
String activityId = parameterMap.get("activityId");
ARBActivity oneActivity = activityDao.findOneActivity(activityId);
// 专属参数处理
parameterToType(oneActivity.getType(),parameterMap,mission);
// 通用数据赋值
mission.setSort(Integer.parseInt(sort));
mission.setTitle(title);
mission.setActivity(oneActivity);
// reward
if (propId.equals("") || "".equals(propNum)){
mission.setReward(new int[0][]);
}else {
String[] ids = propId.split(",");
String[] nums = propNum.split(",");
int[][] reward = new int[ids.length][2];
for (int i = 0; i < ids.length; i++) {
reward[i][0] = Integer.parseInt(ids[i]);
reward[i][1] = Integer.parseInt(nums[i]);
}
mission.setReward(reward);
}
activityDao.addMission(mission);
return 1;
}
/**
* 正则检测条件格式
* @param type
* @return
*/
private void parameterToType(int type, HashMap<String, String> parameterMap, ARBMission mission) throws Exception{
if (type == 2){
//返利专属的充值区间和返利额度
int beforeNum = Integer.parseInt(parameterMap.get("beforeNum"));
int afterNum = Integer.parseInt(parameterMap.get("afterNum"));
int backRatio = Integer.parseInt(parameterMap.get("backRatio"));
mission.setBeforeNum(beforeNum);
mission.setAfterNum(afterNum);
mission.setBackRatio(backRatio);
}else {
int rechargeNum = Integer.parseInt(parameterMap.get("rechargeValue"));
mission.setRechargeNum(rechargeNum);
}
}
@RequestMapping(value = "/jumpMissionValue", method = {RequestMethod.POST, RequestMethod.GET})
public String jumpMissionValue(HttpServletRequest request) {
int type = Integer.parseInt(request.getParameter("type"));
String result;
if (type == 2) {
//返利专属
result = "activity/arb/missionToMonsterCurrencyBack";
} else {
result = "activity/arb/missionToOneDayRecharge";
}
return result;
}
/**
* 删除档位信息
* @param request
* @return
* @throws Exception
*/
@RequestMapping(value = "/removeARBMission", method = {RequestMethod.POST, RequestMethod.GET})
public @ResponseBody int
removeARBMission(HttpServletRequest request) throws Exception {
String missionId = request.getParameter("missionId");
activityDao.deleteMission(missionId);
return 1;
}
}