From d0871f4f1ce14c6b74ef8378fd41067cdd213b1a Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Mon, 08 Apr 2024 00:26:09 +0800 Subject: [PATCH] fix --- src/main/resources/templates/febs/views/modules/system/vipCenterSetting.html | 151 +++++++++++++++++++++++++++++++++++++ src/main/java/cc/mrbird/febs/vip/controller/ApiMallVipConfigController.java | 8 ++ src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java | 8 + src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java | 5 + src/main/java/cc/mrbird/febs/vip/service/IMallVipBenefitsService.java | 4 + src/main/java/cc/mrbird/febs/vip/service/impl/MallVipBenefitsServiceImpl.java | 28 ++++++ 6 files changed, 200 insertions(+), 4 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java index 34088f0..e0f0806 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java @@ -7,6 +7,7 @@ import cc.mrbird.febs.mall.entity.MallMemberPayment; import cc.mrbird.febs.mall.service.*; import cc.mrbird.febs.mall.vo.*; +import cc.mrbird.febs.vip.service.IMallVipBenefitsService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; @@ -17,6 +18,7 @@ import org.springframework.web.bind.annotation.*; import javax.validation.Valid; +import java.util.Map; /** * @author wzy @@ -33,6 +35,7 @@ private final IMallMemberWithdrawService mallMemberWithdrawService; private final IApiMallMemberWalletService walletService; private final IApiMallAgentService iApiMallAgentService; + private final IMallVipBenefitsService mallVipBenefitsService; /** * 小程序接收用户数据,更新用户信息 @@ -273,6 +276,9 @@ @ApiOperation(value = "登录事件", notes = "登录事件") @GetMapping(value = "/loginEvent") public FebsResponse loginEvent() { - return new FebsResponse().success().data(memberService.loginEvent()); + Map<String, Object> birthdayEvent = mallVipBenefitsService.birthdayEvent(); + Map<String, Object> loginEvent = memberService.loginEvent(); + loginEvent.putAll(birthdayEvent); + return new FebsResponse().success().data(loginEvent); } } diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java b/src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java index e678562..d3277d0 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java @@ -114,4 +114,9 @@ model.addAttribute("faPiaoDto", faPiaoDto); return FebsUtil.view("modules/system/faPiao"); } + + @GetMapping("vipCenterSetting") + public String vipCenterSetting() { + return FebsUtil.view("modules/system/vipCenterSetting"); + } } diff --git a/src/main/java/cc/mrbird/febs/vip/controller/ApiMallVipConfigController.java b/src/main/java/cc/mrbird/febs/vip/controller/ApiMallVipConfigController.java index 60a38ac..c00f8f1 100644 --- a/src/main/java/cc/mrbird/febs/vip/controller/ApiMallVipConfigController.java +++ b/src/main/java/cc/mrbird/febs/vip/controller/ApiMallVipConfigController.java @@ -3,6 +3,7 @@ import cc.mrbird.febs.common.controller.BaseController; import cc.mrbird.febs.common.entity.FebsResponse; +import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper; import cc.mrbird.febs.vip.entity.MallVipBenefits; import cc.mrbird.febs.vip.entity.MallVipConfig; import cc.mrbird.febs.vip.service.IMallVipBenefitsService; @@ -27,6 +28,7 @@ private final IMallVipConfigService mallVipConfigService; private final IMallVipBenefitsService mallVipBenefitsService; + private final DataDictionaryCustomMapper dataDictionaryCustomMapper; @ApiOperation(value = "获取会员等级列表") @@ -54,4 +56,10 @@ mallVipBenefitsService.getBenefits(id); return new FebsResponse().success().message("领取成功"); } + + @ApiOperation(value = "获取会员中心背景图片") + @GetMapping(value = "/findVipCenterBg") + public FebsResponse findVipCenterBg() { + return new FebsResponse().success().data(dataDictionaryCustomMapper.selectDicByType("VIP_CENTER_BACKGROUND")); + } } diff --git a/src/main/java/cc/mrbird/febs/vip/service/IMallVipBenefitsService.java b/src/main/java/cc/mrbird/febs/vip/service/IMallVipBenefitsService.java index f627dd8..764ea68 100644 --- a/src/main/java/cc/mrbird/febs/vip/service/IMallVipBenefitsService.java +++ b/src/main/java/cc/mrbird/febs/vip/service/IMallVipBenefitsService.java @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Map; + public interface IMallVipBenefitsService extends IService<MallVipBenefits> { IPage<MallVipBenefits> vipBenefitsListInPage(QueryRequest request); @@ -20,4 +22,6 @@ void getBenefits(Long id); void switchBenefitsShow(Long id); + + Map<String, Object> birthdayEvent(); } diff --git a/src/main/java/cc/mrbird/febs/vip/service/impl/MallVipBenefitsServiceImpl.java b/src/main/java/cc/mrbird/febs/vip/service/impl/MallVipBenefitsServiceImpl.java index 487441b..2b33462 100644 --- a/src/main/java/cc/mrbird/febs/vip/service/impl/MallVipBenefitsServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/vip/service/impl/MallVipBenefitsServiceImpl.java @@ -37,9 +37,8 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; -import java.util.Date; -import java.util.List; -import java.util.Objects; +import java.util.*; +import java.util.stream.Collectors; @Slf4j @Service @@ -296,4 +295,27 @@ update.setId(vipBenefits.getId()); this.baseMapper.updateById(update); } + + @Override + public Map<String, Object> birthdayEvent() { + MallMember loginUser = LoginUserUtil.getLoginUser(); + MallMember member = this.mallMemberMapper.selectById(loginUser.getId()); + + String today = DateUtil.format(new Date(), DatePattern.NORM_DATE_PATTERN); + boolean isBirthday = member.getBirthday().compareTo(DateUtil.parseDate(today)) == 0; + if (!isBirthday) { + return new HashMap<>(); + } + + MallVipConfig configList = mallVipConfigMapper.selectVipConfigByCode(member.getLevel()); + + List<MallVipBenefits> benefits = configList.getBenefits().stream().filter(item -> item.getGainType() == 2 && item.getType() != 2).collect(Collectors.toList()); + if (CollUtil.isEmpty(benefits)) { + return new HashMap<>(); + } + + Map<String, Object> map = new HashMap<>(); + map.put("benefit", benefits.get(0)); + return map; + } } diff --git a/src/main/resources/templates/febs/views/modules/system/vipCenterSetting.html b/src/main/resources/templates/febs/views/modules/system/vipCenterSetting.html new file mode 100644 index 0000000..e4499b4 --- /dev/null +++ b/src/main/resources/templates/febs/views/modules/system/vipCenterSetting.html @@ -0,0 +1,151 @@ +<div class="layui-fluid layui-anim febs-anim" id="vip-center-setting" lay-title="会员中心设置"> + <div class="layui-row layui-col-space8 febs-container"> + <form class="layui-form" action="" lay-filter="vip-center-setting-form"> + <div class="layui-card"> + <div class="layui-card-body" id="cardBody"> + + </div> + + <div class="layui-card-footer"> + <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="vip-center-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 type="text/html" id="vipCenterSettingOperate"> + {{# layui.each(d, function(index, item){ }} + <div class="layui-form-item"> + <label class="layui-form-label febs-form-item-require">{{item.description}}:</label> + <div class="layui-input-block"> + <div class="layui-upload"> + <button type="button" class="layui-btn layui-btn-normal layui-btn" id="upload-btn-{{index}}"> + 上传 + </button> + <blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;"> + <div class="layui-upload-list" id="upload-{{index}}"> + {{# if(item.value != null && item.value != '') { }} + <img src="{{item.value}}" class="layui-upload-img single-image-{{index}}" style="width: 130px"> + {{# }}} + </div> + </blockquote> + <div class="layui-word-aux">双击图片删除</div> + </div> + </div> + + <input type="text" id="thumb-{{index}}" lay-verify="required" name="{{item.code}}" + autoComplete="off" value="{{item.value}}" class="layui-input febs-hide" readOnly> + </div> + {{# }) }} +</script> +<script data-th-inline="javascript" type="text/javascript"> + layui.use(['dropdown', 'jquery', 'validate', 'febs', 'form', 'eleTree', 'laytpl', 'upload'], function () { + var $ = layui.jquery, + febs = layui.febs, + form = layui.form, + validate = layui.validate + , templateHtml = vipCenterSettingOperate.innerHTML + , $cardBody = $("#cardBody") + , laytpl = layui.laytpl + , upload = layui.upload + , $view = $('#vip-center-setting'); + + form.verify(validate); + form.render(); + + dicDataReq("VIP_CENTER_BACKGROUND"); + function dicDataReq(type) { + $cardBody.empty(); + $.get(ctx + 'admin/common/findDicByType/' + type, function (r) { + if (r.code === 200) { + var data = r.data; + laytpl(templateHtml).render(data, function(html) { + $cardBody.append(html); + }) + + for(var i = 0; i < r.data.length; i++) { + uploadFun(i); + } + } + }); + } + + form.on('submit(vip-center-setting-form-submit)', function (data) { + $.ajax({ + 'url':ctx + 'admin/system/bonusSystemSetting', + 'type':'post', + 'dataType':'json', + 'headers' : {'Content-Type' : 'application/json;charset=utf-8'}, + 'traditional': true, + 'data':JSON.stringify(data.field), + 'success':function (data) { + if (data.code == 200) { + febs.alert.success(data.message); + } + }, + 'error':function () { + febs.alert.warn('服务器繁忙'); + } + }) + return false; + }); + + function uploadFun(classIndex) { + var uploadElem = '#upload-btn-' + classIndex; + upload.render({ + elem: uploadElem + ,url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口 + ,multiple: true + ,before: function(obj){ + //预读本地文件示例,不支持ie8 + obj.preview(function(index, file, result){ + if ($("#thumb-" + classIndex).val()) { + $("#upload-"+classIndex).html('<img src="'+ result +'" alt="'+ file.name +'" class="layui-upload-img single-image" style="width: 130px">') + } else { + $("#upload-"+classIndex).append('<img src="'+ result +'" alt="'+ file.name +'" class="layui-upload-img single-image" style="width: 130px">') + } + + }); + } + ,done: function(res){ + $("#thumb-" + classIndex).val(res.data.src); + + imgUnBind(".single-image-" + classIndex); + imgSingleBind(classIndex); + } + }); + } + + function imgSingleBind(classIndex) { + $(".single-image-" + classIndex).each(function(index, element) { + $(this).on("dblclick", function() { + var imgThumb = $(".single-image-" + classIndex)[index]; + $(imgThumb).remove(); + $("#thumb-" + classIndex).val(""); + + imgUnBind(".single-image-" + classIndex); + imgSingleBind(); + }); + }) + } + function imgUnBind(className) { + $(className).each(function() { + $(this).unbind('dblclick'); + }) + } + + }); +</script> \ No newline at end of file -- Gitblit v1.9.1