generated from root/miduo_server
266 lines
9.6 KiB
Java
266 lines
9.6 KiB
Java
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;
|
||
}
|
||
}
|