xiaoyong931011
2022-05-23 fcbdd13e64a2052c6bbf14e4f03cd43199780f0c
20220518
5 files modified
2 files added
183 ■■■■■ changed files
src/main/java/cc/mrbird/febs/mall/controller/AdminMallActController.java 14 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/controller/ViewMallActController.java 31 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/dto/LuckDrawSettingDto.java 13 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/IAdminMallActService.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallActServiceImpl.java 59 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallActServiceImpl.java 4 ●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/act/setting.html 59 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/controller/AdminMallActController.java
@@ -4,10 +4,8 @@
import cc.mrbird.febs.common.controller.BaseController;
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.mall.dto.AddMallActDto;
import cc.mrbird.febs.mall.dto.AddMallGoodsDto;
import cc.mrbird.febs.mall.dto.MallActUpdateDto;
import cc.mrbird.febs.mall.dto.MallGoodsUpdateDto;
import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
import cc.mrbird.febs.mall.dto.*;
import cc.mrbird.febs.mall.entity.MallActLuckdrawRecord;
import cc.mrbird.febs.mall.entity.MallActSet;
import cc.mrbird.febs.mall.entity.MallGoods;
@@ -93,5 +91,13 @@
        return new FebsResponse().success().data(data);
    }
    /**
     * 中奖概率设置
     */
    @PostMapping(value = "/addSetting")
    public FebsResponse addSetting(LuckDrawSettingDto luckDrawSettingDto) {
        return iAdminMallActService.addSetting(luckDrawSettingDto);
    }
}
src/main/java/cc/mrbird/febs/mall/controller/ViewMallActController.java
@@ -2,12 +2,18 @@
import cc.mrbird.febs.common.controller.BaseController;
import cc.mrbird.febs.common.entity.FebsConstant;
import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
import cc.mrbird.febs.common.utils.FebsUtil;
import cc.mrbird.febs.mall.dto.LuckDrawSettingDto;
import cc.mrbird.febs.mall.dto.ScoreSettingDto;
import cc.mrbird.febs.mall.entity.DataDictionaryCustom;
import cc.mrbird.febs.mall.entity.MallActSet;
import cc.mrbird.febs.mall.entity.MallActWinRecord;
import cc.mrbird.febs.mall.entity.MallGoods;
import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper;
import cc.mrbird.febs.mall.service.IAdminMallActService;
import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor;
import cn.hutool.core.util.ObjectUtil;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
@@ -21,6 +27,8 @@
public class ViewMallActController extends BaseController {
    private final IAdminMallActService iAdminMallActService;
    private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
    /**
     * 活动-列表
@@ -71,4 +79,25 @@
        return FebsUtil.view("modules/act/winRecordInfo");
    }
    /**
     * 中奖概率设置
     */
    @GetMapping("setting")
    @RequiresPermissions("luckdrawWinSet:see")
    public String setting(Model model) {
        DataDictionaryCustom dicScore = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.WIN_SCORE.getType(), DataDictionaryEnum.WIN_SCORE.getCode());
        DataDictionaryCustom dicCash = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.WIN_CASH.getType(), DataDictionaryEnum.WIN_CASH.getCode());
        LuckDrawSettingDto luckDrawSettingDto = new LuckDrawSettingDto();
        if(ObjectUtil.isNotEmpty(dicCash)){
            luckDrawSettingDto.setCashSet(dicCash.getValue() == null ? "0" : dicCash.getValue());
        }
        if(ObjectUtil.isNotEmpty(dicScore)){
            luckDrawSettingDto.setScoreSet(dicScore.getValue() == null ? "0" : dicScore.getValue());
        }
        if (dicCash != null) {
            model.addAttribute("obj", luckDrawSettingDto);
        }
        return FebsUtil.view("modules/act/setting");
    }
}
src/main/java/cc/mrbird/febs/mall/dto/LuckDrawSettingDto.java
New file
@@ -0,0 +1,13 @@
package cc.mrbird.febs.mall.dto;
import lombok.Data;
@Data
public class LuckDrawSettingDto {
    //积分中奖概率
    private String scoreSet;
    //佣金中奖概率
    private String cashSet;
}
src/main/java/cc/mrbird/febs/mall/service/IAdminMallActService.java
@@ -3,6 +3,7 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.mall.dto.AddMallActDto;
import cc.mrbird.febs.mall.dto.LuckDrawSettingDto;
import cc.mrbird.febs.mall.dto.MallActUpdateDto;
import cc.mrbird.febs.mall.entity.MallActLuckdrawRecord;
import cc.mrbird.febs.mall.entity.MallActSet;
@@ -32,4 +33,6 @@
    IPage<AdminMallActLuckdrawRecordVo> getLuckdrawListInPage(MallActLuckdrawRecord mallActLuckdrawRecord, QueryRequest request);
    MallActWinRecord selectMallActWinInfoById(long id);
    FebsResponse addSetting(LuckDrawSettingDto luckDrawSettingDto);
}
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallActServiceImpl.java
@@ -2,22 +2,19 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.mall.dto.AddMallActAwardDto;
import cc.mrbird.febs.mall.dto.AddMallActDto;
import cc.mrbird.febs.mall.dto.MallActAwardUpdateDto;
import cc.mrbird.febs.mall.dto.MallActUpdateDto;
import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
import cc.mrbird.febs.mall.dto.*;
import cc.mrbird.febs.mall.entity.*;
import cc.mrbird.febs.mall.mapper.MallActAwardSetMapper;
import cc.mrbird.febs.mall.mapper.MallActLuckdrawRecordMapper;
import cc.mrbird.febs.mall.mapper.MallActSetMapper;
import cc.mrbird.febs.mall.mapper.MallActWinRecordMapper;
import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.service.IAdminMallActService;
import cc.mrbird.febs.mall.vo.AdminMallActLuckdrawRecordVo;
import cc.mrbird.febs.mall.vo.AdminMallActSetVo;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -38,6 +35,7 @@
    private final MallActAwardSetMapper mallActAwardSetMapper;
    private final MallActLuckdrawRecordMapper mallActLuckdrawRecordMapper;
    private final MallActWinRecordMapper mallActWinRecordMapper;
    private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
    @Override
    public IPage<AdminMallActSetVo> getActListInPage(MallActSet mallActSet, QueryRequest request) {
@@ -322,4 +320,49 @@
        MallActWinRecord mallActWinRecord = mallActWinRecordMapper.selectByLuckDrawId(id);
        return mallActWinRecord;
    }
    @Override
    public FebsResponse addSetting(LuckDrawSettingDto luckDrawSettingDto) {
        if(Double.parseDouble(luckDrawSettingDto.getScoreSet())>1 || Double.parseDouble(luckDrawSettingDto.getScoreSet()) <0){
            return new FebsResponse().fail().message("中奖概率必须是一个在零和一之间的小数");
        }
        if(Double.parseDouble(luckDrawSettingDto.getCashSet())>1 || Double.parseDouble(luckDrawSettingDto.getCashSet()) <0){
            return new FebsResponse().fail().message("中奖概率必须是一个在零和一之间的小数");
        }
        DataDictionaryCustom scoreDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                DataDictionaryEnum.WIN_SCORE.getType(),
                DataDictionaryEnum.WIN_SCORE.getCode());
        DataDictionaryCustom cashDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                DataDictionaryEnum.WIN_CASH.getType(),
                DataDictionaryEnum.WIN_CASH.getCode());
        if (ObjectUtil.isNotEmpty(scoreDic)) {
            scoreDic.setValue(luckDrawSettingDto.getScoreSet().toString());
            dataDictionaryCustomMapper.updateById(scoreDic);
        }else{
            DataDictionaryCustom dataDictionaryCustom = new DataDictionaryCustom();
            dataDictionaryCustom.setCode(DataDictionaryEnum.WIN_SCORE.getCode());
            dataDictionaryCustom.setType(DataDictionaryEnum.WIN_SCORE.getType());
            dataDictionaryCustom.setValue(luckDrawSettingDto.getScoreSet().toString());
            dataDictionaryCustom.setDescription("积分中奖概率");
            dataDictionaryCustomMapper.insert(dataDictionaryCustom);
        }
        if (ObjectUtil.isNotEmpty(cashDic)) {
            cashDic.setValue(luckDrawSettingDto.getCashSet().toString());
            dataDictionaryCustomMapper.updateById(cashDic);
        }else{
            DataDictionaryCustom dataDictionaryCustom = new DataDictionaryCustom();
            dataDictionaryCustom.setCode(DataDictionaryEnum.WIN_CASH.getCode());
            dataDictionaryCustom.setType(DataDictionaryEnum.WIN_CASH.getType());
            dataDictionaryCustom.setValue(luckDrawSettingDto.getScoreSet().toString());
            dataDictionaryCustom.setDescription("佣金中奖概率");
            dataDictionaryCustomMapper.insert(dataDictionaryCustom);
        }
        return new FebsResponse().success().message("操作成功");
    }
}
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallActServiceImpl.java
@@ -142,8 +142,8 @@
        DataDictionaryCustom cashDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                DataDictionaryEnum.WIN_CASH.getType(),
                DataDictionaryEnum.WIN_CASH.getCode());
        String scoreDicValue = scoreDic.getValue();
        String cashDicValue = cashDic.getValue();
        String scoreDicValue = scoreDic.getValue() == null? "0":scoreDic.getValue();
        String cashDicValue = cashDic.getValue() == null? "0":cashDic.getValue();
        BigDecimal totalProbability = new BigDecimal(scoreDicValue).add(new BigDecimal(cashDicValue));
        //获取那个更大一点的几率
        BigDecimal maxProbability = BigDecimal.ZERO;
src/main/resources/templates/febs/views/modules/act/setting.html
New file
@@ -0,0 +1,59 @@
<div class="layui-fluid layui-anim febs-anim" id="act-setting" lay-title="中奖概率设置">
    <div class="layui-row layui-col-space8 febs-container">
        <form class="layui-form" action="" lay-filter="act-setting-form">
            <div class="layui-card">
                <div class="layui-card-body">
                    <div class="layui-form-item">
                        <label class="layui-form-label ">积分中奖概率:</label>
                        <div class="layui-input-block">
                            <input type="text" name="scoreSet" lay-verify="text" th:value="${obj != null ? obj.scoreSet : null}" autocomplete="off" class="layui-input">
                        </div>
                    </div>
                    <div class="layui-form-item">
                        <label class="layui-form-label ">佣金中奖概率:</label>
                        <div class="layui-input-block">
                            <input type="text" name="cashSet" lay-verify="text" th:value="${obj != null ? obj.cashSet : null}" autocomplete="off" class="layui-input">
                        </div>
                    </div>
                </div>
                <div class="layui-card-footer">
                    <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="act-setting-form-submit" id="submit">保存</button>
                </div>
            </div>
        </form>
    </div>
</div>
<style>
    .layui-form-label {
        width: 120px;
    }
    .layui-form-item .layui-input-block {
        margin-left: 150px;
    }
    .layui-table-form .layui-form-item {
        margin-bottom: 20px !important;
    }
</style>
<script data-th-inline="javascript" type="text/javascript">
    layui.use(['dropdown', 'jquery', 'validate', 'febs', 'form', 'eleTree'], function () {
        var $ = layui.jquery,
            febs = layui.febs,
            form = layui.form,
            validate = layui.validate,
            $view = $('#act-setting');
        form.verify(validate);
        form.render();
        form.on('submit(act-setting-form-submit)', function (data) {
            console.log(data);
            febs.post(ctx + 'admin/act/addSetting', data.field, function (res) {
                febs.alert.success('设置成功');
            });
            return false;
        });
    });
</script>