package com.yeshi.fanli.controller.client;
|
|
import java.io.IOException;
|
import java.io.PrintWriter;
|
import java.lang.reflect.Type;
|
import java.math.BigDecimal;
|
import java.util.Calendar;
|
import java.util.Date;
|
import java.util.List;
|
|
import javax.annotation.Resource;
|
|
import org.springframework.stereotype.Controller;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.yeshi.utils.JsonUtil;
|
|
import com.google.gson.Gson;
|
import com.google.gson.GsonBuilder;
|
import com.google.gson.JsonElement;
|
import com.google.gson.JsonPrimitive;
|
import com.google.gson.JsonSerializationContext;
|
import com.google.gson.JsonSerializer;
|
import com.google.gson.TypeAdapter;
|
import com.google.gson.stream.JsonReader;
|
import com.google.gson.stream.JsonWriter;
|
import com.yeshi.fanli.entity.accept.AcceptData;
|
import com.yeshi.fanli.entity.money.UserMoneyDetail;
|
import com.yeshi.fanli.entity.money.UserMoneyDetail.UserMoneyDetailTypeEnum;
|
import com.yeshi.fanli.service.inter.user.UserMoneyDetailService;
|
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
|
import com.yeshi.fanli.util.StringUtil;
|
import com.yeshi.fanli.util.TimeUtil;
|
import com.yeshi.fanli.vo.money.UserMoneyDetailHistoryVO;
|
import com.yeshi.fanli.vo.money.UserMoneyStatisticVO;
|
|
import net.sf.json.JSONObject;
|
|
/**
|
* 账户系统
|
*
|
* @author Administrator
|
*
|
*/
|
@Controller
|
@RequestMapping("api/v1/usermoney")
|
public class UserMoneyController {
|
|
@Resource
|
private UserMoneyDetailService userMoneyDetailService;
|
|
/**
|
* 新版资金详情(1.4.9)
|
*
|
* @param acceptData
|
* @param uid
|
* @param index
|
* List最末的主键ID
|
* @param year
|
* 年份
|
* @param month
|
* 月份
|
* @param out
|
*/
|
@RequestMapping(value = "getUserMoneyDetailList")
|
public void getUserMoneyDetailList(AcceptData acceptData, Long uid, Long index, Integer year, Integer month,
|
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<UserMoneyDetailHistoryVO> list = userMoneyDetailService.listUserMoneyDetailForClient(uid, index, date);
|
long count = userMoneyDetailService.countUserMoneyDetailForClient(uid, index, date);
|
GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
|
gsonBuilder.registerTypeAdapter(UserMoneyDetailTypeEnum.class, new TypeAdapter<UserMoneyDetailTypeEnum>() {
|
@Override
|
public UserMoneyDetailTypeEnum read(JsonReader arg0) throws IOException {
|
return null;
|
}
|
|
@Override
|
public void write(JsonWriter out, UserMoneyDetailTypeEnum arg1) throws IOException {
|
out.beginObject();
|
out.name("portrait").value(arg1.getPicture());
|
if (!StringUtil.isNullOrEmpty(arg1.getHelpUrl()))
|
out.name("helpUrl").value(arg1.getHelpUrl());
|
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"));
|
}
|
}
|
}).registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() {
|
@Override
|
public JsonElement serialize(BigDecimal value, Type theType, JsonSerializationContext context) {
|
if (value == null) {
|
return new JsonPrimitive("");
|
} else {
|
return new JsonPrimitive(MoneyBigDecimalUtil.getWithNoZera(value).toString());
|
}
|
}
|
});
|
|
Gson gson = gsonBuilder.create();
|
|
JSONObject data = new JSONObject();
|
data.put("data", gson.toJson(list));
|
data.put("count", count);
|
out.print(JsonUtil.loadTrueResult(data));
|
}
|
|
@RequestMapping(value = "getUserMoneyStatistic")
|
public void getUserMoneyStatistic(AcceptData acceptData, Long uid, PrintWriter out) {
|
if (uid == null || uid == 0) {
|
out.print(JsonUtil.loadFalseResult(1, "用户未登录"));
|
return;
|
}
|
UserMoneyStatisticVO vo = new UserMoneyStatisticVO();
|
vo.setBalanceMoney(new BigDecimal("0.02"));
|
vo.setLastMonthExtractMoney(new BigDecimal("0.03"));
|
vo.setLastMonthRecievedMoney(new BigDecimal("0.04"));
|
vo.setLatestThreeMonthRecievedMoney(new BigDecimal("0.05"));
|
vo.setMonthExtractMoney(new BigDecimal("0.06"));
|
vo.setMonthRecievedMoney(new BigDecimal("0.07"));
|
vo.setTotalInviteMoney(new BigDecimal("0.08"));
|
vo.setTotalRecievedMoney(new BigDecimal("0.09"));
|
vo.setTotalShareMoney(new BigDecimal("0.10"));
|
Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create();
|
out.print(JsonUtil.loadTrueResult(gson.toJson(vo)));
|
}
|
|
}
|