From 4ecf121014d293a1e5a85fb50b71c5da7f6b619f Mon Sep 17 00:00:00 2001 From: Administrator <513693417@qq.com> Date: Mon, 21 Sep 2020 22:19:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application-druid.yml | 2 +- .../controller/BizMemberController.java | 1 + .../business/mapper/BizAccountMapper.java | 9 ++ .../business/service/IBizAccountService.java | 8 + .../service/impl/BizAccountServiceImpl.java | 15 ++ .../com/ruoyi/business/task/BusinessTask.java | 146 ++++++++++++++++++ .../mapper/business/BizAccountMapper.xml | 8 + .../mapper/business/BizMemberMapper.xml | 2 +- 8 files changed, 189 insertions(+), 2 deletions(-) create mode 100644 ruoyi-business/src/main/java/com/ruoyi/business/task/BusinessTask.java diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml index cf6ee8248..f37f3f3f3 100644 --- a/ruoyi-admin/src/main/resources/application-druid.yml +++ b/ruoyi-admin/src/main/resources/application-druid.yml @@ -6,7 +6,7 @@ spring: druid: # 主库数据源 master: - url: jdbc:mysql://www.ks1.top:20336/Bizz?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + url: jdbc:mysql://www.ks1.top:20336/Bizz?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true username: root password: 123456 #url: jdbc:mysql://101.200.139.69:3306/majiang?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 diff --git a/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizMemberController.java b/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizMemberController.java index 4f002b9e7..a718c9e01 100644 --- a/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizMemberController.java +++ b/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizMemberController.java @@ -5,6 +5,7 @@ import com.ruoyi.business.domain.BizMember; import com.ruoyi.business.service.IBizAccountService; import com.ruoyi.business.service.IBizMemberService; import com.ruoyi.business.service.IBizProductService; +import com.ruoyi.business.task.BusinessTask; import com.ruoyi.business.utils.Encrypt; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; diff --git a/ruoyi-business/src/main/java/com/ruoyi/business/mapper/BizAccountMapper.java b/ruoyi-business/src/main/java/com/ruoyi/business/mapper/BizAccountMapper.java index 59e08e2ea..301d06ef2 100644 --- a/ruoyi-business/src/main/java/com/ruoyi/business/mapper/BizAccountMapper.java +++ b/ruoyi-business/src/main/java/com/ruoyi/business/mapper/BizAccountMapper.java @@ -76,4 +76,13 @@ public interface BizAccountMapper * @return 结果 */ public int insertBizAccountDetail(BizAccountDetail bizAccountDetail); + + /** + * 清空福豆田 + * + * @param + * @return + */ + public void clearAllDouField(); + } diff --git a/ruoyi-business/src/main/java/com/ruoyi/business/service/IBizAccountService.java b/ruoyi-business/src/main/java/com/ruoyi/business/service/IBizAccountService.java index a1e9c6e23..aa2299463 100644 --- a/ruoyi-business/src/main/java/com/ruoyi/business/service/IBizAccountService.java +++ b/ruoyi-business/src/main/java/com/ruoyi/business/service/IBizAccountService.java @@ -76,4 +76,12 @@ public interface IBizAccountService * @return boolean */ public boolean accountChange(Long memberID, int accountType, int detailType, Long money, String businessInfo, String desc); + + /** + * 清空福豆田 + * + * @param + * @return + */ + public void clearAllDouField(); } diff --git a/ruoyi-business/src/main/java/com/ruoyi/business/service/impl/BizAccountServiceImpl.java b/ruoyi-business/src/main/java/com/ruoyi/business/service/impl/BizAccountServiceImpl.java index f5a13f5ed..fdd0d8d22 100644 --- a/ruoyi-business/src/main/java/com/ruoyi/business/service/impl/BizAccountServiceImpl.java +++ b/ruoyi-business/src/main/java/com/ruoyi/business/service/impl/BizAccountServiceImpl.java @@ -12,6 +12,7 @@ import com.ruoyi.common.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.common.core.text.Convert; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; @@ -158,4 +159,18 @@ public class BizAccountServiceImpl implements IBizAccountService bizAccountMapper.insertBizAccountDetail(detail); return true; } + + /** + * 清空福豆田 + * + * @param + * @return + */ + @Override + @Transactional + public void clearAllDouField() + { + + bizAccountMapper.clearAllDouField(); + } } diff --git a/ruoyi-business/src/main/java/com/ruoyi/business/task/BusinessTask.java b/ruoyi-business/src/main/java/com/ruoyi/business/task/BusinessTask.java new file mode 100644 index 000000000..f2125ad6f --- /dev/null +++ b/ruoyi-business/src/main/java/com/ruoyi/business/task/BusinessTask.java @@ -0,0 +1,146 @@ +package com.ruoyi.business.task; + +import com.ruoyi.business.domain.BizAccountDetail; +import com.ruoyi.business.mapper.BizAccountMapper; +import com.ruoyi.business.service.IBizAccountService; +import com.ruoyi.business.service.IBizMemberService; +import com.ruoyi.framework.util.LogUtils; +import com.ruoyi.system.domain.SysDictData; +import com.ruoyi.system.utils.DictUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Calendar; +import java.util.List; + +/** + * 定时任务调度 + * + * @author ruoyi + */ +@Component("businessTask") +public class BusinessTask { + + @Autowired + private IBizMemberService bizMemberService; + + @Autowired + private IBizAccountService bizAccountService; + + /** + 执行每日定时任务 + */ + public void doTask() + { + //每日清空福豆田 + doClearField(); + //判断节假日 + if (isInHoliday()) { + LogUtils.getAccessLog().info("======今日休息,不执行福豆相关任务======"); + return; + } + LogUtils.getAccessLog().info("======今日非休息日,开始执行福豆相关任务======"); + + //专项划拨任务 + doSpecialTask(); + + //团队福豆分成任务 + doTeamTask(); + + LogUtils.getAccessLog().info("======今日所有任务执行完成======"); + } + + //福豆田清零任务 + private void doClearField() + { + try { + bizAccountService.clearAllDouField(); + LogUtils.getAccessLog().info("======执行福豆田清零任务完成======"); + } catch (Exception ex) { + ex.printStackTrace(); + LogUtils.getAccessLog().error("======执行福豆田清零任务出错======" + ex.getMessage()); + } + } + + //专项划拨任务 + private void doSpecialTask() + { + try { + int dailyAmount = Integer.parseInt(DictUtils.getDictLabel("busi_award_set", "2")); + + + LogUtils.getAccessLog().info("======执行专项划拨任务完成======"); + } catch (Exception ex) { + ex.printStackTrace(); + LogUtils.getAccessLog().error("======执行专项划拨任务出错======" + ex.getMessage()); + } + } + + //团队福豆分成任务 + private void doTeamTask() + { + try { + int numLimit = Integer.parseInt(DictUtils.getDictLabel("busi_award_set", "1")); + + + LogUtils.getAccessLog().info("======执行团队福豆分成任务完成======"); + } catch (Exception ex) { + ex.printStackTrace(); + LogUtils.getAccessLog().error("======执行团队福豆分成任务出错======" + ex.getMessage()); + } + } + + //是否节假日(不结算) + public static boolean isInHoliday(int ... monthDayWeek) + { + Calendar now = Calendar.getInstance(); + int month, day, weekday; + if (monthDayWeek.length > 0) { + month = monthDayWeek[0]; + } else { + month = now.get(Calendar.MONTH) + 1; + } + if (monthDayWeek.length > 1) { + day = monthDayWeek[1]; + } else { + day = now.get(Calendar.DAY_OF_MONTH); + } + if (monthDayWeek.length > 2) { + weekday = monthDayWeek[2]; + } else { + weekday = now.get(Calendar.DAY_OF_WEEK); + } + //字典配置 + List holidays = DictUtils.getDictCache("busi_holidays"); + List workdays = DictUtils.getDictCache("busi_workdays"); + //节假日 + if (holidays != null && isInDictDays(holidays, month, day)) return true; + //工作日 + if (workdays != null && isInDictDays(workdays, month, day)) return false; + //普通的周六周日 + return weekday == Calendar.SUNDAY || weekday == Calendar.SATURDAY; + } + + //是否在设定范围内 + public static boolean isInDictDays(List days, int month, int day) { + for (SysDictData data : days) { + String label = data.getDictLabel(); + String[] split = label.split("-"); + String begin = split[0]; + String end = split.length > 1 ? split[1] : begin; + String[] beginStr = begin.split("[.]"); + int beginMonth = Integer.parseInt(beginStr[0]); + int beginDay = Integer.parseInt(beginStr[1]); + String[] endStr = end.split("[.]"); + int endMonth = Integer.parseInt(endStr[0]); + int endDay = Integer.parseInt(endStr[1]); + if (month >= beginMonth && month <= endMonth && day >= beginDay && day <= endDay) { + return true; + } + } + return false; + } + +} + diff --git a/ruoyi-business/src/main/resources/mapper/business/BizAccountMapper.xml b/ruoyi-business/src/main/resources/mapper/business/BizAccountMapper.xml index 4ea29f079..cb30a075e 100644 --- a/ruoyi-business/src/main/resources/mapper/business/BizAccountMapper.xml +++ b/ruoyi-business/src/main/resources/mapper/business/BizAccountMapper.xml @@ -143,4 +143,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{updateTime}, + + + insert into biz_account_detail(member_id,account_id,account_type,change_type,type_detail,amount,before_amount,after_amount,create_time) + select member_id,id,account_type,-1,4,-amount,amount,0,now() + from biz_account + where account_type = 4 and amount > 0; + update biz_account set amount = 0 where account_type = 4 and amount > 0; + \ No newline at end of file diff --git a/ruoyi-business/src/main/resources/mapper/business/BizMemberMapper.xml b/ruoyi-business/src/main/resources/mapper/business/BizMemberMapper.xml index 8e62e42b1..e6379d1cf 100644 --- a/ruoyi-business/src/main/resources/mapper/business/BizMemberMapper.xml +++ b/ruoyi-business/src/main/resources/mapper/business/BizMemberMapper.xml @@ -137,7 +137,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join biz_order b on a.id = b.member_id and b.order_status > 0 and b.is_team = 1 left join biz_order_detail c on c.order_id = b.id and c.product_id = #{productId} - where recommend_all_id like concat('%,', #{memberID}, ',%') + where concat(',', recommend_all_id, ',') like concat('%,', #{memberID}, ',%') group by a.id,a.member_name,a.recommend_id