From 0803e188cc84b0971d13b5746df63ca2418b9236 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 11 十月 2023 11:16:37 +0800
Subject: [PATCH] 接口整理
---
server/services/src/main/java/com/doumee/service/business/impl/SitesServiceImpl.java | 52 ++++++
server/services/src/main/java/com/doumee/service/business/impl/BikeRepairServiceImpl.java | 12 +
server/web/src/main/java/com/doumee/api/web/BusinessApi.java | 2
server/services/src/main/java/com/doumee/dao/business/web/request/RepairRequest.java | 5
server/services/src/main/java/com/doumee/service/business/SitesService.java | 30 +++
server/services/src/main/java/com/doumee/core/dingding/DingDingNotice.java | 80 ++++++++++
server/services/src/main/java/com/doumee/core/utils/HttpsUtil.java | 135 ++++++++++++++++
server/services/src/main/java/com/doumee/dao/business/web/request/SitesMonitorDTO.java | 7
server/services/src/main/resources/mappers/SitesMapper.xml | 62 +++++++
server/services/src/main/java/com/doumee/dao/business/SitesMapper.java | 23 +-
server/platform/src/main/java/com/doumee/api/business/RefundController.java | 4
server/services/src/main/java/com/doumee/core/constants/Constants.java | 11 +
server/services/src/main/java/com/doumee/dao/business/web/request/SitesMonitorBikeDTO.java | 31 +++
server/platform/src/main/java/com/doumee/api/business/SitesController.java | 17 ++
server/services/src/main/java/com/doumee/service/business/BikeRepairService.java | 2
15 files changed, 454 insertions(+), 19 deletions(-)
diff --git a/server/platform/src/main/java/com/doumee/api/business/RefundController.java b/server/platform/src/main/java/com/doumee/api/business/RefundController.java
index 5973c6c..7a27301 100644
--- a/server/platform/src/main/java/com/doumee/api/business/RefundController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/RefundController.java
@@ -76,8 +76,8 @@
public ApiResponse<PageData<Refund>> findPage (@RequestBody PageWrap<Refund> pageWrap) {
return ApiResponse.success(refundService.findPage(pageWrap));
}
- @ApiOperation("鍚庡彴缁撶畻璁板綍_鍒嗛〉鏌ヨ")
- @PostMapping("/pagePlat")
+ @ApiOperation("鍚庡彴缁撶畻璁板綍")
+ @PostMapping("/findPlatPage")
@RequiresPermissions("business:refund:query")
public ApiResponse<PageData<Refund>> findPlatPage (@RequestBody PageWrap<Refund> pageWrap) {
return ApiResponse.success(refundService.findPlatPage(pageWrap));
diff --git a/server/platform/src/main/java/com/doumee/api/business/SitesController.java b/server/platform/src/main/java/com/doumee/api/business/SitesController.java
index 54f7469..2b586aa 100644
--- a/server/platform/src/main/java/com/doumee/api/business/SitesController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/SitesController.java
@@ -7,6 +7,8 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.Sites;
+import com.doumee.dao.business.web.request.SitesMonitorBikeDTO;
+import com.doumee.dao.business.web.request.SitesMonitorDTO;
import com.doumee.service.business.SitesService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -87,4 +89,19 @@
public ApiResponse findById(@PathVariable String id) {
return ApiResponse.success(sitesService.findById(id));
}
+
+
+ @ApiOperation("绔欑偣鍌ㄨ溅鐩戞帶")
+ @PostMapping("/findSitesMonitorDTOPage")
+ @RequiresPermissions("business:sites:query")
+ public ApiResponse<PageData<SitesMonitorDTO>> findSitesMonitorDTOPage(@RequestBody PageWrap<SitesMonitorDTO> pageWrap){
+ return ApiResponse.success(sitesService.findSitesMonitorDTOPage(pageWrap));
+ }
+
+ @ApiOperation("瀹炴椂杞︿綅淇℃伅")
+ @PostMapping("/findSitesMonitorDTOPage")
+ @RequiresPermissions("business:sites:query")
+ public ApiResponse<PageData<SitesMonitorBikeDTO>> getSitesMonitorBikeDTO(@RequestBody PageWrap<SitesMonitorDTO> pageWrap){
+ return ApiResponse.success(sitesService.getSitesMonitorBikeDTO(pageWrap));
+ }
}
diff --git a/server/services/src/main/java/com/doumee/core/constants/Constants.java b/server/services/src/main/java/com/doumee/core/constants/Constants.java
index 7d5fad2..ce5bfa8 100644
--- a/server/services/src/main/java/com/doumee/core/constants/Constants.java
+++ b/server/services/src/main/java/com/doumee/core/constants/Constants.java
@@ -23,6 +23,7 @@
public static final String FALSE = "f";
public static final String TOKEN ="TOKEN" ;
public static final String SYSTEM ="SYSTEM" ;
+ public static final String DINGDING ="DINGDING" ;
public static final String MINI_PROGRAMME ="MINI_PROGRAMME" ;
public static final String IMG_DIR = "IMG_DIR";
public static final String FILE_DIR ="FILE_DIR" ;
@@ -109,6 +110,16 @@
//灏忕▼搴忔瘡鏃ユ湇鍔$粨鏉熸椂闂�
public static final String BUSINESS_ENDTIME = "BUSINESS_ENDTIME";
+ //閽夐拤閫氱煡鍦板潃
+ public static final String DINGDING_URL = "DINGDING_URL";
+ //閽夐拤绛惧悕
+ public static final String DINGDING_SECRET = "DINGDING_SECRET";
+
+ //灏忕▼搴忔弧杞介璀�(%)鏈�澶у��
+ public static final String WARN_MAX = "WARN_MAX";
+ //灏忕▼搴忔弧杞介璀�(%)鏈�灏忓��
+ public static final String WARN_MIN = "WARN_MIN";
+
public static final String FILES_DIR = "FILES_DIR";
public static final String SCRATCH_REDIRECT_URL = "SCRATCH_REDIRECT_URL";
diff --git a/server/services/src/main/java/com/doumee/core/dingding/DingDingNotice.java b/server/services/src/main/java/com/doumee/core/dingding/DingDingNotice.java
new file mode 100644
index 0000000..2eab145
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/core/dingding/DingDingNotice.java
@@ -0,0 +1,80 @@
+package com.doumee.core.dingding;
+
+import com.alibaba.fastjson.JSONObject;
+import com.doumee.core.constants.Constants;
+import com.doumee.core.utils.HttpsUtil;
+import com.doumee.dao.business.model.BikeRepair;
+import com.doumee.dao.business.web.request.RepairRequest;
+import org.apache.commons.codec.binary.Base64;
+
+import javax.crypto.Mac;
+import javax.crypto.spec.SecretKeySpec;
+import java.math.BigDecimal;
+import java.net.URLEncoder;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2022/12/7 11:16
+ */
+public class DingDingNotice {
+
+
+ /**
+ * 閽夐拤鏈哄櫒浜� 鍔犵
+ * @param timestamp
+ * @param secret
+ * @return
+ * @throws Exception
+ */
+ public static String getSign(Long timestamp, String secret) throws Exception{
+ String stringToSign = timestamp + "\n" + secret;
+ Mac mac = Mac.getInstance("HmacSHA256");
+ mac.init(new SecretKeySpec(secret.getBytes("UTF-8"), "HmacSHA256"));
+ byte[] signData = mac.doFinal(stringToSign.getBytes("UTF-8"));
+ String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)),"UTF-8");
+ return sign;
+ }
+
+
+ /**
+ * 閽夐拤閫氱煡 - 杞﹁締寮傚父涓婃姤
+ * @param repairRequest
+ * @param ddUrl
+ * @throws Exception
+ */
+ public static void bikeRepair(RepairRequest repairRequest, String ddUrl , String secret) throws Exception{
+ Long timestamp = System.currentTimeMillis();
+ Map<String,Object> content = new HashMap<>();
+ content.put("msgtype","text");
+ Map<String,String> text = new HashMap<>();
+ text.put("content","銆愭晠闅滀笂鎶ャ�戣溅杈嗙紪鍙凤細"+repairRequest.getBikeCode()+"锛屼綅缃細"+repairRequest.getAddr()+"锛岃仈绯荤數璇濓細"+repairRequest.getLinkphone()+"锛岃鍙婃椂鏌ョ湅澶勭悊銆�");
+ content.put("text",text);
+ HttpsUtil.post(ddUrl+"×tamp="+timestamp+"&sign="+getSign(timestamp,secret), JSONObject.toJSONString(content),"application/json",false);
+ }
+
+
+ /**
+ * 閽夐拤閫氱煡 - 绔欑偣鍌ㄨ溅鍛婅
+ * @param siteName
+ * @param ddUrl
+ * @param secret
+ * @param type 0=瓒呭嚭 1=浣庝簬
+ * @param warnVal 鎶ヨ鍊�
+ * @throws Exception
+ */
+ public static void reservesNotice(String siteName, String ddUrl , String secret, Integer type, BigDecimal warnVal) throws Exception{
+ Long timestamp = System.currentTimeMillis();
+ Map<String,Object> content = new HashMap<>();
+ content.put("msgtype","text");
+ Map<String,String> text = new HashMap<>();
+ //text.put("content","銆愮珯鐐瑰偍杞﹀憡璀︺��"+siteName+"锛屽偍杞﹂噺瓒呰繃80%/浣庝簬20%锛岃鍙婃椂杩涜杞﹁締璋冮厤");
+
+ text.put("content","銆愮珯鐐瑰偍杞﹀憡璀︺��"+siteName+"锛屽偍杞﹂噺"+(type.equals(Constants.ZERO)?"瓒呭嚭":"浣庝簬")+warnVal+"%锛岃鍙婃椂杩涜杞﹁締璋冮厤");
+ content.put("text",text);
+ HttpsUtil.post(ddUrl+"×tamp="+timestamp+"&sign="+getSign(timestamp,secret), JSONObject.toJSONString(content),"application/json",false);
+ }
+}
diff --git a/server/services/src/main/java/com/doumee/core/utils/HttpsUtil.java b/server/services/src/main/java/com/doumee/core/utils/HttpsUtil.java
new file mode 100644
index 0000000..09bea1e
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/core/utils/HttpsUtil.java
@@ -0,0 +1,135 @@
+package com.doumee.core.utils;
+
+import javax.net.ssl.*;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URL;
+import java.security.KeyManagementException;
+import java.security.NoSuchAlgorithmException;
+import java.security.SecureRandom;
+import java.security.cert.CertificateException;
+import java.security.cert.X509Certificate;
+
+public class HttpsUtil {
+
+ public static String get(String url,boolean ignoreSSL) {
+ return connection(url, "GET", null, null,ignoreSSL);
+ }
+
+ public static String post(String url, String data, String contentType, boolean ignoreSSL) {
+ return connection(url, "POST", data, contentType, ignoreSSL);
+ }
+
+ public static String connection(String url,String method,String data,String contentType,boolean ignoreSSL){
+ HttpsURLConnection connection = null;
+ try {
+ URL _url = new URL(url);
+ connection = (HttpsURLConnection) _url.openConnection();
+ connection.setRequestMethod(method);
+ connection.setDoOutput(true);
+ connection.setDoInput(true);
+ connection.setUseCaches(false);
+ if(contentType != null){
+ connection.setRequestProperty("Content-Type", contentType);
+ }
+
+ if(ignoreSSL){
+ //淇′换鎵�鏈塻sl璇佷功鍜屼富鏈�
+ TrustManager[] trustManagers = {new HttpsTrustManager()};
+ SSLContext context = SSLContext.getInstance("TLS");
+ context.init(null, trustManagers, new SecureRandom());
+ connection.setSSLSocketFactory(context.getSocketFactory());
+ connection.setHostnameVerifier(new HostnameVerifier() {
+ @Override
+ public boolean verify(String hostname, SSLSession session) {
+ return true;
+ }
+ });
+ }
+
+
+ connection.connect();
+
+ if(data != null){
+ OutputStream outputStream = connection.getOutputStream();
+ outputStream.write(data.getBytes("utf-8"));
+ outputStream.close();
+ }
+
+ int responseCode = connection.getResponseCode();
+ if (responseCode == HttpsURLConnection.HTTP_OK) {
+ InputStream is = connection.getInputStream();
+ byte[] b = new byte[4096];
+ ByteArrayOutputStream baos = new ByteArrayOutputStream(b.length);
+ int len;
+ while ((len = is.read(b)) != -1) {
+ baos.write(b, 0, len);
+ }
+ is.close();
+ return baos.toString("utf-8");
+ }
+ return connection.getResponseMessage();
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ if(connection != null){
+ connection.disconnect();
+ }
+ }
+ return null;
+ }
+
+
+ public static void main(String[] args) {
+ //灞�閮ㄤ俊浠绘墍鏈夎瘉涔﹀拰涓绘満
+ String result = HttpsUtil.get("https://127.0.0.1:8443/ssl-test/test01.do",true);
+ System.out.println(result);
+
+ //澶栭儴淇′换鎵�鏈夎瘉涔﹀拰涓绘満
+ HttpsTrustManager.allowAllSSL();
+ String response = HttpsUtil.get("https://127.0.0.1:8443/ssl-test/test01.do", false);
+ System.out.println(result);
+
+ }
+}
+
+class HttpsTrustManager implements X509TrustManager {
+
+ private static TrustManager[] trustManagers = {new HttpsTrustManager()};
+
+ @Override
+ public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public X509Certificate[] getAcceptedIssuers() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public static void allowAllSSL() {
+ try {
+ SSLContext context = SSLContext.getInstance("TLS");
+ context.init(null, trustManagers, new SecureRandom());
+ HttpsURLConnection.setDefaultSSLSocketFactory(context.getSocketFactory());
+ HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
+ @Override
+ public boolean verify(String hostname, SSLSession session) {
+ return true;
+ }
+ });
+ } catch (NoSuchAlgorithmException | KeyManagementException e) {
+ e.printStackTrace();
+ }
+ }
+
+}
diff --git a/server/services/src/main/java/com/doumee/dao/business/SitesMapper.java b/server/services/src/main/java/com/doumee/dao/business/SitesMapper.java
index 0fbb35b..0b5adf9 100644
--- a/server/services/src/main/java/com/doumee/dao/business/SitesMapper.java
+++ b/server/services/src/main/java/com/doumee/dao/business/SitesMapper.java
@@ -1,8 +1,13 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.doumee.dao.business.model.Sites;
+import com.doumee.dao.business.web.request.SitesMonitorBikeDTO;
import com.doumee.dao.business.web.request.SitesMonitorDTO;
+import com.doumee.dao.system.dto.QuerySystemUserDTO;
+import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
/**
@@ -15,16 +20,12 @@
/**
* @return
*/
- @Select("SELECT \n" +
- "sites.id,\n" +
- "sites.name as name,\n" +
- "sites.code as code,\n" +
- "count(l.id) as lid,\n" +
- "count(l.bike_code ) as lbikeCount\n" +
- "from \n" +
- "sites sites\n" +
- "LEFT JOIN locks l on sites.id = l.site_id\n" +
- "GROUP BY sites.id ")
- SitesMonitorDTO getSitesMonitorDTO();
+ Page<SitesMonitorDTO> getSitesMonitorDTO(IPage page, @Param("code") String code, @Param("name") String name);
+
+ Page<SitesMonitorBikeDTO> getSitesMonitorBikeDTO(IPage page,
+ @Param("code") String code,
+ @Param("name") String name,
+ @Param("lockCode") String lockCode,
+ @Param("hasBike") Boolean hasBike );
}
diff --git a/server/services/src/main/java/com/doumee/dao/business/web/request/RepairRequest.java b/server/services/src/main/java/com/doumee/dao/business/web/request/RepairRequest.java
index f76ba33..b62c6fb 100644
--- a/server/services/src/main/java/com/doumee/dao/business/web/request/RepairRequest.java
+++ b/server/services/src/main/java/com/doumee/dao/business/web/request/RepairRequest.java
@@ -19,9 +19,12 @@
@ApiModel("鎶ヤ慨涓氬姟璇锋眰绫�")
public class RepairRequest {
- @ApiModelProperty(value = "杞﹁締缂栫爜")
+ @ApiModelProperty(value = "杞﹁締涓婚敭")
private String binkeId;
+ @ApiModelProperty(value = "杞﹁締缂栫爜")
+ private String bikeCode;
+
@ApiModelProperty(value = "缁忓害", example = "1")
private BigDecimal longitude;
diff --git a/server/services/src/main/java/com/doumee/dao/business/web/request/SitesMonitorBikeDTO.java b/server/services/src/main/java/com/doumee/dao/business/web/request/SitesMonitorBikeDTO.java
new file mode 100644
index 0000000..ba82115
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/dao/business/web/request/SitesMonitorBikeDTO.java
@@ -0,0 +1,31 @@
+package com.doumee.dao.business.web.request;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author T14
+ */
+@Data
+@ApiModel("绔欑偣杞﹁締鐩戞帶")
+public class SitesMonitorBikeDTO {
+
+ @ApiModelProperty(value = "鍚嶇О")
+ private String name;
+
+ @ApiModelProperty(value = "缂栧彿")
+ private String code;
+
+ @ApiModelProperty(value = "閿佹鍣ㄦ暟")
+ private Integer localCode;
+
+ @ApiModelProperty(value = "鍦ㄦ灦杞﹁締鏁�")
+ private Integer bikeCode;
+
+ @ApiModelProperty(value = "杞﹁締绫诲瀷")
+ private String bikeType;
+
+}
diff --git a/server/services/src/main/java/com/doumee/dao/business/web/request/SitesMonitorDTO.java b/server/services/src/main/java/com/doumee/dao/business/web/request/SitesMonitorDTO.java
index e0b4ff6..cdbce62 100644
--- a/server/services/src/main/java/com/doumee/dao/business/web/request/SitesMonitorDTO.java
+++ b/server/services/src/main/java/com/doumee/dao/business/web/request/SitesMonitorDTO.java
@@ -32,6 +32,13 @@
private BigDecimal rate;
+ @ApiModelProperty(value = "閿佸ご鏄惁鏈夎溅")
+ private Boolean hasBike ;
+
+ @ApiModelProperty(value = "婊℃灦鐜�")
+ private String lockCode;
+
+
}
diff --git a/server/services/src/main/java/com/doumee/service/business/BikeRepairService.java b/server/services/src/main/java/com/doumee/service/business/BikeRepairService.java
index 13aab09..be6e5f3 100644
--- a/server/services/src/main/java/com/doumee/service/business/BikeRepairService.java
+++ b/server/services/src/main/java/com/doumee/service/business/BikeRepairService.java
@@ -108,5 +108,5 @@
*/
long count(BikeRepair bikeRepair);
- void saveRepair(RepairRequest repairRequest);
+ void saveRepair(RepairRequest repairRequest) throws Exception;
}
diff --git a/server/services/src/main/java/com/doumee/service/business/SitesService.java b/server/services/src/main/java/com/doumee/service/business/SitesService.java
index 6d6f7c9..987001a 100644
--- a/server/services/src/main/java/com/doumee/service/business/SitesService.java
+++ b/server/services/src/main/java/com/doumee/service/business/SitesService.java
@@ -1,8 +1,14 @@
package com.doumee.service.business;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.Sites;
+import com.doumee.dao.business.web.request.SitesMonitorBikeDTO;
+import com.doumee.dao.business.web.request.SitesMonitorDTO;
+import org.apache.ibatis.annotations.Param;
+
import java.util.List;
/**
@@ -14,7 +20,7 @@
/**
* 鍒涘缓
- *
+ *
* @param sites 瀹炰綋瀵硅薄
* @return String
*/
@@ -78,7 +84,7 @@
* @return List<Sites>
*/
List<Sites> findList(Sites sites);
-
+
/**
* 鍒嗛〉鏌ヨ
*
@@ -94,4 +100,24 @@
* @return long
*/
long count(Sites sites);
+
+ /**
+ * 绔欑偣棰勮
+ * @param siteId
+ * @throws Exception
+ */
+ void siteReservesNotice(String siteId) throws Exception;
+
+
+ /**
+ * 鍒嗛〉鏌ヨ绔欑偣鍌ㄨ溅鐩戞帶
+ *
+ * @param pageWrap 鍒嗛〉瀵硅薄
+ * @return PageData<Sites>
+ */
+ PageData<SitesMonitorDTO> findSitesMonitorDTOPage(PageWrap<SitesMonitorDTO> pageWrap);
+
+
+ PageData<SitesMonitorBikeDTO> getSitesMonitorBikeDTO(PageWrap<SitesMonitorDTO> pageWrap);
+
}
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/BikeRepairServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/BikeRepairServiceImpl.java
index 57d5745..7cb9291 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/BikeRepairServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/BikeRepairServiceImpl.java
@@ -2,7 +2,9 @@
import com.doumee.biz.system.SystemDictDataBiz;
import com.google.common.collect.Lists;
+import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.constants.Constants;
+import com.doumee.core.dingding.DingDingNotice;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Utils;
@@ -49,6 +51,9 @@
@Autowired
private MultifileMapper multifileMapper;
+
+ @Autowired
+ private SystemDictDataBiz systemDictDataBiz;
@Override
public String create(BikeRepair bikeRepair) {
@@ -157,7 +162,7 @@
@Override
- public void saveRepair(RepairRequest repairRequest){
+ public void saveRepair(RepairRequest repairRequest) throws Exception{
BikeRepair bikeRepair = new BikeRepair();
BeanUtils.copyProperties(repairRequest,bikeRepair);
bikeRepair.setCreateDate(new Date());
@@ -178,6 +183,11 @@
multifileMapper.insert(multifile);
}
}
+ //鍙戦�侀拤閽夐�氱煡
+ DingDingNotice.bikeRepair(repairRequest,
+ systemDictDataBiz.queryByCode(Constants.DINGDING,Constants.DINGDING_URL).getCode(),
+ systemDictDataBiz.queryByCode(Constants.DINGDING,Constants.DINGDING_SECRET).getCode());
+
}
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 24230ce..ded5f6d 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,5 +1,8 @@
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;
@@ -7,20 +10,30 @@
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.dao.business.web.request.SitesMonitorBikeDTO;
+import com.doumee.dao.business.web.request.SitesMonitorDTO;
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瀹炵幇
@@ -32,6 +45,12 @@
@Autowired
private SitesMapper sitesMapper;
+
+ @Autowired
+ private LocksMapper locksMapper;
+
+ @Autowired
+ private SystemDictDataBiz systemDictDataBiz;
@Override
public String create(Sites sites) {
@@ -179,4 +198,37 @@
QueryWrapper<Sites> wrapper = new QueryWrapper<>(sites);
return sitesMapper.selectCount(wrapper);
}
+
+ @Override
+ public PageData<SitesMonitorDTO> findSitesMonitorDTOPage(PageWrap<SitesMonitorDTO> pageWrap) {
+
+ IPage page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ Page<SitesMonitorDTO> sitesMonitorDTO = sitesMapper.getSitesMonitorDTO(page, pageWrap.getModel().getCode(), pageWrap.getModel().getName());
+
+ if (!CollectionUtils.isEmpty(sitesMonitorDTO.getRecords())){
+ sitesMonitorDTO.getRecords().forEach(s->{
+ s.setRate(new BigDecimal(s.getBikeCount()).divide(new BigDecimal(s.getLocalCount()).setScale(2)));
+ });
+ }
+
+ return PageData.from(sitesMonitorDTO);
+ }
+
+ @Override
+ public void siteReservesNotice(String siteId) throws Exception {
+
+ }
+
+ @Override
+ public PageData<SitesMonitorBikeDTO> getSitesMonitorBikeDTO(PageWrap<SitesMonitorDTO> pageWrap) {
+ IPage page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ Page<SitesMonitorBikeDTO> sitesMonitorDTO = sitesMapper.getSitesMonitorBikeDTO(page,
+ pageWrap.getModel().getCode(),
+ pageWrap.getModel().getName(),
+ pageWrap.getModel().getLockCode(),
+ pageWrap.getModel().getHasBike());
+
+
+ return PageData.from(sitesMonitorDTO);
+ }
}
diff --git a/server/services/src/main/resources/mappers/SitesMapper.xml b/server/services/src/main/resources/mappers/SitesMapper.xml
new file mode 100644
index 0000000..985c2f0
--- /dev/null
+++ b/server/services/src/main/resources/mappers/SitesMapper.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.doumee.dao.business.SitesMapper">
+
+ <select id="getSitesMonitorDTO" resultType="com.doumee.dao.business.web.request.SitesMonitorDTO">
+
+ SELECT
+ sites.id,
+ sites.name as name,
+ sites.code as code,
+ count(l.id) as lid,
+ count(l.bike_code ) as lbikeCount
+ from
+ sites sites
+ LEFT JOIN locks l on sites.id = l.site_id
+ <where>
+ sites.isdeleted = 0
+ <if test="code != null and code != ''">
+ and sites.code like LIKE '%'||#{code}||'%'
+ </if>
+ <if test="name != null and name != ''">
+ and sites.name like LIKE '%'||#{name}||'%'
+ </if>
+ </where>
+
+ GROUP BY sites.id
+
+ </select>
+
+ <select id="getSitesMonitorBikeDTO" resultType="com.doumee.dao.business.web.request.SitesMonitorBikeDTO">
+ SELECT
+ sites.id,
+ sites.name as name,
+ sites.code as code,
+ l.name as locksName,
+ l.bike_code as bike_code,
+ bp.name as bikeType
+ from
+ sites sites
+ LEFT JOIN locks l on sites.id = l.site_id
+ LEFT JOIN base_param bp on bp.id = l.param_id
+ <where>
+ sites.isdeleted = 0
+ <if test="code != null and code != ''">
+ and sites.code like LIKE '%'||#{code}||'%'
+ </if>
+ <if test="name != null and name != ''">
+ and sites.name like LIKE '%'||#{name}||'%'
+ </if>
+ <if test="lockCode != null and lockCode != ''">
+ and l.code like LIKE '%'||#{lockCode}||'%'
+ </if>
+ <if test="hasBike != null and hasBike != false">
+ l.bike_code isnull
+ </if>
+ <if test="hasBike != null and hasBike != true">
+ l.bike_code notnull
+ </if>
+ </where>
+ </select>
+
+</mapper>
diff --git a/server/web/src/main/java/com/doumee/api/web/BusinessApi.java b/server/web/src/main/java/com/doumee/api/web/BusinessApi.java
index 0b481b2..f714118 100644
--- a/server/web/src/main/java/com/doumee/api/web/BusinessApi.java
+++ b/server/web/src/main/java/com/doumee/api/web/BusinessApi.java
@@ -135,7 +135,7 @@
@ApiImplicitParams({
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true)
})
- public ApiResponse transactionsPage (@RequestBody RepairRequest repairRequest) {
+ public ApiResponse transactionsPage (@RequestBody RepairRequest repairRequest) throws Exception{
repairRequest.setMemberId(getMemberId());
bikeRepairService.saveRepair(repairRequest);
return ApiResponse.success("鎿嶄綔鎴愬姛");
--
Gitblit v1.9.3