src/main/java/cc/mrbird/febs/mall/controller/AdminMallActController.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/controller/ViewMallActController.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/dto/LuckDrawSettingDto.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/service/IAdminMallActService.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallActServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallActServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
src/main/resources/templates/febs/views/modules/act/setting.html | ●●●●● 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>