123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- package com.txz.cif.web;
- import cn.hutool.core.date.DateUtil;
- import cn.hutool.json.JSONUtil;
- import com.txz.cif.core.*;
- import com.txz.cif.core.cache.CacheKey;
- import com.txz.cif.core.cache.CacheType;
- import com.txz.cif.model.RedEnvelope;
- import com.txz.cif.model.User;
- import com.txz.cif.service.RedEnvelopeService;
- import com.github.pagehelper.PageHelper;
- import com.github.pagehelper.PageInfo;
- import com.txz.cif.service.UserService;
- import com.txz.cif.web.bo.UserDetailBo;
- import com.txz.cif.web.bo.UserTopBo;
- import com.txz.cif.web.para.RedEnvelopeListParam;
- import com.txz.cif.web.para.RedEnvelopeParam;
- import org.springframework.web.bind.annotation.*;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import com.txz.core.ServiceException;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import tk.mybatis.mapper.entity.Condition;
- import tk.mybatis.mapper.entity.Example.Criteria;
- import javax.annotation.Resource;
- import javax.servlet.http.HttpServletRequest;
- import java.util.Date;
- import java.util.List;
- import java.util.concurrent.TimeUnit;
- import java.util.stream.Collectors;
- import org.apache.commons.lang.StringUtils;
- /**
- * Created by CodeGenerator on 2025/07/15.
- */
- @Api(tags = "[api]redEnvelope管理")
- @RestController
- @RequestMapping("/api/red/envelope")
- public class RedEnvelopeApiController {
- private static Logger log = LoggerFactory.getLogger(RedEnvelopeApiController.class);
- @Resource
- private RedEnvelopeService redEnvelopeService;
- @Resource
- private AuthService authService;
- @Resource
- private RedisUtil redisUtil;
- @Resource
- private UserService userService;
- @PostMapping("/list")
- @ApiOperation(value = "redEnvelope获取列表",httpMethod = "POST")
- public Result<List<RedEnvelope>> list(@RequestBody RedEnvelopeListParam param, HttpServletRequest request) {
- Long userId = authService.getTokenUserId(request);
- PageHelper.startPage(param.getPage(), param.getSize());
- Condition condition = new Condition(RedEnvelope.class);
- Criteria criteria = condition.createCriteria();
- criteria.andEqualTo("userId",userId);
- if (param.getType() == 1 ){
- Date todayStart = DateUtil.beginOfDay(DateUtil.date());
- criteria.andGreaterThanOrEqualTo("createTime", todayStart);
- } else if (param.getType() == 2){
- Date yesterdayStart = DateUtil.beginOfDay(DateUtil.yesterday());
- Date todayStart = DateUtil.beginOfDay(DateUtil.date());
- criteria.andBetween("createTime", yesterdayStart,todayStart);
- } else if (param.getType() == 3){
- Date start = DateUtil.beginOfDay(DateUtil.offsetDay(DateUtil.date(),-7));
- criteria.andGreaterThanOrEqualTo("createTime",start);
- } else if (param.getType() == 4){
- Date start = DateUtil.beginOfMonth(DateUtil.date());
- criteria.andGreaterThanOrEqualTo("createTime",start);
- } else if (param.getType() == 5){
- Date start = DateUtil.beginOfYear(DateUtil.date());
- criteria.andGreaterThanOrEqualTo("createTime",start);
- }
- PageInfo pageInfo = null;
- try {
- condition.setOrderByClause("create_time desc");
- List<RedEnvelope> list = redEnvelopeService.findByCondition(condition);
- pageInfo = new PageInfo(list);
- } catch (Exception e) {
- log.error("查询对象操作异常e:{}",e);
- return ResultGenerator.genFailResult(ResultCode.INTERNAL_SERVER_ERROR);
- }
- return ResultGenerator.genSuccessResult(pageInfo);
- }
- @GetMapping("/top")
- @ApiOperation(value = "排行榜type 1 7天收益排行",httpMethod = "GET")
- public Result<List<UserTopBo>> top(@RequestParam(defaultValue = "1") Integer type,@RequestParam(defaultValue = "1") Integer page,@RequestParam(defaultValue = "10") Integer size) {
- String key = CacheKey.generateKey(CacheType.Top,type+":"+page+":"+size).toString();
- Object o = redisUtil.get(key);
- if (o != null){
- return ResultGenerator.genSuccessResult(JSONUtil.toBean(o.toString(),PageInfo.class));
- }
- List<UserTopBo> tops= redEnvelopeService.top(type,page,size);
- PageInfo pageInfo = new PageInfo(tops);
- pageInfo.setList(tops.stream().map(e->{
- User user = userService.findById(e.getUserId());
- if (user != null){
- e.setHeadPic(user.getHeadPic());
- e.setNickname(user.getNickname());
- e.setNickname(user.getName());
- e.setVipLevel(user.getVipLevel());
- e.setUserNo(user.getUserNo());
- }
- Condition c = new Condition(User.class);
- c.createCriteria().andEqualTo("pid",e.getUserId());
- Integer invited = userService.countByCondition(c);
- if (invited != null){
- e.setInviteNum(invited);
- }
- c = new Condition(User.class);
- c.createCriteria().andEqualTo("ppid",e.getUserId());
- Integer invited2 = userService.countByCondition(c);
- if (invited != null && invited2 != null){
- e.setTeamNum(invited+invited2);
- }
- return e;
- }).collect(Collectors.toList()));
- redisUtil.set(key,JSONUtil.toJsonStr(pageInfo),1, TimeUnit.DAYS);
- return ResultGenerator.genSuccessResult(pageInfo);
- }
- }
|