package com.taoke.autopay.controller.admin.credit; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.TypeAdapter; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.taoke.autopay.dao.credit.UserCreditRecordMapper; import com.taoke.autopay.entity.credit.UserCreditRecord; import com.taoke.autopay.service.credit.UserCreditRecordService; import com.taoke.autopay.utils.JsonUtil; import com.taoke.autopay.utils.StringUtil; import com.taoke.autopay.utils.TimeUtil; import com.taoke.autopay.vo.admin.UserCreditRecordSearchVO; import net.sf.json.JSONObject; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.yeshi.utils.DateUtil; import javax.annotation.Resource; import java.io.IOException; import java.math.BigDecimal; import java.util.Arrays; import java.util.Date; import java.util.List; @Controller @RequestMapping("/admin/api/credit/record") public class UserCreditRecordAdminController { private Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, new TypeAdapter() { @Override public void write(JsonWriter out, Date value) throws IOException { String desc = ""; if (value != null) { // 判断是否是同一天 desc = TimeUtil.getGernalTime(value.getTime(), "yyyy-MM-dd HH:mm:ss"); out.value(desc); } else { out.value(""); } } @Override public Date read(JsonReader in) throws IOException { return new Date(); } }).registerTypeAdapter(BigDecimal.class, new TypeAdapter() { @Override public void write(JsonWriter out, BigDecimal value) throws IOException { if (value != null) { out.value(value.toString()); } else { out.value(""); } } @Override public BigDecimal read(JsonReader in) throws IOException { return new BigDecimal("0.00"); } }).create(); @Resource private UserCreditRecordService userCreditRecordService; /** * 获取积分记录列表 */ @ResponseBody @RequestMapping("list") public String listRecords(UserCreditRecordSearchVO search, int page, int limit) { UserCreditRecordMapper.DaoQuery query = UserCreditRecordMapper.DaoQuery.builder().build(); if(!StringUtil.isNullOrEmpty(search.getUid())){ query.uid = Long.parseLong(search.getUid()); } if(!org.yeshi.utils.StringUtil.isNullOrEmpty(search.getDirection())){ query.direction = Integer.parseInt(search.getDirection()); } if(!StringUtil.isNullOrEmpty(search.getStart_date())){ query.minCreateTime = new Date(TimeUtil.convertToTimeTemp(search.getStart_date(),"yyyy-MM-dd")); } if(!StringUtil.isNullOrEmpty(search.getEnd_date())){ query.maxCreateTime = new Date(TimeUtil.convertToTimeTemp(search.getEnd_date(),"yyyy-MM-dd")+1000*60*60*24L); } query.sortList = Arrays.asList(new String[]{ "create_time desc"}); query.start = (long) (page - 1) * limit; query.count = limit; List records = userCreditRecordService.listCreditRecords(query); long count = userCreditRecordService.countCreditRecords(query); JSONObject root = new JSONObject(); root.put("list", gson.toJson(records)); root.put("count", count); return JsonUtil.loadTrueResult(root); } }