| | |
| | | package com.yeshi.fanli.controller.client.v2;
|
| | |
|
| | | import java.io.IOException;
|
| | | import java.io.PrintWriter;
|
| | | import java.lang.reflect.Type;
|
| | | import java.util.ArrayList;
|
| | |
| | | import com.google.gson.JsonPrimitive;
|
| | | import com.google.gson.JsonSerializationContext;
|
| | | import com.google.gson.JsonSerializer;
|
| | | import com.google.gson.TypeAdapter;
|
| | | import com.google.gson.reflect.TypeToken;
|
| | | import com.google.gson.stream.JsonReader;
|
| | | import com.google.gson.stream.JsonWriter;
|
| | | import com.yeshi.fanli.entity.accept.AcceptData;
|
| | | import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinDetail.TaoLiJinDetailTypeEnum;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
|
| | | import com.yeshi.fanli.entity.bus.user.UserRank;
|
| | | import com.yeshi.fanli.entity.common.JumpDetailV2;
|
| | | import com.yeshi.fanli.entity.integral.CodePublishRecord;
|
| | | import com.yeshi.fanli.entity.integral.IntegralExchange;
|
| | | import com.yeshi.fanli.entity.integral.IntegralTaskClass;
|
| | | import com.yeshi.fanli.entity.integral.IntegralExchange.ExchangeTypeEnum;
|
| | | import com.yeshi.fanli.entity.integral.IntegralTask;
|
| | | import com.yeshi.fanli.entity.integral.IntegralTask.TaskUniqueKeyEnum;
|
| | | import com.yeshi.fanli.entity.integral.IntegralTaskClass.UniqueKeyEnum;
|
| | | import com.yeshi.fanli.entity.integral.IntegralTaskRecord;
|
| | | import com.yeshi.fanli.entity.system.ConfigKeyEnum;
|
| | | import com.yeshi.fanli.exception.integral.IntegralExchangeException;
|
| | | import com.yeshi.fanli.exception.integral.IntegralTaskRecordException;
|
| | | import com.yeshi.fanli.log.LogHelper;
|
| | | import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
|
| | | import com.yeshi.fanli.service.inter.config.ConfigService;
|
| | | import com.yeshi.fanli.service.inter.integral.CodePublishRecordService;
|
| | | import com.yeshi.fanli.service.inter.integral.IntegralExchangeRecordService;
|
| | | import com.yeshi.fanli.service.inter.integral.IntegralExchangeService;
|
| | | import com.yeshi.fanli.service.inter.integral.IntegralTaskClassService;
|
| | | import com.yeshi.fanli.service.inter.integral.IntegralTaskRecordService;
|
| | | import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
|
| | | import com.yeshi.fanli.service.inter.user.UserInfoService;
|
| | | import com.yeshi.fanli.service.inter.user.integral.CodePublishRecordService;
|
| | | import com.yeshi.fanli.service.inter.user.integral.IntegralDetailService;
|
| | | import com.yeshi.fanli.service.inter.user.integral.IntegralExchangeRecordService;
|
| | | import com.yeshi.fanli.service.inter.user.integral.IntegralExchangeService;
|
| | | import com.yeshi.fanli.service.inter.user.integral.IntegralGetService;
|
| | | import com.yeshi.fanli.service.inter.user.integral.IntegralTaskClassService;
|
| | | import com.yeshi.fanli.service.inter.user.integral.IntegralTaskRankService;
|
| | | import com.yeshi.fanli.service.inter.user.integral.IntegralTaskRecordService;
|
| | | import com.yeshi.fanli.service.inter.user.integral.IntegralTaskService;
|
| | | import com.yeshi.fanli.util.Constant;
|
| | | import com.yeshi.fanli.util.StringUtil;
|
| | | import com.yeshi.fanli.util.TimeUtil;
|
| | | import com.yeshi.fanli.util.VersionUtil;
|
| | | import com.yeshi.fanli.util.annotation.RequestSerializableByKey;
|
| | | import com.yeshi.fanli.vo.integral.DailySignVO;
|
| | | import com.yeshi.fanli.vo.integral.ExchangeTipVO;
|
| | | import com.yeshi.fanli.vo.integral.IntegralDetailVO;
|
| | | import com.yeshi.fanli.vo.integral.IntegralTaskClassVO;
|
| | | import com.yeshi.fanli.vo.user.UserInfoExtraVO;
|
| | |
|
| | |
| | | private IntegralExchangeRecordService integralExchangeRecordService;
|
| | |
|
| | | @Resource
|
| | | private IntegralDetailService integralDetailService;
|
| | |
|
| | | @Resource
|
| | | private IntegralTaskRankService integralTaskRankService;
|
| | |
|
| | | @Resource
|
| | | private CodePublishRecordService codePublishRecordService;
|
| | |
|
| | | @Resource
|
| | | private IntegralTaskService integralTaskService;
|
| | |
|
| | | @Resource
|
| | | private IntegralGetService integralGetService;
|
| | |
|
| | | @Resource
|
| | | private JumpDetailV2Service jumpDetailV2Service;
|
| | |
|
| | | /**
|
| | | * 获取任务列表
|
| | |
| | | * @param page
|
| | | * @param out
|
| | | */
|
| | | // @RequestSerializableByKey(key="#acceptData.device")
|
| | | @RequestMapping(value = "getTaskList", method = RequestMethod.POST)
|
| | | public void getTaskList(AcceptData acceptData, Long uid, Integer page, PrintWriter out) {
|
| | | if (uid == null || uid <= 0) {
|
| | |
| | | }
|
| | | long count = integralTaskClassService.countTaskClass();
|
| | |
|
| | | // 用户签到
|
| | | Integer signState = 0;
|
| | | if (page == 1) {
|
| | |
|
| | | // 签到
|
| | | try {
|
| | | signState = integralTaskClassService.finishedDailySign(uid);
|
| | | } catch (Exception e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | |
|
| | | UserInfoExtraVO extraVO = userInfoExtraService.getInfoExtraVOByUid(uid);
|
| | | if (extraVO == null) {
|
| | | out.print(JsonUtil.loadFalseResult(1, "用户相关信息不存在"));
|
| | |
| | | return;
|
| | | }
|
| | |
|
| | | boolean signState = false;
|
| | | IntegralTaskClass taskClass = integralTaskClassService.getByUniqueKey(UniqueKeyEnum.dailySign.name());
|
| | | if (taskClass != null)
|
| | | signState = integralTaskRecordService.isToDaySign(uid, taskClass.getId());
|
| | |
|
| | | // 签到日期
|
| | | // 签到日期信息
|
| | | DailySignVO dailySignVO = integralTaskClassService.getDailySignList(uid, userRank.getId());
|
| | | data.put("signState", signState);
|
| | |
|
| | | boolean ejectSign = false;
|
| | | if (signState == 1)
|
| | | ejectSign = true;
|
| | |
|
| | | data.put("signState", ejectSign);
|
| | | data.put("goldCoin", extraVO.getGoldCoin());
|
| | | data.put("portrait", userInfo.getPortrait());
|
| | | data.put("userRank", gson.toJson(userRank));
|
| | | data.put("dailySign", dailySignVO);
|
| | | }
|
| | | for (int i = 0; i < list.size(); i++) {
|
| | | IntegralTaskClassVO taskClassVO = list.get(i);
|
| | |
|
| | | UniqueKeyEnum uniqueKey = taskClassVO.getUniqueKey();
|
| | |
|
| | | // 邀请好友:是否激活邀请码
|
| | | if (uniqueKey == UniqueKeyEnum.inviteTeam) {
|
| | | UserInfoExtraVO extraVO = userInfoExtraService.getInfoExtraVOByUid(uid);
|
| | | if (extraVO == null || StringUtil.isNullOrEmpty(extraVO.getInviteCode())) {
|
| | | JumpDetailV2 jumpDetailV2 = jumpDetailV2Service.getByTypeCache("invite_activate",
|
| | | Constant.getPlatformCode(acceptData.getPlatform()),
|
| | | Integer.parseInt(acceptData.getVersion()));
|
| | | taskClassVO.setJumpDetail(jumpDetailV2);
|
| | | }
|
| | | }
|
| | |
|
| | | String progress = taskClassVO.getProgress();
|
| | | if (StringUtil.isNullOrEmpty(progress))
|
| | | continue;
|
| | |
|
| | | Integer taskNum = taskClassVO.getTaskNum();
|
| | | if (taskNum == null)
|
| | | continue;
|
| | |
|
| | | if (uniqueKey == UniqueKeyEnum.dailySign) {
|
| | | if (signState == 0) {
|
| | | taskClassVO.setLightUp(true); // 签到失败
|
| | | } else if (signState == 1) {
|
| | | taskClassVO.setLightUp(false);
|
| | | } else if (signState == 2) {
|
| | | taskClassVO.setLightUp(false);
|
| | | }
|
| | |
|
| | | // 根据天数变化更改签到金额
|
| | | Integer num = integralTaskRecordService.getNowdaySignNum(uid, taskClassVO.getId());
|
| | |
|
| | | String uniqueKeyTask = UniqueKeyEnum.dailySign.name() + num;
|
| | | IntegralTask integralTask = integralTaskService.getByCidAndUniqueKey(taskClassVO.getId(),
|
| | | uniqueKeyTask);
|
| | | Integer goldCoin = 0;
|
| | | if (integralTask != null) {
|
| | | goldCoin = integralTask.getGoldCoin();
|
| | | Integer baseDoubleNum = integralTask.getDoubleNum();
|
| | | if (baseDoubleNum != null && baseDoubleNum > 0)
|
| | | goldCoin = goldCoin * baseDoubleNum;
|
| | | }
|
| | | taskClassVO.setTotalCoin(goldCoin);
|
| | | } else {
|
| | | taskClassVO.setLightUp(true);
|
| | | }
|
| | |
|
| | | int countFinished = 0;
|
| | | Long id = taskClassVO.getId();
|
| | | // 查询当日
|
| | | Integer totalGoldCoin = integralTaskRecordService.getTotalGoldCoin(uid, id, 1);
|
| | | if (totalGoldCoin != null && totalGoldCoin > 0) {
|
| | | taskClassVO.setFinishedCoin("+" + totalGoldCoin);
|
| | | if (uniqueKey != UniqueKeyEnum.dailySign && uniqueKey != UniqueKeyEnum.accountMaintain) {
|
| | | countFinished = integralTaskRecordService.countFinished(uid, id, 1);
|
| | | }
|
| | | }
|
| | |
|
| | | if (uniqueKey == UniqueKeyEnum.accountMaintain) {
|
| | | countFinished = integralTaskRecordService.countFinished(uid, id, null); // 查询历史
|
| | | }
|
| | |
|
| | | /*
|
| | | * // 完善信息完成后,列表中消失 if (uniqueKey ==
|
| | | * UniqueKeyEnum.accountMaintain && taskNum == countFinished) {
|
| | | * list.remove(i); i --; continue; }
|
| | | */
|
| | |
|
| | | progress = progress.replace("{已完成}", countFinished + "").replace("{总任务}", taskNum + "");
|
| | |
|
| | | if (signState == 0 && uniqueKey == UniqueKeyEnum.dailySign) {
|
| | | progress = "未签到";
|
| | | taskClassVO.setBtnName("签到");
|
| | | }
|
| | | taskClassVO.setProgress(progress);
|
| | | }
|
| | |
|
| | | data.put("count", count);
|
| | |
| | | return;
|
| | | }
|
| | |
|
| | | List<IntegralTaskRecord> list = integralTaskRecordService.listNotReceived(5, uid);
|
| | | int count = Integer.MAX_VALUE;
|
| | |
|
| | | List<IntegralTaskRecord> list = integralTaskRecordService.listNotReceived(count, uid);
|
| | | if (list == null) {
|
| | | list = new ArrayList<IntegralTaskRecord>();
|
| | | }
|
| | |
| | | * @param acceptData
|
| | | * @param uid
|
| | | * @param ids
|
| | | * // 领取id
|
| | | * @param gids
|
| | | * // 未领取id
|
| | | * @param out
|
| | | */
|
| | | @RequestSerializableByKey(key = "'receiveGoldCoin-'+#uid")
|
| | | @RequestMapping(value = "receiveGoldCoin", method = RequestMethod.POST)
|
| | | public void receiveGoldCoin(AcceptData acceptData, Long uid, String ids, PrintWriter out) {
|
| | | public void receiveGoldCoin(AcceptData acceptData, Long uid, Integer type, String ids, String gids,
|
| | | PrintWriter out) {
|
| | | if (uid == null || uid <= 0) {
|
| | | out.print(JsonUtil.loadFalseResult(1, "用户未登录"));
|
| | | return;
|
| | | }
|
| | |
|
| | | Gson gson = new Gson();
|
| | | Set<Long> idList = gson.fromJson(ids, new TypeToken<HashSet<Long>>() {
|
| | | }.getType());
|
| | | if (idList == null || idList.size() == 0) {
|
| | | out.print(JsonUtil.loadFalseResult("领取id不能为空"));
|
| | | return;
|
| | | }
|
| | |
|
| | | try {
|
| | | // 全部领取
|
| | | if (type != null && type == 1) {
|
| | | Integer goldCoin = integralTaskRecordService.receiveGoldCoinALL(uid);
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("goldCoin", goldCoin);
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | | return;
|
| | | }
|
| | |
|
| | | // 部分领取
|
| | | Gson gson = new Gson();
|
| | | Set<Long> idList = gson.fromJson(ids, new TypeToken<HashSet<Long>>() {
|
| | | }.getType());
|
| | | if (idList == null || idList.size() == 0) {
|
| | | out.print(JsonUtil.loadFalseResult("领取id不能为空"));
|
| | | return;
|
| | | }
|
| | | Integer goldCoin = integralTaskRecordService.receiveGoldCoin(uid, idList);
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("goldCoin", goldCoin);
|
| | |
| | |
|
| | | List<IntegralExchange> list = integralExchangeRecordService.listExchange((page - 1) * Constant.PAGE_SIZE,
|
| | | Constant.PAGE_SIZE, uid);
|
| | | if (list == null)
|
| | | list = new ArrayList<IntegralExchange>();
|
| | | |
| | | List<IntegralExchange> listNew = new ArrayList<>();
|
| | | if (list != null)
|
| | | listNew.addAll(list);
|
| | | |
| | | if (VersionUtil.greaterThan_2_0_7(acceptData.getPlatform(), acceptData.getVersion())) {
|
| | | for (int i=0; i < listNew.size(); i ++) {
|
| | | IntegralExchange integralExchange = listNew.get(i);
|
| | | ExchangeTypeEnum type = integralExchange.getType();
|
| | | if (type != null &&
|
| | | (type == ExchangeTypeEnum.inviteCodeActivate || type == ExchangeTypeEnum.inviteCodePublish)) {
|
| | | listNew.remove(i);
|
| | | i--;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | Long count = integralExchangeService.countValid();
|
| | | // Long count = integralExchangeService.countValid();
|
| | |
|
| | | GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
|
| | | Gson gson = gsonBuilder.create();
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("goldCoin", extraVO.getGoldCoin() + "枚");
|
| | | data.put("count", count);
|
| | | data.put("list", gson.toJson(list));
|
| | | data.put("count", listNew.size());
|
| | | data.put("list", gson.toJson(listNew));
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | | }
|
| | |
|
| | | @RequestMapping(value = "getExchangeDetail")
|
| | | public void getExchangeDetail(AcceptData acceptData, Long id, String callback, PrintWriter out) {
|
| | | if (id == null || id <= 0) {
|
| | | out.print(JsonUtil.loadFalseResult(1, "兑换ID有误"));
|
| | | return;
|
| | | }
|
| | | IntegralExchange exchange = integralExchangeService.selectByPrimaryKey(id);
|
| | | if (exchange != null) {
|
| | | GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
|
| | | Gson gson = gsonBuilder.create();
|
| | | if (StringUtil.isNullOrEmpty(callback))
|
| | | out.print(JsonUtil.loadTrueResult(gson.toJson(exchange)));
|
| | | else
|
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(gson.toJson(exchange))));
|
| | | } else {
|
| | | if (StringUtil.isNullOrEmpty(callback))
|
| | | out.print(JsonUtil.loadFalseResult("未找到"));
|
| | | else
|
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("未找到")));
|
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | |
| | | * @param id
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "verifyExchange", method = RequestMethod.POST)
|
| | | public void verifyExchange(AcceptData acceptData, Long uid, Long id, PrintWriter out) {
|
| | | @RequestMapping(value = "verifyExchange")
|
| | | public void verifyExchange(AcceptData acceptData, Long uid, Long id, String callback, PrintWriter out) {
|
| | | try {
|
| | | ExchangeTipVO exchange = integralExchangeService.verifyExchange(uid, id);
|
| | |
|
| | | GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
|
| | | Gson gson = gsonBuilder.create();
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("result", gson.toJson(exchange));
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | | if (StringUtil.isNullOrEmpty(callback)) {
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | | } else {
|
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
|
| | | }
|
| | | } catch (IntegralExchangeException e) {
|
| | | out.print(JsonUtil.loadFalseResult(1, e.getMsg()));
|
| | | if (StringUtil.isNullOrEmpty(callback)) {
|
| | | out.print(JsonUtil.loadFalseResult(1, e.getMsg()));
|
| | | } else {
|
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult(1, e.getMsg())));
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | * @param id
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "exchange", method = RequestMethod.POST)
|
| | | public void exchange(AcceptData acceptData, Long uid, Long id, PrintWriter out) {
|
| | | @RequestSerializableByKey(key = "'integralexchange-'+#uid")
|
| | | @RequestMapping(value = "exchange")
|
| | | public void exchange(AcceptData acceptData, Long uid, Long id, String callback, PrintWriter out) {
|
| | | try {
|
| | | IntegralExchange exchange = integralExchangeService.exchange(uid, id);
|
| | |
|
| | | UserInfoExtra extraVO = userInfoExtraService.getUserInfoExtra(uid);
|
| | |
|
| | | GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
|
| | | Gson gson = gsonBuilder.create();
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("result", gson.toJson(exchange));
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | | data.put("goldCoin", extraVO.getGoldCoin() + "枚");
|
| | | if (StringUtil.isNullOrEmpty(callback))
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | | else
|
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
|
| | | } catch (IntegralExchangeException e) {
|
| | | out.print(JsonUtil.loadFalseResult(1, e.getMsg()));
|
| | | if (StringUtil.isNullOrEmpty(callback))
|
| | | out.print(JsonUtil.loadFalseResult(1, e.getMsg()));
|
| | | else
|
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult(1, e.getMsg())));
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | * @param id
|
| | | * @param out
|
| | | */
|
| | | @RequestSerializableByKey(key = "'exchangeInviteCode-'+#uid")
|
| | | @RequestMapping(value = "exchangeInviteCode", method = RequestMethod.POST)
|
| | | public void exchangeInviteCode(AcceptData acceptData, Long uid, Long id, PrintWriter out) {
|
| | | try {
|
| | | integralExchangeService.exchangeInviteCode(uid, id);
|
| | | out.print(JsonUtil.loadTrueResult("邀请码激活成功"));
|
| | | String inviteCode = integralExchangeService.exchangeInviteCode(uid, id);
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("msg", "兑换成功,金币已消耗 ");
|
| | | data.put("inviteCode", inviteCode);
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | | } catch (IntegralExchangeException e) {
|
| | | out.print(JsonUtil.loadFalseResult(1, e.getMsg()));
|
| | | }
|
| | |
| | | return;
|
| | | }
|
| | |
|
| | | List<CodePublishRecord> list = codePublishRecordService.listValid((page - 1) * Constant.PAGE_SIZE,
|
| | | Constant.PAGE_SIZE);
|
| | | if (list == null) {
|
| | | list = new ArrayList<CodePublishRecord>();
|
| | | try {
|
| | | List<CodePublishRecord> list = codePublishRecordService.listValid(null, (page - 1) * Constant.PAGE_SIZE,
|
| | | Constant.PAGE_SIZE);
|
| | | if (list == null) {
|
| | | list = new ArrayList<CodePublishRecord>();
|
| | | }
|
| | |
|
| | | long count = codePublishRecordService.countValid();
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("count", count);
|
| | | data.put("list", getGson().toJson(list));
|
| | | data.put("helpLink", configService.get(ConfigKeyEnum.publishListHelpLink.getKey()));
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | | } catch (Exception e) {
|
| | | out.print(JsonUtil.loadFalseResult(1, "获取失败"));
|
| | | return;
|
| | | }
|
| | |
|
| | | long count = codePublishRecordService.countValid();
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("count", count);
|
| | | data.put("list", getGson().toJson(list));
|
| | | data.put("helpLink", configService.get("publish_list_help_link"));
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | | }
|
| | |
|
| | | /**
|
| | |
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "pushEvent", method = RequestMethod.POST)
|
| | | public void pushEvent(AcceptData acceptData, String event, Long uid, PrintWriter out) {
|
| | | public void pushEvent(AcceptData acceptData, String event, Long uid, String data, PrintWriter out) {
|
| | | if (uid == null || uid == 0) {
|
| | | out.print(JsonUtil.loadFalseResult("用户尚未登录"));
|
| | | return;
|
| | | }
|
| | |
|
| | | if (StringUtil.isNullOrEmpty(event)) {
|
| | | out.print(JsonUtil.loadFalseResult("事件为空"));
|
| | | return;
|
| | | }
|
| | | IntegralTaskRecord record = null;
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | if ("recommendSearch".equalsIgnoreCase(event) || "scanGoods".equalsIgnoreCase(event)
|
| | | || "scanTBCart".equalsIgnoreCase(event)) {
|
| | | JSONObject notify = new JSONObject();
|
| | | switch (event) {
|
| | | case "recommendSearch":
|
| | | notify.put("name", "完成一次智能搜索");
|
| | | notify.put("score", "+20");
|
| | | break;
|
| | | case "scanGoods":
|
| | | notify.put("name", "完成一次商品浏览");
|
| | | notify.put("score", "+10");
|
| | | break;
|
| | | case "scanTBCart":
|
| | | notify.put("name", "完成一次购物车浏览");
|
| | | notify.put("score", "+30");
|
| | | break;
|
| | | try {
|
| | | if (TaskUniqueKeyEnum.recommendSearch.name().equalsIgnoreCase(event)) {
|
| | | record = integralGetService.addRecommendSearch(uid);
|
| | | } else if (TaskUniqueKeyEnum.shareInvite.name().equalsIgnoreCase(event)) {
|
| | | record = integralGetService.addShareInvite(uid);
|
| | | } else if (TaskUniqueKeyEnum.inShop.name().equalsIgnoreCase(event)) {
|
| | | JSONObject json = JSONObject.fromObject(data);
|
| | | record = integralGetService.addIntoShop(uid, StringUtil.Md5(json.optString("url")));
|
| | | } else if (TaskUniqueKeyEnum.scanPush.name().equalsIgnoreCase(event)) {
|
| | | record = integralGetService.addScanPushHistory(uid);
|
| | | } else if (TaskUniqueKeyEnum.scanGoods.name().equalsIgnoreCase(event)) {
|
| | | JSONObject json = JSONObject.fromObject(data);
|
| | | record = integralGetService.addScanGoodsDetail(uid, json.optInt("goodsType"), json.optLong("goodsId"));
|
| | | } else if (TaskUniqueKeyEnum.scanHomeBanner.name().equalsIgnoreCase(event)) {
|
| | | JSONObject json = JSONObject.fromObject(data);
|
| | | record = integralGetService.addScanRecommendBanner(uid, json.optString("id"));
|
| | | } else if (TaskUniqueKeyEnum.scanSpecial.name().equalsIgnoreCase(event)) {
|
| | | JSONObject json = JSONObject.fromObject(data);
|
| | | record = integralGetService.addScanRecommendSpecial(uid, json.optString("id"));
|
| | | } else if (TaskUniqueKeyEnum.scanTBCart.name().equalsIgnoreCase(event)) {
|
| | | record = integralGetService.addScanTaoBaoCart(uid);
|
| | | }
|
| | |
|
| | | data.put("notify", notify);
|
| | | if (record != null) {
|
| | | JSONObject notifyData = new JSONObject();
|
| | | if (TaskUniqueKeyEnum.recommendSearch.name().equalsIgnoreCase(event)
|
| | | || TaskUniqueKeyEnum.scanGoods.name().equalsIgnoreCase(event)
|
| | | || TaskUniqueKeyEnum.scanTBCart.name().equalsIgnoreCase(event)) {
|
| | | JSONObject notify = new JSONObject();
|
| | | if (TaskUniqueKeyEnum.recommendSearch.name().equalsIgnoreCase(event))
|
| | | notify.put("name", "完成一次智能搜索");
|
| | | else if (TaskUniqueKeyEnum.scanGoods.name().equalsIgnoreCase(event))
|
| | | notify.put("name", "完成一次商品浏览");
|
| | | else if (TaskUniqueKeyEnum.scanTBCart.name().equalsIgnoreCase(event))
|
| | | notify.put("name", "完成一次购物车浏览");
|
| | |
|
| | | notify.put("score", String.format("+%s金币", record.getGoldCoin()));
|
| | | notifyData.put("notify", notify);
|
| | | }
|
| | | out.print(JsonUtil.loadTrueResult(notifyData));
|
| | | } else {
|
| | | out.print(JsonUtil.loadFalseResult(""));
|
| | | }
|
| | | } catch (Exception e) {
|
| | | out.print(JsonUtil.loadFalseResult(""));
|
| | | }
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | | }
|
| | |
|
| | | /**
|
| | |
| | | return gson;
|
| | | }
|
| | |
|
| | | /**
|
| | | * 明细详情
|
| | | * |
| | | * @param acceptData
|
| | | * @param uid
|
| | | * @param index
|
| | | * List最末的主键ID
|
| | | * @param year
|
| | | * 年份
|
| | | * @param month
|
| | | * 月份
|
| | | * @param type
|
| | | * 统计类型 0全部 1
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "getDetails")
|
| | | public void getDetails(AcceptData acceptData, Long uid, Long index, Integer year, Integer month, Integer type,
|
| | | PrintWriter out) {
|
| | | if (uid == null || uid == 0) {
|
| | | out.print(JsonUtil.loadFalseResult(1, "用户未登录"));
|
| | | return;
|
| | | }
|
| | |
|
| | | if ((year == null && month != null) || (year != null && month == null)) {
|
| | | out.print(JsonUtil.loadFalseResult(1, "日期不完整"));
|
| | | return;
|
| | | }
|
| | |
|
| | | Date date = null;
|
| | |
|
| | | if (year != null && month != null) {
|
| | | date = new Date(TimeUtil.convertToTimeTemp(year + "-" + month, "yyyy-M"));
|
| | | Calendar ca = Calendar.getInstance();
|
| | | ca.setTime(date);
|
| | | ca.add(Calendar.MONTH, 1);
|
| | | date = new Date(ca.getTimeInMillis() - 1);
|
| | | }
|
| | |
|
| | | // 查询列表
|
| | | List<IntegralDetailVO> list = integralDetailService.listDetailForClient(uid, index, date, type);
|
| | | // 统计总条数
|
| | | long count = integralDetailService.countDetailForClient(uid, index, date, type);
|
| | |
|
| | | GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
|
| | | gsonBuilder.registerTypeAdapter(TaoLiJinDetailTypeEnum.class, new TypeAdapter<TaoLiJinDetailTypeEnum>() {
|
| | | @Override
|
| | | public TaoLiJinDetailTypeEnum read(JsonReader arg0) throws IOException {
|
| | | return null;
|
| | | }
|
| | |
|
| | | @Override
|
| | | public void write(JsonWriter out, TaoLiJinDetailTypeEnum arg1) throws IOException {
|
| | | out.beginObject();
|
| | | out.name("portrait").value(arg1.getPicture());
|
| | | out.endObject();
|
| | | }
|
| | | }).registerTypeAdapter(Date.class, new JsonSerializer<Date>() {
|
| | | @Override
|
| | | public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) {
|
| | | if (value == null) {
|
| | | return new JsonPrimitive("");
|
| | | } else {
|
| | | return new JsonPrimitive(TimeUtil.getGernalTime(value.getTime(), "yyyy.MM.dd HH:mm"));
|
| | | }
|
| | | }
|
| | | });
|
| | |
|
| | | Gson gson = gsonBuilder.create();
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("count", count);
|
| | | data.put("data", gson.toJson(list));
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | | }
|
| | | }
|