From 32185e7f8501b2cd1db3dede0bb555b4039c5ac2 Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Thu, 19 Dec 2024 10:05:09 +0800 Subject: [PATCH] feat(mall): 添加跑腿会员系统设置功能 --- src/main/java/cc/mrbird/febs/mall/controller/ViewRunVipController.java | 6 src/main/java/cc/mrbird/febs/mall/quartz/OrderOvertimeJob.java | 97 ++++------ src/main/java/cc/mrbird/febs/mall/quartz/BaiduJob.java | 77 ++++---- src/main/java/cc/mrbird/febs/mall/quartz/WxxcxJob.java | 140 +++++++-------- src/main/java/cc/mrbird/febs/mall/quartz/OrderSettlementJob.java | 95 ++++----- src/main/java/cc/mrbird/febs/common/enumerates/RunVipDataDictionaryEnum.java | 8 src/main/resources/mapper/modules/DataDictionaryCustomMapper.xml | 2 src/main/java/cc/mrbird/febs/mall/controller/AdminRunVipController.java | 8 src/main/resources/templates/febs/views/modules/runVip/systemSetting.html | 94 ++++++++++ 9 files changed, 298 insertions(+), 229 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/RunVipDataDictionaryEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/RunVipDataDictionaryEnum.java index 8304d00..0558141 100644 --- a/src/main/java/cc/mrbird/febs/common/enumerates/RunVipDataDictionaryEnum.java +++ b/src/main/java/cc/mrbird/febs/common/enumerates/RunVipDataDictionaryEnum.java @@ -6,12 +6,12 @@ public enum RunVipDataDictionaryEnum { //释放碳积分的开始结束时间 - RUN_START_TIME("RUN_START_TIME", "RUN_START_TIME"), - RUN_END_TIME("RUN_END_TIME", "RUN_END_TIME"), + RUN_START_TIME("CHARGE_TYPE", "RUN_START_TIME"), + RUN_END_TIME("CHARGE_TYPE", "RUN_END_TIME"), //充值类型 - CHARGE_TYPE_TRC("CHARGE_TYPE", "CHARGE_TYPE_TRC"), - CHARGE_TYPE_BSC("CHARGE_TYPE", "CHARGE_TYPE_BSC"), + CHARGE_TYPE_TRC("CHARGE_TYPE_TRC", "CHARGE_TYPE_TRC"), + CHARGE_TYPE_BSC("CHARGE_TYPE_BSC", "CHARGE_TYPE_BSC"), //系统充值失效时间 CHARGE_SYS_FAIL_TIME("CHARGE_TYPE", "CHARGE_SYS_FAIL_TIME"), diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminRunVipController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminRunVipController.java index 1f6aa6b..52aefd3 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/AdminRunVipController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminRunVipController.java @@ -10,6 +10,7 @@ import cc.mrbird.febs.mall.entity.RunVip; import cc.mrbird.febs.mall.mapper.MallMemberMapper; import cc.mrbird.febs.mall.service.IAdminRunVipService; +import cc.mrbird.febs.mall.service.ISystemService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; @@ -27,6 +28,13 @@ private final IAdminRunVipService iAdminRunVipService; private final MallMemberMapper mallMemberMapper; + private final ISystemService systemService; + + @PostMapping(value = "/bonusSystemSetting") + public FebsResponse bonusSystemSetting(@RequestBody Map<String, Object> map) { + systemService.bonusSystemSetting(map); + return new FebsResponse().success().message("设置成功"); + } @GetMapping(value = "/allMoneyType") public FebsResponse allMoneyType() { diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ViewRunVipController.java b/src/main/java/cc/mrbird/febs/mall/controller/ViewRunVipController.java index 995fdc1..4dc0c67 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/ViewRunVipController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewRunVipController.java @@ -46,4 +46,10 @@ return FebsUtil.view("modules/runVip/vipEdit"); } + @GetMapping("systemSetting") + @RequiresPermissions("systemSetting:view") + public String vipCenterSetting() { + return FebsUtil.view("modules/runVip/systemSetting"); + } + } diff --git a/src/main/java/cc/mrbird/febs/mall/quartz/BaiduJob.java b/src/main/java/cc/mrbird/febs/mall/quartz/BaiduJob.java index d9c2125..2f9ada8 100644 --- a/src/main/java/cc/mrbird/febs/mall/quartz/BaiduJob.java +++ b/src/main/java/cc/mrbird/febs/mall/quartz/BaiduJob.java @@ -1,14 +1,9 @@ package cc.mrbird.febs.mall.quartz; import cc.mrbird.febs.common.utils.RedisUtils; -import cc.mrbird.febs.pay.util.WechatConfigure; -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.extension.exceptions.ApiException; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.springframework.web.client.RestTemplate; @@ -24,41 +19,41 @@ @Resource RestTemplate restTemplate; - @Scheduled(cron = "0 0 1 * * ? ") - public void getAccessToken(){ - // 官网获取的 API Key 更新为你注册的 - String clientId = "MPHXcBxkGLIDOmoaahS9pIB7"; - // 官网获取的 Secret Key 更新为你注册的 - String clientSecret = "f5ueNY65fE9C6FzFTVKc6Imo8NdZSWMw"; - String authHost = "https://aip.baidubce.com/oauth/2.0/token?"; - String getAccessTokenUrl = authHost - // 1. grant_type为固定参数 - + "grant_type=client_credentials" - // 2. 官网获取的 API Key - + "&client_id=" + clientId - // 3. 官网获取的 Secret Key - + "&client_secret=" + clientSecret; - String jsonStr = restTemplate.getForObject(getAccessTokenUrl, String.class); - - /** - * 返回结果 - * {"access_token":"ACCESS_TOKEN","expires_in":7200} - */ - if (!jsonStr.contains("access_token")) { - System.out.println("获取access_token失败"); - } - JSONObject jsonObject = JSONObject.parseObject(jsonStr); - String accessToken = jsonObject.getString("access_token"); - - String accessTokenKey = WechatConfigure.BAIDU_ACCESS_TOKEN_REDIS_KEY; - if (StrUtil.isEmpty(accessToken)) { - log.error("获取baidu access_token失败: {}" , jsonObject.getString("errmsg")); - throw new ApiException("获取access token失败"); - } else { - log.info("baidu access_token : {}",accessToken); - System.out.println(accessToken); - redisUtils.set(accessTokenKey,accessToken); - } - } +// @Scheduled(cron = "0 0 1 * * ? ") +// public void getAccessToken(){ +// // 官网获取的 API Key 更新为你注册的 +// String clientId = "MPHXcBxkGLIDOmoaahS9pIB7"; +// // 官网获取的 Secret Key 更新为你注册的 +// String clientSecret = "f5ueNY65fE9C6FzFTVKc6Imo8NdZSWMw"; +// String authHost = "https://aip.baidubce.com/oauth/2.0/token?"; +// String getAccessTokenUrl = authHost +// // 1. grant_type为固定参数 +// + "grant_type=client_credentials" +// // 2. 官网获取的 API Key +// + "&client_id=" + clientId +// // 3. 官网获取的 Secret Key +// + "&client_secret=" + clientSecret; +// String jsonStr = restTemplate.getForObject(getAccessTokenUrl, String.class); +// +// /** +// * 返回结果 +// * {"access_token":"ACCESS_TOKEN","expires_in":7200} +// */ +// if (!jsonStr.contains("access_token")) { +// System.out.println("获取access_token失败"); +// } +// JSONObject jsonObject = JSONObject.parseObject(jsonStr); +// String accessToken = jsonObject.getString("access_token"); +// +// String accessTokenKey = WechatConfigure.BAIDU_ACCESS_TOKEN_REDIS_KEY; +// if (StrUtil.isEmpty(accessToken)) { +// log.error("获取baidu access_token失败: {}" , jsonObject.getString("errmsg")); +// throw new ApiException("获取access token失败"); +// } else { +// log.info("baidu access_token : {}",accessToken); +// System.out.println(accessToken); +// redisUtils.set(accessTokenKey,accessToken); +// } +// } } diff --git a/src/main/java/cc/mrbird/febs/mall/quartz/OrderOvertimeJob.java b/src/main/java/cc/mrbird/febs/mall/quartz/OrderOvertimeJob.java index e408b37..d9197bc 100644 --- a/src/main/java/cc/mrbird/febs/mall/quartz/OrderOvertimeJob.java +++ b/src/main/java/cc/mrbird/febs/mall/quartz/OrderOvertimeJob.java @@ -1,21 +1,10 @@ package cc.mrbird.febs.mall.quartz; -import cc.mrbird.febs.common.enumerates.OrderStatusEnum; -import cc.mrbird.febs.common.exception.FebsException; -import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.mapper.*; -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.date.DateUnit; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.ObjectUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; - -import java.util.Date; -import java.util.List; /** * @author wzy @@ -44,51 +33,51 @@ @Autowired private MallMemberCouponMapper mallMemberCouponMapper; - @Scheduled(cron = "0 0/5 * * * ? ") - public void overtimeJob() { - log.info("订单超时任务执行"); - List<MallOrderInfo> orderList = orderInfoMapper.selectOrderInfoUpTime(OrderStatusEnum.WAIT_PAY.getValue()); - if (CollUtil.isNotEmpty(orderList)) { - for (MallOrderInfo orderInfo : orderList) { - //更新订单状态 - orderInfo.setStatus(OrderStatusEnum.CANCEL.getValue()); - orderInfo.setCancelType(MallOrderInfo.CANCEL_OVERTIME_NO_PAY); - orderInfoMapper.updateById(orderInfo); - - List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(orderInfo.getId()); - if(CollUtil.isNotEmpty(mallOrderItemList)){ - for(MallOrderItem mallOrderItem : mallOrderItemList){ - MallGoodsSku sku = mallGoodsSkuMapper.selectSkuInfoById(mallOrderItem.getSkuId()); - if (sku == null) { - throw new FebsException("购买商品或sku不存在"); - } - -// if (sku.getStock() < mallOrderItem.getCnt()) { +// @Scheduled(cron = "0 0/5 * * * ? ") +// public void overtimeJob() { +// log.info("订单超时任务执行"); +// List<MallOrderInfo> orderList = orderInfoMapper.selectOrderInfoUpTime(OrderStatusEnum.WAIT_PAY.getValue()); +// if (CollUtil.isNotEmpty(orderList)) { +// for (MallOrderInfo orderInfo : orderList) { +// //更新订单状态 +// orderInfo.setStatus(OrderStatusEnum.CANCEL.getValue()); +// orderInfo.setCancelType(MallOrderInfo.CANCEL_OVERTIME_NO_PAY); +// orderInfoMapper.updateById(orderInfo); +// +// List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(orderInfo.getId()); +// if(CollUtil.isNotEmpty(mallOrderItemList)){ +// for(MallOrderItem mallOrderItem : mallOrderItemList){ +// MallGoodsSku sku = mallGoodsSkuMapper.selectSkuInfoById(mallOrderItem.getSkuId()); +// if (sku == null) { +// throw new FebsException("购买商品或sku不存在"); +// } +// +//// if (sku.getStock() < mallOrderItem.getCnt()) { +//// throw new FebsException(sku.getSkuName() + "库存不足"); +//// } +// +// MallGoods mallGoods = mallGoodsMapper.selectById(sku.getGoodsId()); +// Integer goodsResult = mallGoodsMapper.updateStockAndVolumeByGoodsId(mallGoods.getId(), mallOrderItem.getCnt()); +// if(1 != goodsResult){ +// throw new FebsException(mallGoods.getGoodsName() + "库存不足"); +// } +// +// Integer skuResult = mallGoodsSkuMapper.updateStockAndVolumeBySkuId(sku.getId(),mallOrderItem.getCnt()); +// if(1 != skuResult){ // throw new FebsException(sku.getSkuName() + "库存不足"); // } - - MallGoods mallGoods = mallGoodsMapper.selectById(sku.getGoodsId()); - Integer goodsResult = mallGoodsMapper.updateStockAndVolumeByGoodsId(mallGoods.getId(), mallOrderItem.getCnt()); - if(1 != goodsResult){ - throw new FebsException(mallGoods.getGoodsName() + "库存不足"); - } - - Integer skuResult = mallGoodsSkuMapper.updateStockAndVolumeBySkuId(sku.getId(),mallOrderItem.getCnt()); - if(1 != skuResult){ - throw new FebsException(sku.getSkuName() + "库存不足"); - } - Long memberCouponId = mallOrderItem.getMemberCouponId(); - MallMemberCoupon mallMemberCoupon = mallMemberCouponMapper.selectById(memberCouponId); - if(ObjectUtil.isNotEmpty(mallMemberCoupon)){ - mallMemberCoupon.setState(1); - mallMemberCouponMapper.updateById(mallMemberCoupon); - } - } - } - } - } - - } +// Long memberCouponId = mallOrderItem.getMemberCouponId(); +// MallMemberCoupon mallMemberCoupon = mallMemberCouponMapper.selectById(memberCouponId); +// if(ObjectUtil.isNotEmpty(mallMemberCoupon)){ +// mallMemberCoupon.setState(1); +// mallMemberCouponMapper.updateById(mallMemberCoupon); +// } +// } +// } +// } +// } +// +// } // @Scheduled(cron = "0/5 * * * * ? ") // public void wakeup() { diff --git a/src/main/java/cc/mrbird/febs/mall/quartz/OrderSettlementJob.java b/src/main/java/cc/mrbird/febs/mall/quartz/OrderSettlementJob.java index 7a742cb..f0a94da 100644 --- a/src/main/java/cc/mrbird/febs/mall/quartz/OrderSettlementJob.java +++ b/src/main/java/cc/mrbird/febs/mall/quartz/OrderSettlementJob.java @@ -1,24 +1,15 @@ package cc.mrbird.febs.mall.quartz; -import cc.mrbird.febs.common.enumerates.DataDictionaryEnum; -import cc.mrbird.febs.mall.entity.DataDictionaryCustom; -import cc.mrbird.febs.mall.entity.MallOrderInfo; import cc.mrbird.febs.mall.mapper.*; import cc.mrbird.febs.mall.service.IApiMallMemberWalletService; import cc.mrbird.febs.mall.service.IMallAchieveService; import cc.mrbird.febs.mall.service.IMallMoneyFlowService; import cc.mrbird.febs.mall.service.IMemberProfitService; import cc.mrbird.febs.rabbit.producter.AgentProducer; -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.date.DateUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; - -import java.util.Date; -import java.util.List; /** * @author wzy @@ -100,49 +91,49 @@ /** * 自动确认收货 */ - @Scheduled(cron = "0 0 0 * * ?") - -// @Scheduled(cron = "1 * * * * ?") - public void orderAutoConfirmJob() { - log.info("自动确认收货"); - DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.OEDER_AUTO_CONFIRM.getType(), DataDictionaryEnum.OEDER_AUTO_CONFIRM.getCode()); - Integer value = Integer.parseInt(dic.getValue()); - List<MallOrderInfo> orderInfos = mallOrderInfoMapper.selectOrderByStatusAndPayTime(3,DateUtil.offsetDay(new Date(), -value)); - if(CollUtil.isNotEmpty(orderInfos)){ -// for(MallOrderInfo orderInfo : orderInfos){ -// MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(orderInfo.getTakeUniqueCode()); -// Integer profitSwitch = mallTeamLeader.getProfitSwitch()==null?2:mallTeamLeader.getProfitSwitch(); -// if(1 == profitSwitch){ -// BigDecimal bonusPercent =new BigDecimal(mallTeamLeader.getBonusPercent()==null?"0":mallTeamLeader.getBonusPercent()); -//// DataDictionaryCustom dicBonusPercent = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.BONUS_PERCENT.getType(), DataDictionaryEnum.BONUS_PERCENT.getCode()); -//// BigDecimal bonusPercent = new BigDecimal(dicBonusPercent.getValue()).setScale(2,BigDecimal.ROUND_DOWN); -// //生成一条团长提成记录 -// Long id = orderInfo.getId(); -// List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(id); -// if(CollUtil.isNotEmpty(mallOrderItemList)){ -// for(MallOrderItem mallOrderItem : mallOrderItemList){ -// Integer state = mallOrderItem.getState() == null ? 1 : mallOrderItem.getState(); -// if(1 == state){ -// MallLeaderAchieve mallLeaderAchieve = new MallLeaderAchieve(); -// mallLeaderAchieve.setMemberId(orderInfo.getMemberId()); -// mallLeaderAchieve.setOrderNo(orderInfo.getOrderNo()); -// mallLeaderAchieve.setOrderItemId(mallOrderItem.getId()); -// BigDecimal itemAmount = mallOrderItem.getAmount(); -// mallLeaderAchieve.setAmount(itemAmount); -// BigDecimal bigDecimal = bonusPercent.multiply(itemAmount).setScale(2, BigDecimal.ROUND_DOWN); -// mallLeaderAchieve.setProfitAmount(bigDecimal); -// mallLeaderAchieve.setUniqueCode(orderInfo.getTakeUniqueCode()); -// mallLeaderAchieve.setState(MallLeaderAchieve.STATE_ONE); -// mallLeaderAchieveMapper.insert(mallLeaderAchieve); -// } -// } -// } -// } -// } - mallOrderInfoMapper.updateOrderConfirmStatus(DateUtil.date(),DateUtil.offsetDay(new Date(), -value)); - - } - } +// @Scheduled(cron = "0 0 0 * * ?") +// +//// @Scheduled(cron = "1 * * * * ?") +// public void orderAutoConfirmJob() { +// log.info("自动确认收货"); +// DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.OEDER_AUTO_CONFIRM.getType(), DataDictionaryEnum.OEDER_AUTO_CONFIRM.getCode()); +// Integer value = Integer.parseInt(dic.getValue()); +// List<MallOrderInfo> orderInfos = mallOrderInfoMapper.selectOrderByStatusAndPayTime(3,DateUtil.offsetDay(new Date(), -value)); +// if(CollUtil.isNotEmpty(orderInfos)){ +//// for(MallOrderInfo orderInfo : orderInfos){ +//// MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(orderInfo.getTakeUniqueCode()); +//// Integer profitSwitch = mallTeamLeader.getProfitSwitch()==null?2:mallTeamLeader.getProfitSwitch(); +//// if(1 == profitSwitch){ +//// BigDecimal bonusPercent =new BigDecimal(mallTeamLeader.getBonusPercent()==null?"0":mallTeamLeader.getBonusPercent()); +////// DataDictionaryCustom dicBonusPercent = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.BONUS_PERCENT.getType(), DataDictionaryEnum.BONUS_PERCENT.getCode()); +////// BigDecimal bonusPercent = new BigDecimal(dicBonusPercent.getValue()).setScale(2,BigDecimal.ROUND_DOWN); +//// //生成一条团长提成记录 +//// Long id = orderInfo.getId(); +//// List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(id); +//// if(CollUtil.isNotEmpty(mallOrderItemList)){ +//// for(MallOrderItem mallOrderItem : mallOrderItemList){ +//// Integer state = mallOrderItem.getState() == null ? 1 : mallOrderItem.getState(); +//// if(1 == state){ +//// MallLeaderAchieve mallLeaderAchieve = new MallLeaderAchieve(); +//// mallLeaderAchieve.setMemberId(orderInfo.getMemberId()); +//// mallLeaderAchieve.setOrderNo(orderInfo.getOrderNo()); +//// mallLeaderAchieve.setOrderItemId(mallOrderItem.getId()); +//// BigDecimal itemAmount = mallOrderItem.getAmount(); +//// mallLeaderAchieve.setAmount(itemAmount); +//// BigDecimal bigDecimal = bonusPercent.multiply(itemAmount).setScale(2, BigDecimal.ROUND_DOWN); +//// mallLeaderAchieve.setProfitAmount(bigDecimal); +//// mallLeaderAchieve.setUniqueCode(orderInfo.getTakeUniqueCode()); +//// mallLeaderAchieve.setState(MallLeaderAchieve.STATE_ONE); +//// mallLeaderAchieveMapper.insert(mallLeaderAchieve); +//// } +//// } +//// } +//// } +//// } +// mallOrderInfoMapper.updateOrderConfirmStatus(DateUtil.date(),DateUtil.offsetDay(new Date(), -value)); +// +// } +// } /** * 团长第二天才会结算前一天的所有提成 * 从团长业绩表中查询出前一天的所有已完成订单金额*提成系数,得到今日提成 diff --git a/src/main/java/cc/mrbird/febs/mall/quartz/WxxcxJob.java b/src/main/java/cc/mrbird/febs/mall/quartz/WxxcxJob.java index 2609206..8d19095 100644 --- a/src/main/java/cc/mrbird/febs/mall/quartz/WxxcxJob.java +++ b/src/main/java/cc/mrbird/febs/mall/quartz/WxxcxJob.java @@ -1,94 +1,80 @@ package cc.mrbird.febs.mall.quartz; -import cc.mrbird.febs.common.properties.XcxProperties; -import cc.mrbird.febs.common.utils.RedisUtils; -import cc.mrbird.febs.common.utils.SpringContextHolder; -import cc.mrbird.febs.mall.entity.MallMemberCoupon; -import cc.mrbird.febs.mall.mapper.MallMemberCouponMapper; -import cc.mrbird.febs.mall.service.MallInvoiceService; -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.date.DateUtil; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; -import org.springframework.web.client.RestTemplate; - -import javax.annotation.Resource; -import java.util.List; @Slf4j @Component @ConditionalOnProperty(prefix = "system", name = "job", havingValue = "true") public class WxxcxJob { - private final XcxProperties xcxProperties = SpringContextHolder.getBean(XcxProperties.class); - - @Autowired - private RedisUtils redisUtils; - @Autowired - private MallMemberCouponMapper mallMemberCouponMapper; - @Autowired - private MallInvoiceService mallInvoiceService; - @Resource - RestTemplate restTemplate; +// private final XcxProperties xcxProperties = SpringContextHolder.getBean(XcxProperties.class); +// // @Autowired -// private SpringContextHolder springContextHolder; - /** - * 获取access_token - * 有效期两小时 - */ -// @Scheduled(cron = "0 0 0/1 * * ? ") -// public void getAccessToken() throws IOException { -// log.info("执行access_token刷新"); -// String appId = xcxProperties.getXcxAppid(); -// String appSecret = xcxProperties.getXcxSecret(); -// String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appId + "&secret=" + appSecret; -// String jsonStr = restTemplate.getForObject(url, String.class); -// -// /** -// * 返回结果 -// * {"access_token":"ACCESS_TOKEN","expires_in":7200} -// */ -// if (!jsonStr.contains("access_token")) { -// System.out.println("获取微信access_token失败"); -// } -// -// String accessTokenKey = WechatConfigure.WX_ACCESS_TOKEN_REDIS_KEY; -// JSONObject jsonObject = JSONObject.parseObject(jsonStr); -// String accessToken = jsonObject.getString(accessTokenKey); -// if (StrUtil.isEmpty(accessToken)) { -// log.error("获取access token失败: {}" , jsonObject.getString("errmsg")); -// throw new ApiException("获取access token失败"); -// } else { -// log.info("wx access_token : {}",accessToken); -// redisUtils.set(accessTokenKey,accessToken); -// } -// -// } - - @Scheduled(cron = "0 0 0/1 * * ? ") - public void expireCoupon() { - List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectListByExpireTime(DateUtil.date()); - if(CollUtil.isEmpty(mallMemberCoupons)){ - return; - } - for(MallMemberCoupon mallMemberCoupon : mallMemberCoupons){ - mallMemberCoupon.setState(3); - mallMemberCouponMapper.updateById(mallMemberCoupon); - } - - } - +// private RedisUtils redisUtils; +// @Autowired +// private MallMemberCouponMapper mallMemberCouponMapper; +// @Autowired +// private MallInvoiceService mallInvoiceService; +// @Resource +// RestTemplate restTemplate; +//// @Autowired +//// private SpringContextHolder springContextHolder; // /** -// * 更新发票记录表数据 -// * 定时,每天凌晨一点 -// * 已完成的订单,更新到发票记录中 +// * 获取access_token +// * 有效期两小时 // */ -// @Scheduled(cron = "0 0 1 * * ?") -// public void mallInvoiceJob() { -// mallInvoiceService.mallInvoiceJob(); +//// @Scheduled(cron = "0 0 0/1 * * ? ") +//// public void getAccessToken() throws IOException { +//// log.info("执行access_token刷新"); +//// String appId = xcxProperties.getXcxAppid(); +//// String appSecret = xcxProperties.getXcxSecret(); +//// String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appId + "&secret=" + appSecret; +//// String jsonStr = restTemplate.getForObject(url, String.class); +//// +//// /** +//// * 返回结果 +//// * {"access_token":"ACCESS_TOKEN","expires_in":7200} +//// */ +//// if (!jsonStr.contains("access_token")) { +//// System.out.println("获取微信access_token失败"); +//// } +//// +//// String accessTokenKey = WechatConfigure.WX_ACCESS_TOKEN_REDIS_KEY; +//// JSONObject jsonObject = JSONObject.parseObject(jsonStr); +//// String accessToken = jsonObject.getString(accessTokenKey); +//// if (StrUtil.isEmpty(accessToken)) { +//// log.error("获取access token失败: {}" , jsonObject.getString("errmsg")); +//// throw new ApiException("获取access token失败"); +//// } else { +//// log.info("wx access_token : {}",accessToken); +//// redisUtils.set(accessTokenKey,accessToken); +//// } +//// +//// } +// +// @Scheduled(cron = "0 0 0/1 * * ? ") +// public void expireCoupon() { +// List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectListByExpireTime(DateUtil.date()); +// if(CollUtil.isEmpty(mallMemberCoupons)){ +// return; +// } +// for(MallMemberCoupon mallMemberCoupon : mallMemberCoupons){ +// mallMemberCoupon.setState(3); +// mallMemberCouponMapper.updateById(mallMemberCoupon); +// } +// // } +// +//// /** +//// * 更新发票记录表数据 +//// * 定时,每天凌晨一点 +//// * 已完成的订单,更新到发票记录中 +//// */ +//// @Scheduled(cron = "0 0 1 * * ?") +//// public void mallInvoiceJob() { +//// mallInvoiceService.mallInvoiceJob(); +//// } } diff --git a/src/main/resources/mapper/modules/DataDictionaryCustomMapper.xml b/src/main/resources/mapper/modules/DataDictionaryCustomMapper.xml index 72da31a..7ca6ad1 100644 --- a/src/main/resources/mapper/modules/DataDictionaryCustomMapper.xml +++ b/src/main/resources/mapper/modules/DataDictionaryCustomMapper.xml @@ -3,7 +3,7 @@ <mapper namespace="cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper"> <select id="selectDicByType" resultType="cc.mrbird.febs.mall.entity.DataDictionaryCustom"> - select * from data_dictionary_custom where type=#{type} + select * from data_dictionary_custom where type=#{type} ORDER by code asc </select> <select id="getPayMethodListInPage" resultType="cc.mrbird.febs.mall.vo.AdminPayMethodVo"> diff --git a/src/main/resources/templates/febs/views/modules/runVip/systemSetting.html b/src/main/resources/templates/febs/views/modules/runVip/systemSetting.html new file mode 100644 index 0000000..45c58f7 --- /dev/null +++ b/src/main/resources/templates/febs/views/modules/runVip/systemSetting.html @@ -0,0 +1,94 @@ +<div class="layui-fluid layui-anim febs-anim" id="system-setting" lay-title="参数设置"> + <div class="layui-row layui-col-space8 febs-container"> + <form class="layui-form" action="" lay-filter="system-setting-form"> + <div class="layui-card"> + <div class="layui-card-body" id="setBody"> + + </div> + + <div class="layui-card-footer"> + <button class="layui-btn layui-btn-normal save-btn" lay-submit="" lay-filter="system-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; + } + .save-btn{ + display: block; + margin: 0 auto; + } +</style> +<script type="text/html" id="systemSettingOperate"> + {{# layui.each(d, function(index, item){ }} + <div class="layui-form-item"> + <div class="layui-col-lg6"> + <label class="layui-form-label febs-form-item-require">参数{{item.id}}:</label> + <div class="layui-input-block"> + <input type="text" name="{{item.code}}" value="{{item.value}}" lay-verify="required" autocomplete="off" class="layui-input" > + <div class="layui-form-mid layui-word-aux">{{item.description}}。</div> + </div> + </div> + </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 = systemSettingOperate.innerHTML + , $setBody = $("#setBody") + , laytpl = layui.laytpl + , upload = layui.upload + , $view = $('#system-setting'); + + form.verify(validate); + form.render(); + + dicDataReq("CHARGE_TYPE"); + function dicDataReq(type) { + $setBody.empty(); + $.get(ctx + 'admin/common/findDicByType/' + type, function (r) { + if (r.code === 200) { + var data = r.data; + laytpl(templateHtml).render(data, function(html) { + $setBody.append(html); + }) + } + }); + } + + form.on('submit(system-setting-form-submit)', function (data) { + $.ajax({ + 'url':ctx + 'admin/runVip/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; + }); + }); +</script> \ No newline at end of file -- Gitblit v1.9.1