From 945a278393bef3adc650fba5bc050b82535d5f19 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期三, 11 十月 2023 10:31:15 +0800
Subject: [PATCH] 111
---
server/services/src/main/java/com/doumee/service/business/impl/SitesServiceImpl.java | 98 ++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 96 insertions(+), 2 deletions(-)
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/SitesServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/SitesServiceImpl.java
index 95be646..7e7b37e 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/SitesServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/SitesServiceImpl.java
@@ -1,20 +1,37 @@
package com.doumee.service.business.impl;
+import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.core.constants.Constants;
+import com.doumee.core.dingding.DingDingNotice;
+import com.doumee.core.constants.Constants;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.LocksMapper;
import com.doumee.dao.business.SitesMapper;
+import com.doumee.dao.business.model.Locks;
import com.doumee.dao.business.model.Sites;
import com.doumee.service.business.SitesService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.checkerframework.checker.units.qual.C;
+import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
+import java.math.BigDecimal;
+import java.util.Date;
import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
/**
* 绔欑偣淇℃伅琛⊿ervice瀹炵幇
@@ -27,8 +44,35 @@
@Autowired
private SitesMapper sitesMapper;
+ @Autowired
+ private LocksMapper locksMapper;
+
+ @Autowired
+ private SystemDictDataBiz systemDictDataBiz;
+
@Override
public String create(Sites sites) {
+ LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+
+ QueryWrapper<Sites> wrapper = new QueryWrapper<>();
+ wrapper.lambda()
+ .eq(Sites::getCode,sites.getCode());
+ Integer count = sitesMapper.selectCount(wrapper);
+ if (count > 0){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"绔欑偣缂栧彿宸插瓨鍦�");
+ }
+ Sites insert = new Sites();
+ insert.setCreateDate(new Date());
+ insert.setCreator(principal.getId());
+ insert.setEditDate(new Date());
+ insert.setEditor(principal.getId());
+ insert.setIsdeleted(Constants.ZERO);
+ insert.setInfo(sites.getInfo());
+ insert.setName(sites.getName());
+ insert.setCode(sites.getCode());
+ insert.setStatus(sites.getStatus());
+ insert.setLockNum(sites.getLockNum());
+ insert.setIp(sites.getIp());
sitesMapper.insert(sites);
return sites.getId();
}
@@ -54,7 +98,14 @@
@Override
public void updateById(Sites sites) {
- sitesMapper.updateById(sites);
+ LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ Sites update = new Sites();
+ update.setCreateDate(new Date());
+ update.setEditor(principal.getId());
+ update.setName(sites.getName());
+ update.setLockNum(sites.getLockNum());
+ update.setIp(sites.getIp());
+ sitesMapper.updateById(update);
}
@Override
@@ -83,7 +134,7 @@
QueryWrapper<Sites> wrapper = new QueryWrapper<>(sites);
return sitesMapper.selectList(wrapper);
}
-
+
@Override
public PageData<Sites> findPage(PageWrap<Sites> pageWrap) {
IPage<Sites> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
@@ -145,4 +196,47 @@
QueryWrapper<Sites> wrapper = new QueryWrapper<>(sites);
return sitesMapper.selectCount(wrapper);
}
+
+ @Async
+ @Override
+ public void siteReservesNotice(String siteId) throws Exception{
+ //绔欑偣淇℃伅鏌ヨ
+ Sites sites = sitesMapper.selectById(siteId);
+ if(Objects.isNull(sites)){
+ return;
+ }
+ //鏌ヨ绔欑偣涓嬮攣澶存暟閲�
+ List<Locks> locksList = locksMapper.selectList(new QueryWrapper<Locks>().eq("status", Constants.ZERO).eq("site_id",siteId));
+ if(Objects.isNull(locksList)||locksList.size()==Constants.ZERO){
+ return;
+ }
+ //鑾峰彇绌洪攣澶存暟閲�
+ Integer empLocks = locksList.stream().filter(l -> StringUtils.isEmpty(l.getBikeCode())).collect(Collectors.toList()).size();
+ //閿佸ご姝e父瀛樿溅鏁伴噺
+ Integer unEmpLocks = locksList.size() - empLocks;
+ BigDecimal warnMax = new BigDecimal(String.valueOf(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.WARN_MAX)));
+ BigDecimal warnMin = new BigDecimal(String.valueOf(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.WARN_MIN)));
+ //瓒呭嚭棰勮鏈�澶у��
+ if(empLocks>Constants.ZERO){
+ if(BigDecimal.valueOf(empLocks).divide(BigDecimal.valueOf(locksList.size())).multiply(BigDecimal.valueOf(100)).compareTo(warnMax)>Constants.ZERO){
+ DingDingNotice.reservesNotice(sites.getName(),
+ systemDictDataBiz.queryByCode(Constants.DINGDING,Constants.DINGDING_URL).getCode(),
+ systemDictDataBiz.queryByCode(Constants.DINGDING,Constants.DINGDING_SECRET).getCode(),
+ Constants.ZERO,warnMax);
+ return;
+ };
+ }
+ //浣庝簬棰勮鏈�灏忓��
+ if(unEmpLocks>Constants.ZERO){
+ if(BigDecimal.valueOf(unEmpLocks).divide(BigDecimal.valueOf(locksList.size())).multiply(BigDecimal.valueOf(100)).compareTo(warnMin)<Constants.ZERO){
+ DingDingNotice.reservesNotice(sites.getName(),
+ systemDictDataBiz.queryByCode(Constants.DINGDING,Constants.DINGDING_URL).getCode(),
+ systemDictDataBiz.queryByCode(Constants.DINGDING,Constants.DINGDING_SECRET).getCode(),
+ Constants.ONE,warnMin);
+ return;
+ }
+ }
+ }
+
+
}
--
Gitblit v1.9.3