package com.yeshi.fanli.controller.admin;
|
|
import java.io.PrintWriter;
|
import java.util.List;
|
import java.util.Map;
|
|
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.yeshi.fanli.controller.admin.utils.AdminUtils;
|
import com.yeshi.fanli.dto.ChartTDO;
|
import com.yeshi.fanli.entity.bus.user.UserSystemCouponGiveRecord;
|
import com.yeshi.fanli.service.inter.count.UserSystemCouponCountService;
|
import com.yeshi.fanli.service.inter.user.UserSystemCouponGiveRecordService;
|
import com.yeshi.fanli.tag.PageEntity;
|
import com.yeshi.fanli.util.Constant;
|
import com.yeshi.fanli.util.StringUtil;
|
import com.yeshi.fanli.vo.user.SystemCouponVO;
|
import com.yeshi.fanli.vo.user.UserSystemCouponCountVO;
|
|
import net.sf.json.JSONArray;
|
import net.sf.json.JSONObject;
|
|
@Controller
|
@RequestMapping("admin/new/api/v1/userCoupon")
|
public class UserSystemCouponAdminController {
|
|
@Resource
|
private UserSystemCouponCountService userSystemCouponCountService;
|
|
@Resource
|
private UserSystemCouponGiveRecordService userSystemCouponGiveRecordService;
|
|
/**
|
* 用户奖励券列表
|
*
|
* @param callback
|
* @param pageIndex
|
* @param pageSize
|
* @param key
|
* @param keyType 1-用户id、 2来源
|
* @param state
|
* @param percent
|
* @param out
|
*/
|
@RequestMapping(value = "listRebateCoupon")
|
public void listRebateCoupon(String callback, Integer pageIndex, Integer pageSize, String key, Integer keyType,
|
Integer state, Integer percent, PrintWriter out) {
|
|
if (pageIndex == null || pageIndex < 1) {
|
pageIndex = 1;
|
}
|
|
if (pageSize == null || pageSize < 1) {
|
pageSize = Constant.PAGE_SIZE;
|
}
|
|
try {
|
List<UserSystemCouponCountVO> list = userSystemCouponCountService
|
.listRebateCoupon((pageIndex - 1) * pageSize, pageSize, key, keyType, state, percent);
|
|
if (list == null || list.size() == 0) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无数据"));
|
return;
|
}
|
|
long count = userSystemCouponCountService.countRebateCoupon(key, keyType, state, percent);
|
|
int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
|
PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
|
|
GsonBuilder gsonBuilder = new GsonBuilder();
|
gsonBuilder.serializeNulls();
|
Gson gson = gsonBuilder.setDateFormat("yyyy/MM/dd HH:mm:ss").create();
|
|
JSONObject data = new JSONObject();
|
data.put("pe", pe);
|
data.put("result_list", gson.toJson(list));
|
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
|
} catch (Exception e) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
|
e.printStackTrace();
|
}
|
}
|
|
@RequestMapping(value = "listSystemRebateCoupon")
|
public void listSystemRebateCoupon(String callback, Integer pageIndex, Integer pageSize, String key, Integer sort,
|
PrintWriter out) {
|
|
if (pageIndex == null || pageIndex < 1) {
|
pageIndex = 1;
|
}
|
|
if (pageSize == null || pageSize < 1) {
|
pageSize = Constant.PAGE_SIZE;
|
}
|
|
try {
|
List<SystemCouponVO> list = userSystemCouponCountService
|
.listSystemCouponByRebate((pageIndex - 1) * pageSize, pageSize, key, sort);
|
|
if (list == null || list.size() == 0) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无数据"));
|
return;
|
}
|
|
long count = userSystemCouponCountService.countSystemCouponRebate(key);
|
|
int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
|
PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
|
|
GsonBuilder gsonBuilder = new GsonBuilder();
|
gsonBuilder.serializeNulls();
|
Gson gson = gsonBuilder.setDateFormat("yyyy/MM/dd HH:mm:ss").create();
|
|
JSONObject data = new JSONObject();
|
data.put("pe", pe);
|
data.put("result_list", gson.toJson(list));
|
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
|
} catch (Exception e) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
|
e.printStackTrace();
|
}
|
}
|
|
@RequestMapping(value = "listSystemFreeCoupon")
|
public void listSystemFreeCoupon(String callback, Integer pageIndex, Integer pageSize, String key, Integer sort,
|
PrintWriter out) {
|
|
if (pageIndex == null || pageIndex < 1) {
|
pageIndex = 1;
|
}
|
|
if (pageSize == null || pageSize < 1) {
|
pageSize = Constant.PAGE_SIZE;
|
}
|
|
try {
|
List<SystemCouponVO> list = userSystemCouponCountService.listSystemCouponByFree((pageIndex - 1) * pageSize,
|
pageSize, key, sort);
|
|
if (list == null || list.size() == 0) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无数据"));
|
return;
|
}
|
|
long count = list.size();
|
|
int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
|
PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
|
|
GsonBuilder gsonBuilder = new GsonBuilder();
|
gsonBuilder.serializeNulls();
|
Gson gson = gsonBuilder.setDateFormat("yyyy/MM/dd HH:mm:ss").create();
|
|
JSONObject data = new JSONObject();
|
data.put("pe", pe);
|
data.put("result_list", gson.toJson(list));
|
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
|
} catch (Exception e) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
|
e.printStackTrace();
|
}
|
}
|
|
/**
|
* 用户奖励券列表
|
*
|
* @param callback
|
* @param pageIndex
|
* @param pageSize
|
* @param key
|
* @param keyType 1-用户id、 2来源
|
* @param state
|
* @param percent
|
* @param out
|
*/
|
@RequestMapping(value = "listFreeCoupon")
|
public void listFreeCoupon(String callback, Integer pageIndex, Integer pageSize, String key, Integer keyType,
|
Integer state, Integer activated, PrintWriter out) {
|
|
if (pageIndex == null || pageIndex < 1) {
|
pageIndex = 1;
|
}
|
|
if (pageSize == null || pageSize < 1) {
|
pageSize = Constant.PAGE_SIZE;
|
}
|
|
try {
|
List<UserSystemCouponCountVO> list = userSystemCouponCountService.listFreeCoupon((pageIndex - 1) * pageSize,
|
pageSize, key, keyType, state, activated);
|
|
if (list == null || list.size() == 0) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无数据"));
|
return;
|
}
|
|
long count = userSystemCouponCountService.countFreeCoupon(key, keyType, state, activated);
|
|
int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
|
PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
|
|
GsonBuilder gsonBuilder = new GsonBuilder();
|
gsonBuilder.serializeNulls();
|
Gson gson = gsonBuilder.setDateFormat("yyyy/MM/dd HH:mm:ss").create();
|
|
JSONObject data = new JSONObject();
|
data.put("pe", pe);
|
data.put("result_list", gson.toJson(list));
|
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
|
} catch (Exception e) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
|
e.printStackTrace();
|
}
|
}
|
|
/**
|
* 用户奖励券列表
|
*
|
* @param callback
|
* @param pageIndex
|
* @param pageSize
|
* @param key
|
* @param keyType 1-用户id、 2来源
|
* @param state
|
* @param percent
|
* @param out
|
*/
|
@RequestMapping(value = "listFreeCouponRecord")
|
public void listFreeCouponRecord(String callback, Integer pageIndex, Integer pageSize, String key, Integer keyType,
|
Integer state, PrintWriter out) {
|
|
if (pageIndex == null || pageIndex < 1) {
|
pageIndex = 1;
|
}
|
|
if (pageSize == null || pageSize < 1) {
|
pageSize = Constant.PAGE_SIZE;
|
}
|
|
try {
|
List<UserSystemCouponCountVO> list = userSystemCouponCountService
|
.listFreeCouponRecord((pageIndex - 1) * pageSize, pageSize, key, keyType, state);
|
|
if (list == null || list.size() == 0) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无数据"));
|
return;
|
}
|
|
long count = userSystemCouponCountService.countFreeCouponRecord(key, keyType, state);
|
|
int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
|
PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
|
|
GsonBuilder gsonBuilder = new GsonBuilder();
|
gsonBuilder.serializeNulls();
|
Gson gson = gsonBuilder.setDateFormat("yyyy/MM/dd HH:mm:ss").create();
|
|
JSONObject data = new JSONObject();
|
data.put("pe", pe);
|
data.put("result_list", gson.toJson(list));
|
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
|
} catch (Exception e) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
|
e.printStackTrace();
|
}
|
}
|
|
|
|
/**
|
* 查询赠送免券
|
* @param callback
|
* @param pageIndex
|
* @param pageSize
|
* @param key
|
* @param type 1赠送免单券 、2-奖励券
|
* @param state
|
* @param out
|
*/
|
@RequestMapping(value = "listGiveCoupon")
|
public void listGiveCoupon(String callback, Integer pageIndex, Integer pageSize, String key, Integer type,
|
Integer state, PrintWriter out) {
|
|
if (pageIndex == null || pageIndex < 1) {
|
pageIndex = 1;
|
}
|
|
if (pageSize == null || pageSize < 1) {
|
pageSize = Constant.PAGE_SIZE;
|
}
|
|
String couponType = null;
|
if (type != null) {
|
if (type == 1) {
|
couponType = "freeCouponGive";
|
} else if (type == 2){
|
couponType = "rebatePercentCoupon";
|
}
|
}
|
|
try {
|
List<UserSystemCouponGiveRecord> list = userSystemCouponGiveRecordService.listGiveRecord((pageIndex - 1) * pageSize,
|
pageSize, couponType, state);
|
|
if (list == null || list.size() == 0) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无数据"));
|
return;
|
}
|
|
long count = userSystemCouponGiveRecordService.countGiveRecord(couponType, state);
|
|
int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
|
PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
|
|
GsonBuilder gsonBuilder = new GsonBuilder();
|
gsonBuilder.serializeNulls();
|
Gson gson = gsonBuilder.setDateFormat("yyyy/MM/dd HH:mm:ss").create();
|
|
JSONObject data = new JSONObject();
|
data.put("pe", pe);
|
data.put("result_list", gson.toJson(list));
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
} catch (Exception e) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
|
e.printStackTrace();
|
}
|
}
|
|
|
/**
|
* 奖励券数量曲线图
|
* @param callback
|
* @param dateType
|
* @param year
|
* @param startTime
|
* @param endTime
|
* @param out
|
*/
|
@RequestMapping(value = "getRebateCouponUsedNumCharts")
|
public void getRebateCouponUsedNumCharts(String callback, Integer dateType, String year, String startTime,
|
String endTime, PrintWriter out){
|
try {
|
String validateMsg = AdminUtils.validateParams(dateType, startTime, endTime);
|
if (validateMsg != null) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(validateMsg));
|
return;
|
}
|
JSONObject data = getChartsData(dateType, year, startTime, endTime, 1, null);
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
} catch (Exception e) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("系统异常"));
|
e.printStackTrace();
|
}
|
}
|
|
|
/**
|
* 奖励券数量曲线图
|
* @param callback
|
* @param dateType
|
* @param year
|
* @param startTime
|
* @param endTime
|
* @param out
|
*/
|
@RequestMapping(value = "getRebateCouponMoneyCharts")
|
public void getRebateCouponMoneyCharts(String callback, Integer dateType, String year, String startTime,
|
String endTime, PrintWriter out){
|
try {
|
String validateMsg = AdminUtils.validateParams(dateType, startTime, endTime);
|
if (validateMsg != null) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(validateMsg));
|
return;
|
}
|
JSONObject data = getChartsData(dateType, year, startTime, endTime, 2, null);
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
} catch (Exception e) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("系统异常"));
|
e.printStackTrace();
|
}
|
}
|
|
/**
|
* 奖励券数量曲线图
|
* @param callback
|
* @param dateType
|
* @param year
|
* @param startTime
|
* @param endTime
|
* @param out
|
*/
|
@RequestMapping(value = "getFreeCouponMoneyCharts")
|
public void getFreeCouponMoneyCharts(String callback, Integer dateType, String year, String startTime,
|
String endTime, Integer coupon, PrintWriter out){
|
try {
|
if (coupon == null || (coupon.intValue() < 0 && coupon.intValue() > 4)) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("券类型不正确"));
|
return;
|
}
|
|
String validateMsg = AdminUtils.validateParams(dateType, startTime, endTime);
|
if (validateMsg != null) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(validateMsg));
|
return;
|
}
|
|
String couponType = null;
|
if (coupon == 1) {
|
couponType = "freeCoupon";
|
} else if (coupon == 2){
|
couponType = "welfareFreeCoupon";
|
} else if (coupon == 3){
|
couponType = "freeCouponBuy";
|
}
|
|
JSONObject data = getChartsData(dateType, year, startTime, endTime, 3, couponType);
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
} catch (Exception e) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("系统异常"));
|
e.printStackTrace();
|
}
|
}
|
|
public JSONObject getChartsData(Integer dateType, String year, String startTime,
|
String endTime, int source, String couponType) throws Exception {
|
if (dateType != 1 && (!StringUtil.isNullOrEmpty(startTime) || !StringUtil.isNullOrEmpty(endTime))) {
|
startTime = null;
|
endTime = null;
|
}
|
|
if (dateType == 1 && year != null) {
|
year = null;
|
} else if (dateType == 2) {
|
if (startTime != null)
|
startTime = null;
|
|
if (endTime != null)
|
endTime = null;
|
|
} else if (dateType == 3) {
|
if (year != null)
|
year = null;
|
|
if (startTime != null)
|
startTime = null;
|
|
if (endTime != null)
|
endTime = null;
|
}
|
Gson gson = new Gson();
|
List<String> dateList = AdminUtils.getDateList(dateType, startTime, endTime, year);
|
|
JSONObject innerList = new JSONObject();
|
List<ChartTDO> list = null;
|
if (source == 1) {
|
// 奖励券数量
|
innerList.put("name", "数量");
|
list = userSystemCouponCountService.getRebateCouponUsedNumToCharts(dateType, year,
|
startTime, endTime);
|
} else if (source == 2) {
|
// 奖励券金额
|
innerList.put("name", "金额");
|
list = userSystemCouponCountService.getRebateCouponMoneyToCharts(dateType, year,
|
startTime, endTime);
|
} else if (source == 3) {
|
// 奖励券金额
|
innerList.put("name", "金额");
|
list = userSystemCouponCountService.getFreeCouponMoneyToCharts(dateType, year,
|
startTime, endTime, couponType);
|
}
|
|
Object objectDate = null;
|
if (dateType != 3) {
|
innerList.put("data", gson.toJson(AdminUtils.dayOrMonthDataFactory(dateType, dateList, list)));
|
} else {
|
// 年视图
|
Map<String, Object> map = AdminUtils.yearsDataFactory(list);
|
|
if (objectDate == null) {
|
objectDate = map.get("date");
|
}
|
innerList.put("data", gson.toJson(map.get("value")));
|
}
|
|
JSONArray line_list = new JSONArray();
|
line_list.add(innerList);
|
|
JSONObject data = new JSONObject();
|
if (objectDate != null) {
|
data.put("xAxis_list", gson.toJson(objectDate));
|
} else {
|
data.put("xAxis_list", gson.toJson(dateList));
|
}
|
|
data.put("line_list", line_list);
|
return data;
|
}
|
}
|