package com.yeshi.fanli.controller.client.lijin;
|
|
import com.google.gson.*;
|
import com.ks.vip.exception.LijinBalanceException;
|
import com.ks.vip.pojo.DO.UserLijinRecord;
|
import com.yeshi.fanli.entity.SystemEnum;
|
import com.yeshi.fanli.entity.accept.AcceptData;
|
import com.yeshi.fanli.entity.system.ConfigKeyEnum;
|
import com.yeshi.fanli.lijin.dto.LijinSendInfo;
|
import com.yeshi.fanli.lijin.manager.UserLijinMnager;
|
import com.yeshi.fanli.lijin.manager.UserLijinSendManager;
|
import com.yeshi.fanli.lijin.vo.LijinRecordVO;
|
import com.yeshi.fanli.service.inter.config.ConfigService;
|
import com.yeshi.fanli.util.Constant;
|
import net.sf.json.JSONObject;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.yeshi.utils.JsonUtil;
|
import org.yeshi.utils.TimeUtil;
|
|
import javax.annotation.Resource;
|
import java.io.PrintWriter;
|
import java.lang.reflect.Type;
|
import java.math.BigDecimal;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
@Controller
|
@RequestMapping("api/v2/lijin/hongbao")
|
public class LijinHongBaoController {
|
|
@Resource
|
private UserLijinMnager userLijinMnager;
|
|
@Resource
|
private UserLijinSendManager userLijinSendManager;
|
|
@Resource
|
private ConfigService configService;
|
|
|
/**
|
* 获取红包
|
*
|
* @param acceptData
|
* @param uid
|
* @param out
|
*/
|
@RequestMapping("getSendingHongBao")
|
public void getSendingHongBao(AcceptData acceptData, Long uid, PrintWriter out) {
|
LijinSendInfo lijinSendInfo = userLijinSendManager.getSendingLijinInfo(acceptData.getSystem(), acceptData.getDevice(), uid);
|
if (lijinSendInfo == null) {
|
// 暂时不发礼金了
|
// userLijinSendManager.sendLijin(acceptData.getSystem(), acceptData.getDevice(), uid, new BigDecimal(10));
|
// lijinSendInfo = userLijinSendManager.getSendingLijinInfo(acceptData.getSystem(), acceptData.getDevice(), uid);
|
}
|
|
//是否需要显示弹框
|
String value = configService.getValue(ConfigKeyEnum.lijinSendNotify, acceptData.getSystem());
|
if (!"1".equalsIgnoreCase(value)) {
|
lijinSendInfo = null;
|
}
|
|
if (lijinSendInfo == null) {
|
out.print(JsonUtil.loadFalseResult("无红包"));
|
return;
|
}
|
|
//填充notify的值
|
lijinSendInfo.setNotifyTitle("领取" + lijinSendInfo.getName());
|
lijinSendInfo.setNotifySubtitle("限时福利,最低66.66元起");
|
|
|
Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().registerTypeAdapter(Date.class, new JsonSerializer<Date>() {
|
|
@Override
|
public JsonElement serialize(Date src, Type typeOfSrc, JsonSerializationContext context) {
|
return src == null ? new JsonPrimitive(0) : new JsonPrimitive(src.getTime());
|
}
|
}).create();
|
out.print(JsonUtil.loadTrueResult(gson.toJson(lijinSendInfo)));
|
}
|
|
|
/**
|
* 获取红包余额
|
*
|
* @param acceptData
|
* @param uid
|
* @param out
|
*/
|
@RequestMapping("getHongBaoBalance")
|
public void getHongBaoBalance(AcceptData acceptData, Long uid, PrintWriter out) {
|
BigDecimal balance = userLijinMnager.getLijinBalance(uid);
|
if (balance == null)
|
balance = new BigDecimal(0);
|
BigDecimal using = userLijinMnager.getUsingLijin(uid);
|
if (using == null)
|
using = new BigDecimal(0);
|
|
String recordLink = configService.getValue(ConfigKeyEnum.lijinRecordLink, acceptData.getSystem());
|
String ruleLink = configService.getValue(ConfigKeyEnum.lijinRuleLink, acceptData.getSystem());
|
String courseLink = configService.getValue(ConfigKeyEnum.lijinCourseLink, acceptData.getSystem());
|
JSONObject data = new JSONObject();
|
data.put("balance", balance);
|
data.put("using", using);
|
data.put("recordLink", recordLink);
|
data.put("ruleLink", ruleLink);
|
data.put("courseLink", courseLink);
|
out.print(JsonUtil.loadTrueResult(data));
|
}
|
|
|
/**
|
* 获取红包记录
|
*
|
* @param acceptData
|
* @param uid
|
* @param out
|
*/
|
@RequestMapping("getHongBaoRecordList")
|
public void getHongBaoRecordList(AcceptData acceptData, Long uid, Integer type, int page, PrintWriter out) {
|
List<UserLijinRecord> recordList = userLijinMnager.getLijinRecord(uid, type, page, Constant.PAGE_SIZE);
|
List<LijinRecordVO> voList = new ArrayList<>();
|
for (UserLijinRecord record : recordList) {
|
LijinRecordVO vo = new LijinRecordVO();
|
vo.setCreateTime(record.getCreateTime());
|
vo.setMoney(record.getMoney());
|
vo.setTitle(record.getTitle());
|
vo.setType(record.getType());
|
voList.add(vo);
|
}
|
|
Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, new JsonSerializer<Date>() {
|
@Override
|
public JsonElement serialize(Date src, Type typeOfSrc, JsonSerializationContext context) {
|
return src == null ? new JsonPrimitive("") : new JsonPrimitive(TimeUtil.getGernalTime(src.getTime(), "yyyy.MM.dd HH:mm:ss"));
|
}
|
}).create();
|
|
long count = userLijinMnager.countLijinRecord(uid, type);
|
JSONObject data = new JSONObject();
|
data.put("count", count);
|
data.put("list", gson.toJson(voList));
|
out.print(JsonUtil.loadTrueResult(data));
|
}
|
|
|
@RequestMapping("recieveHongBao")
|
public void recieveHongBao(AcceptData acceptData, Long uid, String id, PrintWriter out) {
|
try {
|
userLijinSendManager.initBalance(uid);
|
LijinSendInfo lijinSendInfo = userLijinSendManager.recieveLijin(id, uid);
|
JSONObject data = new JSONObject();
|
data.put("url", configService.getValue(ConfigKeyEnum.lijinRecievedSuccessLink, acceptData.getSystem()).replace("{name}", lijinSendInfo.getName()).replace("{money}", lijinSendInfo.getMoney() + ""));
|
out.print(JsonUtil.loadTrueResult(data));
|
return;
|
} catch (LijinBalanceException e) {
|
if (e.getCode() == LijinBalanceException.CODE_NOT_INIT) {
|
out.print(JsonUtil.loadFalseResult("领取失败,请稍后重试"));
|
userLijinMnager.initBalance(uid);
|
} else {
|
out.print(JsonUtil.loadFalseResult(e.getMessage()));
|
}
|
} catch (Exception e) {
|
out.print(JsonUtil.loadFalseResult(e.getMessage()));
|
}
|
}
|
|
|
}
|