| | |
| | | package com.doumee.task; |
| | | |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.core.constants.Constants; |
| | | import com.doumee.core.dingding.DingDingNotice; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.mqtt.config.MqttClientInit; |
| | | import com.doumee.core.utils.DateUtil; |
| | | import com.doumee.core.utils.HttpsUtil; |
| | | import com.doumee.core.wx.WxPayProperties; |
| | | import com.doumee.dao.business.model.Goodsorder; |
| | | import com.doumee.service.business.GoodsorderService; |
| | | import com.doumee.service.business.MemberRidesService; |
| | | import com.doumee.service.business.SitesService; |
| | | import com.doumee.service.business.WxBillService; |
| | | import com.doumee.dao.business.model.Sites; |
| | | import com.doumee.dao.system.model.SystemDictData; |
| | | import com.doumee.service.business.*; |
| | | import com.doumee.service.system.SystemDictDataService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.shiro.util.ThreadContext; |
| | | import org.apache.shiro.web.mgt.DefaultWebSecurityManager; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.scheduling.annotation.EnableScheduling; |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * 定时任务 |
| | |
| | | @Slf4j |
| | | public class ScheduleTool { |
| | | |
| | | |
| | | |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | @Autowired |
| | | private RefundService refundService; |
| | | |
| | | @Autowired |
| | | private SystemDictDataService systemDictDataService; |
| | | |
| | | @Autowired |
| | | private WxBillService wxBillService; |
| | |
| | | /** |
| | | * @throws Exception |
| | | */ |
| | | // @Scheduled(cron = "0 0 11 * * ? ") |
| | | public void syncStudent() throws Exception { |
| | | @Scheduled(cron = "0 0 10 * * ? ") |
| | | public void getWxBill() throws Exception { |
| | | //前一天的數據 |
| | | Date ydate = DateUtil.addDaysToDate(new Date(), -1); |
| | | wxBillService.getWxBill(ydate); |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 測試 |
| | | * @throws Exception |
| | |
| | | log.info("=====================开始每天自动结算======================="); |
| | | goodsorderService.autoCloseOrder(); |
| | | log.info("=====================结束每天自动结算======================="); |
| | | |
| | | } |
| | | |
| | | /** |
| | |
| | | * 30 秒刷新一次 |
| | | * @throws Exception |
| | | */ |
| | | // @Scheduled(cron = "0/30 * * * * ? ") |
| | | @Scheduled(cron = "0/15 * * * * ? ") |
| | | public void autoRefreshLockStatus() throws Exception { |
| | | <<<<<<< HEAD |
| | | log.info("=====================开始刷新骑行中的数充值未开锁失败======================="); |
| | | memberRidesService.autoRefreshLockStatus(); |
| | | log.info("=====================开始刷新骑行中的数充值未开锁失败======================="); |
| | | ======= |
| | | log.info("=====================开始定时刷新骑行中的数充值未开锁失败======================="); |
| | | memberRidesService.autoRefreshLockStatus(); |
| | | memberRidesService.autoRefreshLockStatus(); |
| | | log.info("=====================结束定时刷新骑行中的数充值未开锁失败======================="); |
| | | >>>>>>> 50c564c2568e7fb52d8dcbcbebb937a6a8284eeb |
| | | } |
| | | |
| | | |
| | |
| | | * 站点车辆满架率预警 |
| | | * @throws Exception |
| | | */ |
| | | <<<<<<< HEAD |
| | | @Scheduled(fixedDelay = 1000L * 60L * 10L) |
| | | ======= |
| | | // @Scheduled(fixedDelay = 1000L * 60L * 3L) |
| | | >>>>>>> 50c564c2568e7fb52d8dcbcbebb937a6a8284eeb |
| | | public void siteReserves() throws Exception { |
| | | log.info("=====================开始 站点车辆满架率预警======================="); |
| | | sitesService.siteReservesNotice();; |
| | | log.info("=====================结束 站点车辆满架率预警======================="); |
| | | } |
| | | /** |
| | | * 检查通信异常的站点发通知 |
| | | * @throws Exception |
| | | */ |
| | | @Scheduled(fixedDelay = 1000L * 60L * 5) |
| | | public void noticeNoLinkList() throws Exception { |
| | | log.info("=====================开始 检查通信异常的站点发通知======================="); |
| | | sitesService.noticeNoLinkList(new Sites());; |
| | | log.info("=====================结束 检查通信异常的站点发通知======================="); |
| | | } |
| | | |
| | | @Autowired |
| | | private WxPayProperties wxPayProperties; |
| | | |
| | | /** |
| | | * 更新微信 ACCESS_TOKEN |
| | | */ |
| | | // @Scheduled(fixedDelay = 1000L * 60L * 90L) |
| | | public void updAccessToken(){ |
| | | DefaultWebSecurityManager manager = new DefaultWebSecurityManager(); |
| | | ThreadContext.bind(manager); |
| | | String appId = wxPayProperties.getAppId(); |
| | | String appSecret = wxPayProperties.getAppSecret(); |
| | | if(wxPayProperties.getExistsSub() ==1){ |
| | | //如果是服务商支付,取子商户信息 |
| | | appId = StringUtils.trimToNull(wxPayProperties.getSubAppId()); |
| | | appSecret =StringUtils.trimToNull(wxPayProperties.getSubAppSecret()); |
| | | } |
| | | //生成微信token |
| | | String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+appId+"&secret="+appSecret; |
| | | String response = HttpsUtil.get(url,false); |
| | | JSONObject json = JSONObject.parseObject(response); |
| | | SystemDictData systemDictData = systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.ACCESS_TOKEN); |
| | | if(!Objects.isNull(systemDictData)){ |
| | | systemDictData.setCode(json.getString("access_token")); |
| | | systemDictData.setUpdateTime(new Date()); |
| | | systemDictDataService.updateById(systemDictData); |
| | | } |
| | | } |
| | | /** |
| | | * 更新微信 ACCESS_TOKEN |
| | | */ |
| | | @Scheduled(fixedDelay = 1000L * 60L * 90L) |
| | | public void updAccessDingdingToken() throws Exception { |
| | | DefaultWebSecurityManager manager = new DefaultWebSecurityManager(); |
| | | ThreadContext.bind(manager); |
| | | String token = DingDingNotice.getToken(systemDictDataBiz.queryByCode(Constants.DINGDING,Constants.DINGDING_APPKEY).getCode() |
| | | ,systemDictDataBiz.queryByCode(Constants.DINGDING,Constants.DINGDING_SECRET).getCode()); |
| | | if(StringUtils.isNotBlank(token)){ |
| | | SystemDictData systemDictData = systemDictDataBiz.queryByCode(Constants.DINGDING,Constants.DINGDING_TOKEN); |
| | | if(!Objects.isNull(systemDictData)){ |
| | | systemDictData.setCode(token); |
| | | systemDictData.setUpdateTime(new Date()); |
| | | systemDictDataService.updateById(systemDictData); |
| | | } |
| | | } |
| | | } |
| | | /** |
| | | * 更新微信 ACCESS_TOKEN |
| | | */ |
| | | @Scheduled(fixedDelay = 1000L * 60L ) |
| | | public void autoCancelRefunOrder(){ |
| | | log.info("=====================开始 自動取消未推送退款状态的退款单状态======================="); |
| | | goodsorderService.autoCancelRefunOrder();; |
| | | log.info("=====================结束 自動取消未推送退款状态的退款单状态======================="); |
| | | } |
| | | |
| | | |
| | | @Scheduled(fixedDelay = 1000L * 60L ) |
| | | public void autCancelGoodsOrder(){ |
| | | log.info("=====================开始 自動取消未支付订单状态======================="); |
| | | goodsorderService.autoCancelRefunOrder();; |
| | | log.info("=====================结束 自動取消未支付订单状态======================="); |
| | | } |
| | | |
| | | |
| | | } |