diff --git a/src/main/java/com/jmfy/controller/ActivityController.java b/src/main/java/com/jmfy/controller/ActivityController.java index b91943c..8c72919 100644 --- a/src/main/java/com/jmfy/controller/ActivityController.java +++ b/src/main/java/com/jmfy/controller/ActivityController.java @@ -2,13 +2,13 @@ package com.jmfy.controller; import com.jmfy.dao.ActivityDao; import com.jmfy.dao.ServerInfoDao; -import com.jmfy.model.ARBActivity; -import com.jmfy.model.ARBMission; +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.utils.FileCacheUtils; -import com.jmfy.utils.StringUtil; +import com.jmfy.redisProperties.RedisUserKey; +import com.jmfy.utils.*; import config.SItemConfig; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -19,7 +19,10 @@ 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; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * @Author hj @@ -94,6 +97,7 @@ public class ActivityController { public @ResponseBody int updateARBActivity(@RequestBody ARBActivity activity) throws Exception { activityDao.uporsetActivity(activity); + activityUpdateVersion(); return 1; } @@ -108,6 +112,7 @@ public class ActivityController { removeARBActivity(HttpServletRequest request) throws Exception { String activityId = request.getParameter("activityId"); activityDao.deleteActivity(activityId); + activityUpdateVersion(); return 1; } @@ -126,54 +131,6 @@ public class ActivityController { return "ARBMissions"; } - /** - * 修改档位信息 - * @param request - * @return - * @throws Exception - */ - @RequestMapping(value = "/addARBMission", method = {RequestMethod.POST, RequestMethod.GET}) - public @ResponseBody int - addARBMission(HttpServletRequest request) throws Exception { - ARBMission mission = new ARBMission(); - String title = request.getParameter("title"); - String rechargeValue = request.getParameter("rechargeValue"); - String propId = request.getParameter("propId"); - String propNum = request.getParameter("propNum"); - String activityId = request.getParameter("activityId"); - // id - mission.setTitle(title); - mission.setRechargeValue(Integer.parseInt(rechargeValue)); - // reward - 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); - // activity - ARBActivity oneActivity = activityDao.findOneActivity(activityId); - mission.setActivity(oneActivity); - - activityDao.addMission(mission); - return 1; - } - - /** - * 删除档位信息 - * @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; - } /** * 切换到活动信息更新页面 @@ -192,7 +149,106 @@ public class ActivityController { map.addAttribute("itemList",itemList); String activityId = request.getParameter("activityId"); map.addAttribute("activityId", activityId); + int type = activityDao.findOneActivity(activityId).getType(); + map.addAttribute("type", type); return "addARBMission"; } + /** + * 修改档位信息 + * @param request + * @return + * @throws Exception + */ + @RequestMapping(value = "/addARBMission", method = {RequestMethod.POST, RequestMethod.GET}) + public @ResponseBody int + addARBMission(HttpServletRequest request) throws Exception { + HashMap 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 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 = "missionToMonsterCurrencyBack"; + } else { + result = "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; + } + + /** + * 活动更新标识,同步redis + */ + private static void activityUpdateVersion(){ + RedisUtil.getInstence().set(RedisUserKey.GM_ACTIVITY_UPDATE, String.valueOf(DateUtil.nowInt())); + } + } diff --git a/src/main/java/com/jmfy/dao/ActivityDao.java b/src/main/java/com/jmfy/dao/ActivityDao.java index fc59ef8..ba40edb 100644 --- a/src/main/java/com/jmfy/dao/ActivityDao.java +++ b/src/main/java/com/jmfy/dao/ActivityDao.java @@ -1,8 +1,7 @@ package com.jmfy.dao; -import com.jmfy.model.ARBActivity; -import com.jmfy.model.ARBActivity; -import com.jmfy.model.ARBMission; +import com.jmfy.model.gm.ARBActivity; +import com.jmfy.model.gm.ARBMission; import java.util.List; diff --git a/src/main/java/com/jmfy/dao/impl/ActivityDaoImpl.java b/src/main/java/com/jmfy/dao/impl/ActivityDaoImpl.java index 3fae842..0c8bc85 100644 --- a/src/main/java/com/jmfy/dao/impl/ActivityDaoImpl.java +++ b/src/main/java/com/jmfy/dao/impl/ActivityDaoImpl.java @@ -1,10 +1,11 @@ package com.jmfy.dao.impl; import com.jmfy.dao.ActivityDao; -import com.jmfy.model.ARBActivity; -import com.jmfy.model.ARBMission; +import com.jmfy.model.gm.ARBActivity; +import com.jmfy.model.gm.ARBMission; import com.jmfy.model.Constant; import com.jmfy.utils.Connect; +import com.jmfy.utils.DateUtil; import com.jmfy.utils.StringUtil; import org.bson.types.ObjectId; import org.springframework.data.mongodb.core.MongoTemplate; @@ -63,6 +64,7 @@ public class ActivityDaoImpl implements ActivityDao { // 添加 ARBActivity oneActivity = findOneActivity(activity.getId()); if (oneActivity == null){ + activity.setCreateTime(DateUtil.nowString()); mongoTemplate.insert(activity); return; } @@ -90,6 +92,12 @@ public class ActivityDaoImpl implements ActivityDao { @Override public void deleteActivity(String activityId) throws Exception { MongoTemplate mongoTemplate = connect.getMongoTemplete(Constant.dbName); + // 删除档位 + List missionList = findActivityMissionList(activityId); + for (ARBMission mission : missionList) { + deleteMission(mission.getId()); + } + // 删除活动 Query query = new Query(Criteria.where("id").is(activityId)); mongoTemplate.remove(query, ARBActivity.class); } diff --git a/src/main/java/com/jmfy/model/ARBActivity.java b/src/main/java/com/jmfy/model/gm/ARBActivity.java similarity index 85% rename from src/main/java/com/jmfy/model/ARBActivity.java rename to src/main/java/com/jmfy/model/gm/ARBActivity.java index 36a31cb..f16b3cf 100644 --- a/src/main/java/com/jmfy/model/ARBActivity.java +++ b/src/main/java/com/jmfy/model/gm/ARBActivity.java @@ -1,5 +1,6 @@ -package com.jmfy.model; +package com.jmfy.model.gm; +import com.jmfy.model.ServerInfo; import com.jmfy.model.vo.ARBActivityTypeEnum; import com.jmfy.model.vo.ARBActivityTypeVo; import com.jmfy.redisProperties.RedisUserKey; @@ -45,27 +46,15 @@ public class ARBActivity { * 结束时间 */ private String endTime; + /** + * 创建时间 + */ + private String createTime; /** * 生效的服务器列表 */ private Set serverIds = new HashSet<>(); - public ARBActivity() { - } - - public ARBActivity(String id, String name, String description, int type, String startTime, String endTime, String severStr) { - if (!StringUtil.isEmpty(id)){ - this.id = id; - } - this.name = name; - this.description = description; - this.type = type; - this.startTime = startTime; - this.endTime = endTime; - String[] split = severStr.split(","); - this.serverIds = Arrays.stream(split).collect(Collectors.toSet()); - } - public String getId() { return id; } @@ -115,6 +104,14 @@ public class ARBActivity { return typeVo.getName(); } + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + public void setType(int type) { this.type = type; } diff --git a/src/main/java/com/jmfy/model/ARBMission.java b/src/main/java/com/jmfy/model/gm/ARBMission.java similarity index 56% rename from src/main/java/com/jmfy/model/ARBMission.java rename to src/main/java/com/jmfy/model/gm/ARBMission.java index a5cb75d..49d90f0 100644 --- a/src/main/java/com/jmfy/model/ARBMission.java +++ b/src/main/java/com/jmfy/model/gm/ARBMission.java @@ -1,8 +1,7 @@ -package com.jmfy.model; +package com.jmfy.model.gm; import com.jmfy.utils.JsonUtil; import org.springframework.data.annotation.Id; -import org.springframework.data.annotation.Transient; import org.springframework.data.mongodb.core.mapping.DBRef; import org.springframework.data.mongodb.core.mapping.Document; @@ -16,25 +15,39 @@ import org.springframework.data.mongodb.core.mapping.Document; public class ARBMission { @Id private String id; + /** + * 排序 + */ + private int sort; /** * 标题 */ private String title; /** - * 充值条件值 + * 通用充值额度 + * @return */ - private int rechargeValue; + private int rechargeNum; /** * 道具数组 */ private int[][] reward; - /** * 关联查询,活动信息 */ @DBRef private ARBActivity activity; + /** + * 返利活动数据 + * @return + */ + private int beforeNum; + + private int afterNum; + + private int backRatio; + public String getId() { return id; } @@ -43,6 +56,14 @@ public class ARBMission { this.id = id; } + public int getSort() { + return sort; + } + + public void setSort(int sort) { + this.sort = sort; + } + public String getTitle() { return title; } @@ -51,14 +72,6 @@ public class ARBMission { this.title = title; } - public int getRechargeValue() { - return rechargeValue; - } - - public void setRechargeValue(int rechargeValue) { - this.rechargeValue = rechargeValue; - } - public int[][] getReward() { return reward; } @@ -78,4 +91,36 @@ public class ARBMission { public void setActivity(ARBActivity activity) { this.activity = activity; } + + public int getBeforeNum() { + return beforeNum; + } + + public void setBeforeNum(int beforeNum) { + this.beforeNum = beforeNum; + } + + public int getAfterNum() { + return afterNum; + } + + public void setAfterNum(int afterNum) { + this.afterNum = afterNum; + } + + public int getBackRatio() { + return backRatio; + } + + public void setBackRatio(int backRatio) { + this.backRatio = backRatio; + } + + public int getRechargeNum() { + return rechargeNum; + } + + public void setRechargeNum(int rechargeNum) { + this.rechargeNum = rechargeNum; + } } diff --git a/src/main/java/com/jmfy/redisProperties/RedisUserKey.java b/src/main/java/com/jmfy/redisProperties/RedisUserKey.java index 15d8943..93e7c6f 100644 --- a/src/main/java/com/jmfy/redisProperties/RedisUserKey.java +++ b/src/main/java/com/jmfy/redisProperties/RedisUserKey.java @@ -37,14 +37,12 @@ public class RedisUserKey { public static final String CROSS_SERVER_GROUP = "CROSS_SERVER_GROUP";//gm跨服分组,每周一重新分组生效 public static final String SERVER_INFO = "SERVER_INFO";//服务器信息 - /** - * 在线人数 updata/min - */ - public static final String ONLINE_NUM = "ONLINE_NUM"; - /** - * 游戏支付端口 - */ - public static final String GAME_PAY_URL = "GAME_PAY_URL:"; + + public static final String ONLINE_NUM = "ONLINE_NUM";//在线人数 updata/min + + public static final String GAME_PAY_URL = "GAME_PAY_URL:";//游戏支付端口 + + public static final String GM_ACTIVITY_UPDATE = "GM_ACTIVITY_UPDATE";// GM活动更新 public static String getKey(String type, String key, int serverId) { if (serverId==0) { diff --git a/src/main/java/com/jmfy/utils/DateUtil.java b/src/main/java/com/jmfy/utils/DateUtil.java index ddd8360..5f1da56 100644 --- a/src/main/java/com/jmfy/utils/DateUtil.java +++ b/src/main/java/com/jmfy/utils/DateUtil.java @@ -252,8 +252,8 @@ public class DateUtil { return System.currentTimeMillis(); } - public static long nowInt(){ - return System.currentTimeMillis()/1000; + public static int nowInt(){ + return (int)(System.currentTimeMillis()/1000); } public static String nowString(){ diff --git a/src/main/java/com/jmfy/utils/JsonUtil.java b/src/main/java/com/jmfy/utils/JsonUtil.java index f0538c0..da37c3d 100644 --- a/src/main/java/com/jmfy/utils/JsonUtil.java +++ b/src/main/java/com/jmfy/utils/JsonUtil.java @@ -34,7 +34,7 @@ public class JsonUtil { } public HashMap getParameterMap(HttpServletRequest request) { - HashMap map = new HashMap(); + HashMap map = new HashMap(); Enumeration paramNames = request.getParameterNames(); while (paramNames.hasMoreElements()) { String paramName = (String) paramNames.nextElement(); diff --git a/src/main/resources/static/tips/help.css b/src/main/resources/static/tips/help.css new file mode 100644 index 0000000..c966f3f --- /dev/null +++ b/src/main/resources/static/tips/help.css @@ -0,0 +1,88 @@ +/* ͼ Ѽ www.lanrentuku.com */ + +/*------------------------- + Inline help tip +--------------------------*/ + + +.help-tip{ + position: absolute; + top: 4px; + right: 18px; + text-align: center; + background-color: #BCDBEA; + border-radius: 50%; + width: 24px; + height: 24px; + font-size: 14px; + line-height: 26px; + cursor: default; +} + +.help-tip:before{ + content:'?'; + font-weight: bold; + color:#fff; +} + +.help-tip:hover p{ + display:block; + transform-origin: 100% 0%; + + -webkit-animation: fadeIn 0.3s ease-in-out; + animation: fadeIn 0.3s ease-in-out; + +} + +.help-tip p{ + display: none; + text-align: left; + background-color: #1E2021; + padding: 20px; + width: 200px; + position: absolute; + border-radius: 3px; + box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.2); + right: -4px; + color: #FFF; + font-size: 13px; + line-height: 1.4; + z-index: 999; +} + +.help-tip p:before{ + position: absolute; + content: ''; + width:0; + height: 0; + border:6px solid transparent; + border-bottom-color:#1E2021; + right:10px; + top:-12px; +} + +.help-tip p:after{ + width:100%; + height:40px; + content:''; + position: absolute; + top:-40px; + left:0; +} + +@-webkit-keyframes fadeIn { + 0% { + opacity:0; + transform: scale(0.6); + } + + 100% { + opacity:100%; + transform: scale(1); + } +} + +@keyframes fadeIn { + 0% { opacity:0; } + 100% { opacity:100%; } +} \ No newline at end of file diff --git a/src/main/resources/templates/ARBMissions.html b/src/main/resources/templates/ARBMissions.html index 36f0627..e80d78c 100644 --- a/src/main/resources/templates/ARBMissions.html +++ b/src/main/resources/templates/ARBMissions.html @@ -45,18 +45,16 @@ - + - - + -
档位id档位排序 档位标题充值金额条件值 奖励 操作