邀请人员达标人员够?额外奖励

This commit is contained in:
wangw 2024-12-12 10:10:25 +08:00
parent af6efd83be
commit 978c4ff5b6
6 changed files with 180 additions and 1 deletions

View File

@ -0,0 +1,65 @@
package com.sqx.modules.complet.controller;
import cn.hutool.core.date.DateUtil;
import com.sqx.modules.complet.entity.CompletAward;
import com.sqx.modules.complet.service.CompletAwardService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sqx.common.utils.DateUtils;
import com.sqx.common.utils.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
@Slf4j
@RestController
@Api(value = "达标奖励", tags = {"达标奖励表(邀请人员 几个人达标后的额外奖励)"})
@RequestMapping(value = "/completAward")
public class CompletAwardController {
/**
* 服务对象
*/
@Autowired
private CompletAwardService completAwardService;
@PostMapping("/insertCompletAward")
@ApiOperation("添加达标奖励")
public Result insertCompletAward(@RequestBody CompletAward completAward) {
completAward.setCreateTime(DateUtil.now());
completAwardService.save(completAward);
return Result.success();
}
@GetMapping("/{id}")
@ApiOperation("通过Id查询详情")
public Result selectOne(@PathVariable Integer id) {
return Result.success().put("data", completAwardService.getById(id));
}
@PostMapping("/updateCompletAward")
@ApiOperation("修改达标奖励")
public Result updateCompletAward(@RequestBody CompletAward completAward) {
completAward.setUpdateTime(DateUtil.now());
completAwardService.updateById(completAward);
return Result.success();
}
@PostMapping("/deleteCompletAward")
@ApiOperation("删除达标奖励")
public Result deleteCompletAward(Long id) {
completAwardService.removeById(id);
return Result.success();
}
@GetMapping("/selectCompletAward")
@ApiOperation("查询达标奖励")
public Result selectCompletAward(Integer page, Integer limit) {
return Result.success().put("data", completAwardService.page(new Page<>(page, limit), new QueryWrapper<CompletAward>().orderByAsc("id")));
}
}

View File

@ -0,0 +1,11 @@
package com.sqx.modules.complet.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sqx.modules.complet.entity.CompletAward;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface CompletAwardDao extends BaseMapper<CompletAward> {
}

View File

@ -0,0 +1,42 @@
package com.sqx.modules.complet.entity;
import java.math.BigDecimal;
import java.util.Date;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import lombok.Data;
/**
* 达标奖励表(邀请人员 几个人达标后的额外奖励)(CompletAward)表实体类
*
* @author ww
* @since 2024-12-12 09:36:13
*/
@Data
@TableName("complet_award")
@ApiModel(value = "达标奖励表(邀请人员 几个人达标后的额外奖励) 实体类")
public class CompletAward extends Model<CompletAward> {
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("人数")
private Integer inviteCount;
@ApiModelProperty("1 金豆 2 红包")
private Integer type;
@ApiModelProperty("奖励数量")
private BigDecimal awardNumber;
@ApiModelProperty("状态 0 关闭 1 开启")
private Integer status;
@ApiModelProperty("创建时间")
private String createTime;
@ApiModelProperty("更新时间")
private String updateTime;
}

View File

@ -0,0 +1,11 @@
package com.sqx.modules.complet.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sqx.modules.complet.entity.CompletAward;
import java.util.Map;
public interface CompletAwardService extends IService<CompletAward> {
}

View File

@ -0,0 +1,19 @@
package com.sqx.modules.complet.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sqx.modules.complet.dao.CompletAwardDao;
import com.sqx.modules.complet.entity.CompletAward;
import com.sqx.modules.complet.service.CompletAwardService;
import org.springframework.stereotype.Service;
import org.apache.commons.lang3.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.Map;
@Service
public class CompletAwardServiceImpl extends ServiceImpl<CompletAwardDao, CompletAward> implements CompletAwardService {
}

View File

@ -3,6 +3,7 @@ package com.sqx.modules.pay.controller.app;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sqx.common.annotation.Debounce;
import com.sqx.common.utils.DateUtils;
import com.sqx.common.utils.Result;
@ -12,6 +13,8 @@ import com.sqx.modules.app.service.UserMoneyDetailsService;
import com.sqx.modules.app.service.UserMoneyService;
import com.sqx.modules.app.service.UserService;
import com.sqx.modules.common.service.CommonInfoService;
import com.sqx.modules.complet.entity.CompletAward;
import com.sqx.modules.complet.service.CompletAwardService;
import com.sqx.modules.invite.dao.InviteDao;
import com.sqx.modules.invite.entity.Invite;
import com.sqx.modules.invite.service.InviteService;
@ -58,12 +61,13 @@ public class WuyouController {
private final UserMoneyDetailsService userMoneyDetailsService;
private final CommonInfoService commonRepository;
private final CashOutDao cashOutDao;
private final CompletAwardService completAwardService;
private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
WuyouController(OrdersService ordersService, PayDetailsDao payDetailsDao, UserService userService, InviteService inviteService, CashOutDao cashOutDao,
UserMoneyService userMoneyService, UserMoneyDetailsService userMoneyDetailsService, CommonInfoService commonRepository,
InviteDao inviteDao) {
InviteDao inviteDao,CompletAwardService completAwardService) {
this.ordersService = ordersService;
this.payDetailsDao = payDetailsDao;
this.userService = userService;
@ -73,6 +77,7 @@ public class WuyouController {
this.userMoneyDetailsService = userMoneyDetailsService;
this.commonRepository = commonRepository;
this.inviteDao = inviteDao;
this.completAwardService = completAwardService;
}
@Debounce(interval = 1000, value = "#orderId")
@ -262,6 +267,32 @@ public class WuyouController {
}
}
}
QueryWrapper<UserMoneyDetails> moneyDetailsQuery = new QueryWrapper<>();
moneyDetailsQuery.eq("classify", 7);
moneyDetailsQuery.eq("user_id", sourceUser.getUserId());
//达标人数
int completeCount = userMoneyDetailsService.count(moneyDetailsQuery);
completAwardService.list(new QueryWrapper<CompletAward>().eq("invite_count", completeCount)).forEach(completAward -> {
switch (completAward.getType()) {
case 1:
UserMoneyDetails userMoneyDetails1 = new UserMoneyDetails(
sourceUser.getUserId(), null, null, "[分享达标额外奖励]", 8, 1, 2,
completAward.getAwardNumber(), "邀请人员已有"+completAward.getInviteCount()+"人完成达标任务,额外奖励金豆" + completAward.getAwardNumber(), 2);
userMoneyService.updateMoney(1, sourceUser.getUserId(), completAward.getAwardNumber().doubleValue());
userMoneyDetailsService.save(userMoneyDetails1);
break;
case 2:
UserMoneyDetails userMoneyDetails2 = new UserMoneyDetails(
sourceUser.getUserId(), null, null, "[分享达标额外奖励]", 8, 1, 2,
completAward.getAwardNumber(), "邀请人员已有"+completAward.getInviteCount()+"人完成达标任务,额外奖励现金红包" + completAward.getAwardNumber(), 1);
userMoneyService.updateAmount(1, sourceUser.getUserId(), completAward.getAwardNumber().doubleValue());
userMoneyDetailsService.save(userMoneyDetails2);
break;
}
});
}
}