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

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 cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.annotation.Debounce;
import com.sqx.common.utils.DateUtils; import com.sqx.common.utils.DateUtils;
import com.sqx.common.utils.Result; 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.UserMoneyService;
import com.sqx.modules.app.service.UserService; import com.sqx.modules.app.service.UserService;
import com.sqx.modules.common.service.CommonInfoService; 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.dao.InviteDao;
import com.sqx.modules.invite.entity.Invite; import com.sqx.modules.invite.entity.Invite;
import com.sqx.modules.invite.service.InviteService; import com.sqx.modules.invite.service.InviteService;
@ -58,12 +61,13 @@ public class WuyouController {
private final UserMoneyDetailsService userMoneyDetailsService; private final UserMoneyDetailsService userMoneyDetailsService;
private final CommonInfoService commonRepository; private final CommonInfoService commonRepository;
private final CashOutDao cashOutDao; private final CashOutDao cashOutDao;
private final CompletAwardService completAwardService;
private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
WuyouController(OrdersService ordersService, PayDetailsDao payDetailsDao, UserService userService, InviteService inviteService, CashOutDao cashOutDao, WuyouController(OrdersService ordersService, PayDetailsDao payDetailsDao, UserService userService, InviteService inviteService, CashOutDao cashOutDao,
UserMoneyService userMoneyService, UserMoneyDetailsService userMoneyDetailsService, CommonInfoService commonRepository, UserMoneyService userMoneyService, UserMoneyDetailsService userMoneyDetailsService, CommonInfoService commonRepository,
InviteDao inviteDao) { InviteDao inviteDao,CompletAwardService completAwardService) {
this.ordersService = ordersService; this.ordersService = ordersService;
this.payDetailsDao = payDetailsDao; this.payDetailsDao = payDetailsDao;
this.userService = userService; this.userService = userService;
@ -73,6 +77,7 @@ public class WuyouController {
this.userMoneyDetailsService = userMoneyDetailsService; this.userMoneyDetailsService = userMoneyDetailsService;
this.commonRepository = commonRepository; this.commonRepository = commonRepository;
this.inviteDao = inviteDao; this.inviteDao = inviteDao;
this.completAwardService = completAwardService;
} }
@Debounce(interval = 1000, value = "#orderId") @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;
}
});
} }
} }