package com.yeshi.buwan.controller.api;
|
|
import com.google.common.base.Function;
|
import com.google.common.collect.Maps;
|
import com.google.gson.Gson;
|
import com.ks.goldcorn.exception.GoldAppException;
|
import com.ks.goldcorn.exception.GoldTradeException;
|
import com.ks.goldcorn.exception.GoldUserException;
|
import com.ks.goldcorn.pojo.DO.GoldCornGetSource;
|
import com.ks.goldcorn.pojo.DO.GoldCornRecord;
|
import com.ks.goldcorn.pojo.DO.GoldCornRecordCountMap;
|
import com.ks.goldcorn.pojo.Query.GoldCornRecordQuery;
|
import com.yeshi.buwan.domain.goldcorn.CodeCornGetSourceType;
|
import com.yeshi.buwan.domain.goldcorn.GoldCornTaskActionDetail;
|
import com.yeshi.buwan.domain.jump.JumpDetail;
|
import com.yeshi.buwan.domain.jump.JumpTypeEnum;
|
import com.yeshi.buwan.dto.goldcorn.SignInGoldCornDateData;
|
import com.yeshi.buwan.service.inter.goldcorn.GoldCornTaskActionDetailService;
|
import com.yeshi.buwan.service.inter.goldcorn.SignInService;
|
import com.yeshi.buwan.service.inter.system.SystemConfigService;
|
import com.yeshi.buwan.service.manager.GoldCornManager;
|
import com.yeshi.buwan.util.Constant;
|
import com.yeshi.buwan.util.JsonUtil;
|
import com.yeshi.buwan.util.StringUtil;
|
import com.yeshi.buwan.util.TimeUtil;
|
import com.yeshi.buwan.vo.AcceptData;
|
import com.yeshi.buwan.vo.goldcorn.GoldCornCouponVideoVO;
|
import com.yeshi.buwan.vo.goldcorn.GoldCornRecordVO;
|
import com.yeshi.buwan.vo.goldcorn.GoldCornTaskVO;
|
import com.yeshi.buwan.vo.goldcorn.SignInInfoVO;
|
import net.sf.json.JSONObject;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
import javax.annotation.Resource;
|
import java.util.*;
|
|
@Controller
|
@RequestMapping("api/v2/goldcorn")
|
public class GoldCornController {
|
|
Logger logger = LoggerFactory.getLogger(GoldCornController.class);
|
|
|
@Resource
|
private GoldCornManager goldCornManager;
|
|
@Resource
|
private SignInService signInService;
|
|
@Resource
|
private SystemConfigService systemConfigService;
|
|
@Resource
|
private GoldCornTaskActionDetailService goldCornTaskActionDetailService;
|
|
|
/**
|
* 挣金币
|
*
|
* @param acceptData
|
* @param code
|
* @param loginUid
|
* @param param1
|
* @param param2
|
* @return
|
*/
|
@RequestMapping("makeGoldCorn")
|
@ResponseBody
|
public String makeGoldCorn(AcceptData acceptData, String code, String loginUid, String param1, String param2) {
|
JSONObject jsonObject = new JSONObject();
|
jsonObject.put("goldCorn", 1);
|
return JsonUtil.loadTrueJson(jsonObject.toString());
|
}
|
|
@RequestMapping("signIn")
|
@ResponseBody
|
public String signIn(AcceptData acceptData, String loginUid) {
|
try {
|
GoldCornGetSource source = goldCornManager.getGoldCornGetSource(CodeCornGetSourceType.signIn);
|
goldCornManager.addGoldCorn(loginUid, CodeCornGetSourceType.signIn, null, "签到", null);
|
JSONObject jsonObject = new JSONObject();
|
jsonObject.put("goldCorn", source.getGoldCorn());
|
return JsonUtil.loadTrueJson(jsonObject.toString());
|
} catch (GoldUserException e) {
|
return JsonUtil.loadFalseJson(e.getMessage());
|
} catch (GoldAppException e) {
|
return JsonUtil.loadFalseJson(e.getMessage());
|
} catch (GoldTradeException e) {
|
return JsonUtil.loadFalseJson(e.getMessage());
|
} catch (Exception e) {
|
return JsonUtil.loadFalseJson("签到失败");
|
}
|
}
|
|
@RequestMapping("getSignInData")
|
@ResponseBody
|
public String getSignInData(AcceptData acceptData, String loginUid) {
|
try {
|
SignInInfoVO signInInfo = new SignInInfoVO();
|
List<SignInGoldCornDateData> recordList = signInService.getContinueSignInList(loginUid);
|
signInInfo.setDateList(recordList);
|
signInInfo.setSignDay(signInService.getContinueSignDayCount(loginUid));
|
signInInfo.setBalance((int) goldCornManager.getBalance(loginUid));
|
SignInInfoVO.SignInConfig config = new SignInInfoVO.SignInConfig();
|
config.setRecordUrl(systemConfigService.getConfigValueByKeyCache("goldCornRecordUrl"));
|
config.setRuleUrl(systemConfigService.getConfigValueByKeyCache("goldCornRuleUrl"));
|
signInInfo.setSignInConfig(config);
|
signInInfo.setCanSignIn(!signInService.isTodaySignIned(loginUid, new Date()));
|
return JsonUtil.loadTrueJson(new Gson().toJson(signInInfo));
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return JsonUtil.loadFalseJson("服务器内部错误");
|
}
|
|
|
/**
|
* 获取金币记录
|
*
|
* @param acceptData
|
* @param loginUid
|
* @param page
|
* @return
|
*/
|
@RequestMapping("getRecordList")
|
@ResponseBody
|
public String getRecordList(AcceptData acceptData, String loginUid, int page) {
|
GoldCornRecordQuery recordQuery = new GoldCornRecordQuery();
|
recordQuery.setPageSize(Constant.pageCount);
|
recordQuery.setPage(page);
|
try {
|
List<GoldCornRecord> list = goldCornManager.getRecordList(recordQuery, loginUid);
|
List<GoldCornRecordVO> voList = new ArrayList<>();
|
for (GoldCornRecord record : list) {
|
voList.add(new GoldCornRecordVO(record.getTitle(), TimeUtil.getGernalTime(record.getCreateTime().getTime(), "yyyy.MM.dd HH:mm"), record.getType() == GoldCornRecord.TYPE_CONSUME ? 0 - record.getGoldCorn() : record.getGoldCorn()));
|
}
|
long count = goldCornManager.getRecordCount(recordQuery, loginUid);
|
JSONObject data = new JSONObject();
|
data.put("list", new Gson().toJson(voList));
|
data.put("count", count);
|
return JsonUtil.loadTrueJson(data.toString());
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return JsonUtil.loadFalseJson("服务器内部错误");
|
}
|
|
@RequestMapping("getCouponVideoList")
|
@ResponseBody
|
public String getCouponVideoList(AcceptData acceptData) {
|
List<GoldCornCouponVideoVO> voList = new ArrayList<>();
|
JumpDetail jumpDetail = new JumpDetail();
|
jumpDetail.setType(JumpTypeEnum.web);
|
|
JSONObject params = new JSONObject();
|
params.put("url", "https://www.baidu.com");
|
|
voList.add(new GoldCornCouponVideoVO("https://r1.ykimg.com/058400005FA60E6A14187C0791817503?x-oss-process=image/resize,w_290/interlace,1/quality,Q_80", jumpDetail, params.toString().replace("\"", "\\" + "\"")));
|
voList.add(new GoldCornCouponVideoVO("https://r1.ykimg.com/058400005F2BA59B6AEB660E907A2B99?x-oss-process=image/resize,w_290/interlace,1/quality,Q_80", jumpDetail, params.toString().replace("\"", "\\" + "\"")));
|
voList.add(new GoldCornCouponVideoVO("https://r1.ykimg.com/052700005DC9247B1B769182B50A8C21?x-oss-process=image/resize,w_290/interlace,1/quality,Q_80", jumpDetail, params.toString().replace("\"", "\\" + "\"")));
|
// if (voList.size() < 3)
|
voList.clear();
|
JSONObject data = new JSONObject();
|
data.put("list", new Gson().toJson(voList));
|
data.put("count", voList.size());
|
data.put("exchangeUrl", "http://www.baidu.com");
|
return JsonUtil.loadTrueJson(data.toString());
|
}
|
|
@RequestMapping("getTaskList")
|
@ResponseBody
|
public String getTaskList(AcceptData acceptData, String loginUid) {
|
List<GoldCornTaskVO> voList = new ArrayList<>();
|
try {
|
//登录
|
List<GoldCornGetSource> list = goldCornManager.listGetCornSource(1, 20);
|
|
List<String> sourceCodes = new ArrayList<>();
|
for (GoldCornGetSource source : list) {
|
sourceCodes.add(source.getSourceCode());
|
}
|
|
List<GoldCornTaskActionDetail> details = goldCornTaskActionDetailService.list(sourceCodes);
|
Map<String, GoldCornTaskActionDetail> detailMap = Maps.uniqueIndex(details.iterator(), new Function<GoldCornTaskActionDetail, String>() {
|
@Override
|
public String apply(GoldCornTaskActionDetail detail) {
|
return detail.getSourceCode();
|
}
|
});
|
|
|
//加载已完成数据
|
|
Date maxCreateTime = new Date();
|
Date minCreateTime = new Date(TimeUtil.convertGernalTime(TimeUtil.getGernalTime(maxCreateTime.getTime(), "yyyyMMdd"), "yyyyMMdd"));
|
|
List<GoldCornRecordCountMap> mapList = goldCornManager.countRecordByGetSource(loginUid, sourceCodes, minCreateTime, maxCreateTime);
|
Map<String, GoldCornRecordCountMap> map = new HashMap<>();
|
if (mapList != null)
|
for (GoldCornRecordCountMap m : mapList) {
|
map.put(m.getSourceCode(), m);
|
}
|
String[] hiddens = new String[]{CodeCornGetSourceType.elme.name(), CodeCornGetSourceType.meituan.name()};
|
List<String> hiddenList = Arrays.asList(hiddens);
|
for (GoldCornGetSource source : list) {
|
|
GoldCornTaskVO vo = GoldCornTaskVO.create(source);
|
//详细的信息
|
GoldCornTaskActionDetail detail = detailMap.get(source.getSourceCode());
|
if (detail != null) {
|
vo.setJumpDetail(detail.getJumpDetail());
|
vo.setParams(detail.getParams());
|
vo.setActionName(detail.getActionName());
|
}
|
|
if (!hiddenList.contains(source.getSourceCode())) {
|
if (map.get(source.getSourceCode()) == null) {
|
source.setSourceDesc(String.format("今日已完成%s/%s", 0, source.getMaxDayCount()));
|
} else {
|
vo.setEnable(map.get(source.getSourceCode()).getCount() < source.getMaxDayCount());
|
source.setSourceDesc(String.format("今日已完成%s/%s", map.get(source.getSourceCode()).getCount(), source.getMaxDayCount()));
|
}
|
} else {
|
vo.setGoldCorn("实付款*" + source.getGoldCorn());
|
}
|
|
voList.add(vo);
|
}
|
|
|
} catch (Exception e) {
|
|
}
|
|
JSONObject data = new JSONObject();
|
data.put("list", new Gson().toJson(voList));
|
data.put("count", voList.size());
|
return JsonUtil.loadTrueJson(data.toString());
|
}
|
|
|
}
|