123
This commit is contained in:
@@ -4,6 +4,8 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.cai.domain.PrizeWinningRecord;
|
||||
import com.ruoyi.cai.dto.admin.vo.winningRecord.PrizeWinningRecordAdminVO;
|
||||
import com.ruoyi.cai.mapper.PrizeWinningRecordMapper;
|
||||
import com.ruoyi.cai.service.PrizeWinningRecordService;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.annotation.RepeatSubmit;
|
||||
@@ -18,6 +20,7 @@ import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.Arrays;
|
||||
@@ -35,14 +38,16 @@ import java.util.Arrays;
|
||||
public class PrizeWinningRecordController extends BaseController {
|
||||
|
||||
private final PrizeWinningRecordService prizeWinningRecordService;
|
||||
@Resource
|
||||
private PrizeWinningRecordMapper prizeWinningRecordMapper;
|
||||
|
||||
/**
|
||||
* 查询中奖记录列表
|
||||
*/
|
||||
@SaCheckPermission("cai:prizeWinningRecord:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<PrizeWinningRecord> list(PrizeWinningRecord bo, PageQuery pageQuery) {
|
||||
Page<PrizeWinningRecord> page = prizeWinningRecordService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
|
||||
public TableDataInfo<PrizeWinningRecordAdminVO> list(PrizeWinningRecordAdminVO bo, PageQuery pageQuery) {
|
||||
Page<PrizeWinningRecordAdminVO> page = prizeWinningRecordMapper.pageAdmin(pageQuery.build(), bo);
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
|
||||
@@ -58,26 +63,20 @@ public class PrizeWinningRecordController extends BaseController {
|
||||
return R.ok(prizeWinningRecordService.getById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增中奖记录
|
||||
*/
|
||||
@SaCheckPermission("cai:prizeWinningRecord:add")
|
||||
@Log(title = "中奖记录", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody PrizeWinningRecord bo) {
|
||||
return toAjax(prizeWinningRecordService.save(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改中奖记录
|
||||
*/
|
||||
@SaCheckPermission("cai:prizeWinningRecord:edit")
|
||||
@Log(title = "中奖记录", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody PrizeWinningRecord bo) {
|
||||
return toAjax(prizeWinningRecordService.updateById(bo));
|
||||
@PostMapping("/give")
|
||||
public R<Void> give(@Validated(EditGroup.class) @RequestBody PrizeWinningRecord bo) {
|
||||
PrizeWinningRecord update = new PrizeWinningRecord();
|
||||
update.setId(bo.getId());
|
||||
update.setGiveStatus(1);
|
||||
update.setGiveRemark(bo.getGiveRemark());
|
||||
prizeWinningRecordService.updateById(update);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -35,7 +35,7 @@ public class PrizeWinningRecord implements Serializable {
|
||||
/**
|
||||
* 抽奖消耗
|
||||
*/
|
||||
private Long usePoint;
|
||||
private Integer usePoint;
|
||||
/**
|
||||
* 奖品ID
|
||||
*/
|
||||
@@ -59,11 +59,11 @@ public class PrizeWinningRecord implements Serializable {
|
||||
/**
|
||||
* 保底抽数(0表示无保底,谢谢惠顾奖无效)
|
||||
*/
|
||||
private Long guaranteeDraws;
|
||||
private Integer guaranteeDraws;
|
||||
/**
|
||||
* 最低中奖抽数(0表示无限制,谢谢惠顾奖无效)
|
||||
*/
|
||||
private Long minWinDraws;
|
||||
private Integer minWinDraws;
|
||||
/**
|
||||
* 奖品库存(谢谢惠顾奖填0,不校验)
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.ruoyi.cai.dto.admin.vo.winningRecord;
|
||||
|
||||
import com.ruoyi.cai.domain.PrizeWinningRecord;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class PrizeWinningRecordAdminVO extends PrizeWinningRecord {
|
||||
private String usercode;
|
||||
private String nickname;
|
||||
private String mobile;
|
||||
}
|
||||
@@ -10,6 +10,7 @@ import com.ruoyi.cai.manager.IdManager;
|
||||
import com.ruoyi.cai.manager.SystemConfigManager;
|
||||
import com.ruoyi.cai.service.AccountService;
|
||||
import com.ruoyi.cai.service.PrizeOnlineService;
|
||||
import com.ruoyi.cai.service.PrizeWinningRecordService;
|
||||
import com.ruoyi.cai.service.UserService;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -244,6 +245,9 @@ public class LotteryService {
|
||||
return finalCount;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
private PrizeWinningRecordService prizeWinningRecordService;
|
||||
|
||||
/**
|
||||
* 保存抽奖记录(事务控制)
|
||||
*/
|
||||
@@ -253,12 +257,7 @@ public class LotteryService {
|
||||
String traceId = IdManager.nextIdStr();
|
||||
PointChangeLog pointChangeLog = pointManager.drawPoint(prizeOnline, user, drawPoint, traceId);
|
||||
// 记录用户抽奖记录
|
||||
// UserDrawRecord record = new UserDrawRecord();
|
||||
// record.setUserId(userId);
|
||||
// record.setPrizeId(prizeId);
|
||||
// record.setDrawTime(LocalDateTime.now());
|
||||
// record.setContinuousDraws(continuousDraws);
|
||||
// userDrawRecordMapper.insert(record);
|
||||
prizeWinningRecordService.winningRecord(pointChangeLog, prizeOnline, user, drawPoint);
|
||||
// 更新缓存
|
||||
String cacheKey = String.format(USER_DRAW_COUNT_KEY, user.getId());
|
||||
RBucket<Integer> bucket = redissonClient.getBucket(cacheKey);
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
package com.ruoyi.cai.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.cai.domain.PrizeWinningRecord;
|
||||
import com.ruoyi.cai.dto.admin.vo.winningRecord.PrizeWinningRecordAdminVO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 中奖记录Mapper接口
|
||||
@@ -11,4 +15,5 @@ import com.ruoyi.cai.domain.PrizeWinningRecord;
|
||||
*/
|
||||
public interface PrizeWinningRecordMapper extends BaseMapper<PrizeWinningRecord> {
|
||||
|
||||
Page<PrizeWinningRecordAdminVO> pageAdmin(Page<Object> build, @Param("query") PrizeWinningRecordAdminVO query);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
package com.ruoyi.cai.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.ruoyi.cai.domain.PointChangeLog;
|
||||
import com.ruoyi.cai.domain.PrizeOnline;
|
||||
import com.ruoyi.cai.domain.PrizeWinningRecord;
|
||||
import com.ruoyi.cai.domain.User;
|
||||
|
||||
/**
|
||||
* 中奖记录Service接口
|
||||
@@ -11,4 +14,5 @@ import com.ruoyi.cai.domain.PrizeWinningRecord;
|
||||
*/
|
||||
public interface PrizeWinningRecordService extends IService<PrizeWinningRecord> {
|
||||
|
||||
void winningRecord(PointChangeLog pointChangeLog, PrizeOnline prizeOnline, User user, Integer drawPoint);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
package com.ruoyi.cai.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.cai.domain.PointChangeLog;
|
||||
import com.ruoyi.cai.domain.PrizeOnline;
|
||||
import com.ruoyi.cai.domain.PrizeWinningRecord;
|
||||
import com.ruoyi.cai.domain.User;
|
||||
import com.ruoyi.cai.mapper.PrizeWinningRecordMapper;
|
||||
import com.ruoyi.cai.service.PrizeWinningRecordService;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -15,4 +18,23 @@ import org.springframework.stereotype.Service;
|
||||
@Service
|
||||
public class PrizeWinningRecordServiceImpl extends ServiceImpl<PrizeWinningRecordMapper,PrizeWinningRecord> implements PrizeWinningRecordService {
|
||||
|
||||
@Override
|
||||
public void winningRecord(PointChangeLog pointChangeLog, PrizeOnline prizeOnline, User user, Integer drawPoint) {
|
||||
PrizeWinningRecord prizeWinningRecord = new PrizeWinningRecord();
|
||||
prizeWinningRecord.setUserId(user.getId());
|
||||
prizeWinningRecord.setUsePoint(drawPoint);
|
||||
prizeWinningRecord.setPrizeId(prizeOnline.getPrizeId());
|
||||
prizeWinningRecord.setPrizeName(prizeOnline.getPrizeName());
|
||||
prizeWinningRecord.setPrizeDesc(prizeOnline.getPrizeDesc());
|
||||
prizeWinningRecord.setPrizeImg(prizeOnline.getPrizeImg());
|
||||
prizeWinningRecord.setWinProbability(prizeOnline.getWinProbability());
|
||||
prizeWinningRecord.setGuaranteeDraws(prizeOnline.getGuaranteeDraws());
|
||||
prizeWinningRecord.setMinWinDraws(prizeOnline.getMinWinDraws());
|
||||
prizeWinningRecord.setStock(prizeOnline.getStock());
|
||||
prizeWinningRecord.setPrizeType(prizeOnline.getPrizeType());
|
||||
prizeWinningRecord.setPrizePrice(prizeOnline.getPrizePrice());
|
||||
prizeWinningRecord.setAutoGive(prizeOnline.getAutoGive());
|
||||
prizeWinningRecord.setGiveStatus(0);
|
||||
this.save(prizeWinningRecord);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,26 +4,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.ruoyi.cai.mapper.PrizeWinningRecordMapper">
|
||||
|
||||
<resultMap type="com.ruoyi.cai.domain.PrizeWinningRecord" id="PrizeWinningRecordResult">
|
||||
<result property="id" column="id"/>
|
||||
<result property="userId" column="user_id"/>
|
||||
<result property="usePoint" column="use_point"/>
|
||||
<result property="prizeId" column="prize_id"/>
|
||||
<result property="prizeName" column="prize_name"/>
|
||||
<result property="prizeDesc" column="prize_desc"/>
|
||||
<result property="prizeImg" column="prize_img"/>
|
||||
<result property="winProbability" column="win_probability"/>
|
||||
<result property="guaranteeDraws" column="guarantee_draws"/>
|
||||
<result property="minWinDraws" column="min_win_draws"/>
|
||||
<result property="stock" column="stock"/>
|
||||
<result property="prizeType" column="prize_type"/>
|
||||
<result property="prizePrice" column="prize_price"/>
|
||||
<result property="autoGive" column="auto_give"/>
|
||||
<result property="giveStatus" column="give_status"/>
|
||||
<result property="giveRemark" column="give_remark"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
</resultMap>
|
||||
|
||||
|
||||
<select id="pageAdmin" resultType="com.ruoyi.cai.dto.admin.vo.winningRecord.PrizeWinningRecordAdminVO">
|
||||
select t2.usercode, t2.mobile, t2.nickname, t1.*
|
||||
from cai_prize_winning_record t1
|
||||
left join cai_user t2 on t1.user_id = t2.id
|
||||
<where>
|
||||
<if test="query.usercode != null and query.usercode != ''">
|
||||
and t2.usercode = #{query.usercode}
|
||||
</if>
|
||||
<if test="query.mobile != null and query.mobile != ''">
|
||||
and t2.mobile = #{query.mobile}
|
||||
</if>
|
||||
<if test="query.prizeName != null and query.prizeName != ''">
|
||||
and t1.prize_name like concat('%',#{query.prizeName},'%')
|
||||
</if>
|
||||
<if test="query.autoGive != null">
|
||||
and t1.auto_give = #{query.autoGive}
|
||||
</if>
|
||||
<if test="query.giveStatus != null">
|
||||
and t1.give_status = #{query.giveStatus}
|
||||
</if>
|
||||
</where>
|
||||
order by t1.create_time desc
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user