From c097546cbcf46c75234768866af894e59d987bd4 Mon Sep 17 00:00:00 2001 From: Hentua <wangdoubleone@gmail.com> Date: Tue, 23 Jan 2024 03:40:52 +0800 Subject: [PATCH] fix --- src/main/java/cc/mrbird/febs/vip/controller/AdminMallVipConfigController.java | 17 ++++- src/main/resources/templates/febs/views/modules/vip/vipConfig-list.html | 27 ++++++-- src/main/java/cc/mrbird/febs/vip/service/impl/MallVipConfigServiceImpl.java | 37 ++++++++++++ src/main/java/cc/mrbird/febs/vip/entity/MallVipConfig.java | 3 + src/main/java/cc/mrbird/febs/vip/service/IMallVipConfigService.java | 4 + src/main/resources/templates/febs/views/modules/vip/vipConfig-add.html | 68 ++++++++++++++++------ 6 files changed, 126 insertions(+), 30 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/vip/controller/AdminMallVipConfigController.java b/src/main/java/cc/mrbird/febs/vip/controller/AdminMallVipConfigController.java index b2e6bbe..8e22c69 100644 --- a/src/main/java/cc/mrbird/febs/vip/controller/AdminMallVipConfigController.java +++ b/src/main/java/cc/mrbird/febs/vip/controller/AdminMallVipConfigController.java @@ -8,9 +8,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; /** * 会员配置接口类 @@ -28,4 +26,17 @@ public FebsResponse list(QueryRequest request) { return new FebsResponse().success().data(getDataTable(mallVipConfigService.vipConfigList(request))); } + + + @PostMapping(value = "/add") + public FebsResponse add(@RequestBody MallVipConfig config) { + mallVipConfigService.addVipConfig(config); + return new FebsResponse().success().message("操作成功"); + } + + @GetMapping(value = "/del/{id}") + public FebsResponse del(@PathVariable("id") Long id) { + mallVipConfigService.delVipConfig(id); + return new FebsResponse().success().message("操作成功"); + } } diff --git a/src/main/java/cc/mrbird/febs/vip/entity/MallVipConfig.java b/src/main/java/cc/mrbird/febs/vip/entity/MallVipConfig.java index 9c64424..36d3eb6 100644 --- a/src/main/java/cc/mrbird/febs/vip/entity/MallVipConfig.java +++ b/src/main/java/cc/mrbird/febs/vip/entity/MallVipConfig.java @@ -58,4 +58,7 @@ @TableField(exist = false) private List<MallVipBenefits> benefits; + + @TableField(exist = false) + private String benefitsIds; } diff --git a/src/main/java/cc/mrbird/febs/vip/service/IMallVipConfigService.java b/src/main/java/cc/mrbird/febs/vip/service/IMallVipConfigService.java index 5ca6e3b..38dfee9 100644 --- a/src/main/java/cc/mrbird/febs/vip/service/IMallVipConfigService.java +++ b/src/main/java/cc/mrbird/febs/vip/service/IMallVipConfigService.java @@ -12,4 +12,8 @@ IPage<MallVipConfig> vipConfigList(QueryRequest request); List<MallVipConfig> findConfigList(); + + void addVipConfig(MallVipConfig config); + + void delVipConfig(Long id); } diff --git a/src/main/java/cc/mrbird/febs/vip/service/impl/MallVipConfigServiceImpl.java b/src/main/java/cc/mrbird/febs/vip/service/impl/MallVipConfigServiceImpl.java index e35e9ad..d40e769 100644 --- a/src/main/java/cc/mrbird/febs/vip/service/impl/MallVipConfigServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/vip/service/impl/MallVipConfigServiceImpl.java @@ -2,15 +2,21 @@ import cc.mrbird.febs.common.entity.QueryRequest; import cc.mrbird.febs.vip.entity.MallVipConfig; +import cc.mrbird.febs.vip.entity.MallVipConfigBenefits; +import cc.mrbird.febs.vip.mapper.MallVipConfigBenefitsMapper; import cc.mrbird.febs.vip.mapper.MallVipConfigMapper; +import cc.mrbird.febs.vip.service.IMallVipConfigBenefitsService; import cc.mrbird.febs.vip.service.IMallVipConfigService; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; @@ -20,9 +26,11 @@ @RequiredArgsConstructor public class MallVipConfigServiceImpl extends ServiceImpl<MallVipConfigMapper, MallVipConfig> implements IMallVipConfigService { + private final IMallVipConfigBenefitsService mallVipConfigBenefitsService; + @Override public IPage<MallVipConfig> vipConfigList(QueryRequest request) { - Page<MallVipConfig> page = new Page<>(request.getPageNum(), request.getPageNum()); + Page<MallVipConfig> page = new Page<>(request.getPageNum(), request.getPageSize()); return this.baseMapper.findVipConfigListInPage(page); } @@ -30,4 +38,31 @@ public List<MallVipConfig> findConfigList() { return this.baseMapper.selectVipConfigList(); } + + @Override + @Transactional + public void addVipConfig(MallVipConfig config) { + this.baseMapper.insert(config); + + List<MallVipConfigBenefits> configBenefitsList = new ArrayList<>(); + List<String> benefitsIds = StrUtil.split(config.getBenefitsIds(), ','); + benefitsIds.forEach(item -> { + MallVipConfigBenefits configBenefits = new MallVipConfigBenefits(); + configBenefits.setConfigId(config.getId()); + configBenefits.setBenefitsId(Long.parseLong(item)); + configBenefitsList.add(configBenefits); + }); + + mallVipConfigBenefitsService.saveBatch(configBenefitsList); + } + + @Override + @Transactional + public void delVipConfig(Long id) { + this.baseMapper.deleteById(id); + + LambdaQueryWrapper<MallVipConfigBenefits> delQuery = new LambdaQueryWrapper<>(); + delQuery.eq(MallVipConfigBenefits::getConfigId, id); + this.mallVipConfigBenefitsService.remove(delQuery); + } } diff --git a/src/main/resources/templates/febs/views/modules/vip/vipConfig-add.html b/src/main/resources/templates/febs/views/modules/vip/vipConfig-add.html index 9b04a5c..3f3e1ef 100644 --- a/src/main/resources/templates/febs/views/modules/vip/vipConfig-add.html +++ b/src/main/resources/templates/febs/views/modules/vip/vipConfig-add.html @@ -89,12 +89,12 @@ </div> <div class="layui-col-lg6 febs-hide" id="targetShopping"> - <div class="layui-input-inline"> + <div class="layui-input-inline layui-col-lg2"> <input type="text" name="times" autocomplete="off" class="layui-input" > </div> <div class="layui-form-mid">月内,消费</div> - <div class="layui-input-inline"> - <input type="text" name="times" autocomplete="off" class="layui-input" > + <div class="layui-input-inline layui-col-lg2"> + <input type="text" name="amount" autocomplete="off" class="layui-input" > </div> <div class="layui-form-mid">金额</div> </div> @@ -103,9 +103,9 @@ <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">选择会员权益:</label> <div class="layui-input-block"> - <select name="benefitsIds" class="vip-benefits-list" id="vip-benefits-list"> - <option value="">请选择</option> - </select> +<!-- <select name="benefitsIds" class="vip-benefits-list" id="vip-benefits-list">--> +<!-- </select>--> + <div id="vip-benefits-list"></div> </div> </div> @@ -116,7 +116,7 @@ </div> <script data-th-inline="javascript"> - layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree','layedit', 'laydate', 'upload'], function () { + layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree','layedit', 'laydate', 'upload', 'xmSelect'], function () { var $ = layui.$, febs = layui.febs, layer = layui.layer, @@ -128,15 +128,30 @@ $view = $('#vipConfig-add'), validate = layui.validate; + var benefitsList = xmSelect.render({ + el: '#vip-benefits-list', + prop: { + name: 'name', + value: 'id', + }, + data: [] + }) + + //(下拉框) $.get(ctx + 'admin/vip/benefits/findAllBenefits', function (data) { var arr = data.data; - for (let i = 0; i < arr.length; i++) { - $(".vip-benefits-list").append("<option value='" + arr[i].id + "'>" + arr[i].name + "</option>"); - } - layui.use('form', function () { - var form = layui.form; - form.render(); + // for (let i = 0; i < arr.length; i++) { + // $(".vip-benefits-list").append("<option value='" + arr[i].id + "'>" + arr[i].name + "</option>"); + // } + // layui.use('form', function () { + // var form = layui.form; + // form.render(); + // }); + + benefitsList.update({ + data : data.data, + autoRow: true, }); }); @@ -144,11 +159,28 @@ formSelects.render(); form.on('submit(vipConfig-add-form-submit)', function (data) { - febs.post(ctx + 'admin/news/addNewsInfo', data.field, function () { - layer.closeAll(); - febs.alert.success('操作成功'); - $('#febs-newInfo').find('#reset').click(); - }); + data.field.benefitsIds = benefitsList.getValue('valueStr'); + $.ajax({ + 'url':ctx + 'admin/vip/config/add', + 'type':'post', + 'dataType':'json', + 'headers' : {'Content-Type' : 'application/json;charset=utf-8'}, //接口json格式 + 'traditional': true,//ajax传递数组必须添加属性 + 'data':JSON.stringify(data.field), + 'success':function (data) { + if(data.code==200){ + layer.closeAll(); + febs.alert.success(data.message); + $('#febs-vip-level').find('#reset').click(); + }else{ + febs.alert.warn(data.message); + } + }, + 'error':function () { + febs.alert.warn('服务器繁忙'); + } + }) + return false; return false; }); diff --git a/src/main/resources/templates/febs/views/modules/vip/vipConfig-list.html b/src/main/resources/templates/febs/views/modules/vip/vipConfig-list.html index 9c73002..871a4bc 100644 --- a/src/main/resources/templates/febs/views/modules/vip/vipConfig-list.html +++ b/src/main/resources/templates/febs/views/modules/vip/vipConfig-list.html @@ -40,6 +40,16 @@ <a lay-event="edit" shiro:hasPermission="vipConfig:update"><i class="layui-icon febs-edit-area febs-blue"></i></a> </script> + +<script type="text/html" id="validTypeFormat"> + {{# if(d.validType == "day") { }} + <span>日</span> + {{# } else if(d.validType == "month") { }} + <span>月</span> + {{# } else { }} + <span>年</span> + {{# } }} +</script> <!-- 表格操作栏 end --> <script data-th-inline="none" type="text/javascript"> // 引入组件并初始化 @@ -76,15 +86,15 @@ } }); } - if (layEvent === 'delBenefits') { + if (layEvent === 'delVipConfig') { febs.modal.confirm('删除', '确认删除?', function () { - delBenefits(data.id); + delVipConfig(data.id); }); } }); - function delBenefits(id) { - febs.get(ctx + 'admin/vip/benefits/delBenefits/' + id, null, function () { + function delVipConfig(id) { + febs.get(ctx + 'admin/vip/config/del/' + id, null, function () { febs.alert.success('操作成功'); $query.click(); }); @@ -123,19 +133,20 @@ cols: [[ {field: 'name', title: '会员名称', minWidth: 120, align: 'center'}, { - field: 'icon', title: '主图', + field: 'thumb', title: '主图', templet: function (d) { - return ''; + return '<a lay-event="seeImgThumb"><img id="seeImgThumb'+d.id+'" src="'+d.thumb+'" alt=""></a>'; }, minWidth: 150, align: 'center' }, {field: 'level', title: '等级', minWidth: 120, align: 'center'}, - {field: 'validType', title: '有效类型', minWidth: 120, align: 'center'}, + {field: 'validTime', title: '有效时长', minWidth: 120, align: 'center'}, + {templet:"#validTypeFormat",title: '有效类型', minWidth: 120, align: 'center'}, {field: 'type', title: '成为会员条件', minWidth: 120, align: 'center'}, { title: '操作', templet: function (d) { return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="benefitsUpdate" shiro:hasPermission="user:update">编辑</button>' - + '<button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="delBenefits" shiro:hasPermission="user:update">删除</button>' + + '<button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="delVipConfig" shiro:hasPermission="user:update">删除</button>' }, minWidth: 300, align: 'center' } ]] -- Gitblit v1.9.1