|
@@ -0,0 +1,96 @@
|
|
|
+package com.txz.cif.web.mng;
|
|
|
+
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+import javax.annotation.Resource;
|
|
|
+import javax.servlet.ServletOutputStream;
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
+
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
+import cn.hutool.crypto.SecureUtil;
|
|
|
+import cn.hutool.poi.excel.ExcelUtil;
|
|
|
+import cn.hutool.poi.excel.ExcelWriter;
|
|
|
+import com.github.pagehelper.PageHelper;
|
|
|
+import com.github.pagehelper.PageInfo;
|
|
|
+import com.txz.cif.enums.BizTypeEnum;
|
|
|
+import com.txz.cif.web.bo.UserBo2;
|
|
|
+import com.txz.cif.web.bo.UserDetailBo;
|
|
|
+import com.txz.cif.web.para.*;
|
|
|
+import com.txz.cif.core.*;
|
|
|
+import com.txz.cif.model.*;
|
|
|
+import com.txz.cif.service.*;
|
|
|
+import io.swagger.annotations.*;
|
|
|
+import org.springframework.web.bind.annotation.*;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import tk.mybatis.mapper.entity.Condition;
|
|
|
+import tk.mybatis.mapper.entity.Example;
|
|
|
+
|
|
|
+@RestController
|
|
|
+@RequestMapping(value = "/report")
|
|
|
+@Api(tags = "[后台]报表管理")
|
|
|
+@Slf4j
|
|
|
+public class ReportController extends AbstractApiController {
|
|
|
+
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private UserService userService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private FlowService flowService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private AccountService accountService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private RedEnvelopeService redEnvelopeService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private RechargeRecordService rechargeRecordService;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ @PostMapping("/query")
|
|
|
+ @ApiOperation(value = "获取报表数据",httpMethod = "POST")
|
|
|
+ public Result<BigDecimal> list(@RequestBody CountQuery query) {
|
|
|
+ if (query.getType() == 1){
|
|
|
+ Condition c = new Condition(User.class);
|
|
|
+ c.createCriteria().andLessThanOrEqualTo("createTime",query.getDay()+" 23:59:59");
|
|
|
+ Integer num = userService.countByCondition(c);
|
|
|
+ return ResultGenerator.genSuccessResult(num);
|
|
|
+ } else if (query.getType() == 2){
|
|
|
+ Condition c = new Condition(User.class);
|
|
|
+ c.createCriteria().andLessThanOrEqualTo("createTime",query.getDay()+" 23:59:59")
|
|
|
+ .andGreaterThanOrEqualTo("createTime",query.getDay()+" 00:00:00");
|
|
|
+ Integer num = userService.countByCondition(c);
|
|
|
+ return ResultGenerator.genSuccessResult(num);
|
|
|
+ } else if (query.getType() == 3){
|
|
|
+ Condition c = new Condition(User.class);
|
|
|
+ Date date = DateUtil.parseDate(query.getDay());
|
|
|
+ Date day7 = DateUtil.offsetDay(date,-7);
|
|
|
+ c.createCriteria().andLessThanOrEqualTo("lastLoginTime",date)
|
|
|
+ .andGreaterThanOrEqualTo("lastLoginTime",day7);
|
|
|
+ Integer num = userService.countByCondition(c);
|
|
|
+ return ResultGenerator.genSuccessResult(num);
|
|
|
+ } else if (query.getType() == 4){
|
|
|
+ Condition c = new Condition(RechargeRecord.class);
|
|
|
+ c.createCriteria().andLessThanOrEqualTo("createTime",query.getDay()+" 23:59:59")
|
|
|
+ .andGreaterThanOrEqualTo("createTime",query.getDay()+" 00:00:00")
|
|
|
+ .andEqualTo("status",2);
|
|
|
+ c.setDistinct(true);
|
|
|
+ c.setCountProperty("user_id");
|
|
|
+ Integer num = rechargeRecordService.countByCondition(c);
|
|
|
+ return ResultGenerator.genSuccessResult(num);
|
|
|
+ }
|
|
|
+ return ResultGenerator.genSuccessResult(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+}
|