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