提交 746a63d1 authored 作者: 马路路's avatar 马路路

Merge remote-tracking branch 'origin/v29.6_ultimate_interaction_20241017' into dev_jdk17

# Conflicts: # clx-performance-web/src/main/java/com/clx/performance/dao/impl/OrderChildDaoImpl.java
package com.clx.performance.controller.app;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.mapper.OrderGoodsMapper;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.param.app.AppGoodsOrderSearchParam;
import com.clx.performance.param.app.OrderGoodsListPageParam;
import com.clx.performance.service.OrderGoodsService;
import com.clx.performance.service.OrderGoodsTruckBindService;
import com.clx.performance.vo.app.OrderGoodsAPPVO;
import com.clx.performance.vo.app.OrderGoodsTodaySumVO;
import com.clx.performance.vo.pc.OrderGoodsVO;
import com.msl.common.base.PageData;
import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.result.Result;
import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
......@@ -77,9 +73,10 @@ public class AppGoodsOrderController {
return Result.ok(orderGoodsTruckBindService.getCancelOrderGoods(userNo));
}
@Operation(summary = "司机端获取当日已接单(包含已取消)", description = "br>By:马路路")
@Operation(summary = "司机端获取当日已接单(包含已取消)、今日预估利润", description = "br>By:马路路")
@GetMapping("/getTodayOrderGoodsSum")
public Result<Integer> getTodayOrderGoodsSum () {
@UnitCovert(param = false)
public Result<OrderGoodsTodaySumVO> getTodayOrderGoodsSum () {
return Result.ok(orderGoodsService.getTodayOrderGoodsSum());
}
}
......@@ -2,6 +2,7 @@ package com.clx.performance.controller.pc.collect;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.app.collect.CarrierDriverCollectTransportIntentionDetailParam;
import com.clx.performance.param.app.collect.CarrierDriverCollectTransportIntentionEnableParam;
import com.clx.performance.param.app.collect.CarrierDriverCollectTransportIntentionListParam;
import com.clx.performance.param.app.collect.CarrierDriverCollectTransportIntentionParam;
import com.clx.performance.service.collect.CollectDriverTransportIntentionService;
......@@ -51,7 +52,7 @@ public class CarrierDriverCollectTransportIntentionController {
@Operation(summary = "启用/禁用", description = "<br>By:马路路")
@PostMapping("/enable")
public Result<Object> enableCarrierDriverCollectTransportIntention(@RequestBody @Validated CarrierDriverCollectTransportIntentionParam param) {
public Result<Object> enableCarrierDriverCollectTransportIntention(@RequestBody @Validated CarrierDriverCollectTransportIntentionEnableParam param) {
collectDriverTransportIntentionService.enableCarrierDriverCollectTransportIntention(param);
return Result.ok();
}
......
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dto.CancelOrderGoodsWeightDTO;
import com.clx.performance.dto.OrderGoodsNotCancelChildDTO;
import com.clx.performance.dto.OrderGoodsTodaySumDTO;
import com.clx.performance.dto.linewarn.LineWarnOrderChildStatisticsDTO;
import com.clx.performance.mapper.OrderChildMapper;
import com.clx.performance.model.OrderChild;
......@@ -222,5 +223,5 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
List<OrderChild> listNoCancelOrderChild(String orderNo);
int countTodayOrderGoodsSumByUserNo(Long userNo);
OrderGoodsTodaySumDTO countTodayOrderGoodsSumByUserNo(Long userNo);
}
......@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dto.CancelOrderGoodsWeightDTO;
import com.clx.performance.dto.OrderGoodsNotCancelChildDTO;
import com.clx.performance.dto.OrderGoodsTodaySumDTO;
import com.clx.performance.dto.linewarn.LineWarnOrderChildStatisticsDTO;
import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.mapper.OrderChildMapper;
......@@ -578,6 +579,11 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
beginTime);
}
@Override
public List<OrderChild> listByChildNoList(List<String> childNoList) {
return list(lQrWrapper().in(OrderChild :: getChildNo,childNoList));
}
@Override
public MonthInComeAndOrderedVO statisticsTruckMonth(LocalDateTime startTime, LocalDateTime endTime, String truckNo) {
return baseMapper.statisticsTruckMonth(startTime,endTime,truckNo);
......@@ -688,6 +694,15 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
);
}
@Override
public List<OrderChild> listBeforeUnloadOrderChild(LocalDateTime startTime,LocalDateTime endTime) {
return list(lQrWrapper()
.lt(OrderChild :: getStatus, OrderChildEnum.Status.ARRIVE_RECEIVE.getCode())
.ge(OrderChild :: getCreateTime,startTime)
.le(OrderChild :: getCreateTime,endTime)
);
}
@Override
public List<OrderChild> listChidNosByStatus(List<Integer> status) {
return list(lQrWrapper()
......@@ -733,7 +748,7 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
}
@Override
public int countTodayOrderGoodsSumByUserNo(Long userNo) {
public OrderGoodsTodaySumDTO countTodayOrderGoodsSumByUserNo(Long userNo) {
return baseMapper.countTodayOrderGoodsSumByUserNo(userNo);
}
}
package com.clx.performance.dto;
import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.math.BigDecimal;
@Getter
@Setter
@NoArgsConstructor
public class OrderGoodsTodaySumDTO {
@Schema(description="今日已接单数")
private Integer todayOrderGoodsSum;
@Schema(description="今日预估利润")
@MoneyOutConvert
private BigDecimal todayEstimateProfit;
}
......@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dto.CancelOrderGoodsWeightDTO;
import com.clx.performance.dto.OrderGoodsNotCancelChildDTO;
import com.clx.performance.dto.OrderGoodsTodaySumDTO;
import com.clx.performance.dto.linewarn.LineWarnOrderChildStatisticsDTO;
import com.clx.performance.model.OrderChild;
import com.clx.performance.param.app.PageOrderChildOfDriverParam;
......@@ -197,8 +198,8 @@ public interface OrderChildMapper extends BaseMapper<OrderChild> {
" where order_goods_no=#{orderGoodsNo} and status in(50,60,70,80,90,100)")
int countLoadByOrderGoodsNo(@Param("orderGoodsNo") String orderGoodsNo);
@Select("select count(*) from order_child " +
" where user_no=#{userNo} and status in(10,110) AND create_time >= CURDATE()\n" +
@Select("select count(*) AS todayOrderGoodsSum, IFNULL(SUM(freight),0) AS todayEstimateProfit from order_child " +
" where user_no=#{userNo} and status in(10,110) AND create_time >= CURDATE()" +
" AND create_time <= CURDATE() + INTERVAL 1 DAY - INTERVAL 1 SECOND")
int countTodayOrderGoodsSumByUserNo(Long userNo);
OrderGoodsTodaySumDTO countTodayOrderGoodsSumByUserNo(Long userNo);
}
\ No newline at end of file
......@@ -8,8 +8,8 @@ import com.clx.performance.param.app.OrderGoodsListPageParam;
import com.clx.performance.param.feign.CancelOrderGoodsParam;
import com.clx.performance.param.feign.DistributionTruckParam;
import com.clx.performance.param.pc.*;
import com.clx.performance.param.pc.carrier.PageSettlementOrderChildRiskParam;
import com.clx.performance.vo.app.OrderGoodsAPPVO;
import com.clx.performance.vo.app.OrderGoodsTodaySumVO;
import com.clx.performance.vo.feign.FreightEstimateVO;
import com.clx.performance.vo.feign.OrderGoodsFeignVO;
import com.clx.performance.vo.pc.DriverFreightPriceVO;
......@@ -117,5 +117,5 @@ public interface OrderGoodsService {
BigDecimal calcOrderGoodsResidueWeight(BigDecimal extractWeight,BigDecimal alreadyWeight);
Integer getTodayOrderGoodsSum();
OrderGoodsTodaySumVO getTodayOrderGoodsSum();
}
package com.clx.performance.service.collect;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.app.collect.AppCarrierDriverCollectTransportIntentionParam;
import com.clx.performance.param.app.collect.CarrierDriverCollectTransportIntentionDetailParam;
import com.clx.performance.param.app.collect.CarrierDriverCollectTransportIntentionListParam;
import com.clx.performance.param.app.collect.CarrierDriverCollectTransportIntentionParam;
import com.clx.performance.param.app.collect.*;
import com.clx.performance.vo.pc.collect.CarrierDriverCollectTransportIntentionRecordVO;
import com.clx.performance.vo.pc.collect.CarrierDriverCollectTransportIntentionVO;
......@@ -20,7 +17,7 @@ public interface CollectDriverTransportIntentionService {
Integer updateCarrierDriverCollectTransportIntention(CarrierDriverCollectTransportIntentionParam param);
Integer enableCarrierDriverCollectTransportIntention(CarrierDriverCollectTransportIntentionParam param);
Integer enableCarrierDriverCollectTransportIntention(CarrierDriverCollectTransportIntentionEnableParam param);
Integer deleteCarrierDriverCollectTransportIntention(List<CarrierDriverCollectTransportIntentionDetailParam> param);
......
......@@ -20,9 +20,8 @@ import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.dao.*;
import com.clx.performance.dto.OrderGoodsBindTruckNumDTO;
import com.clx.performance.dto.OrderGoodsCancelDTO;
import com.clx.performance.dto.OrderGoodsTodaySumDTO;
import com.clx.performance.enums.*;
import com.clx.performance.enums.settle.SettlementOrderChildRiskEnum;
import com.clx.performance.enums.settle.SettlementOwnerEnum;
import com.clx.performance.enums.settle.SettlementWayEnum;
import com.clx.performance.extranal.order.QuotationService;
import com.clx.performance.extranal.user.DriverService;
......@@ -41,6 +40,7 @@ import com.clx.performance.utils.excel.ExcelField;
import com.clx.performance.utils.excel.ExcelSheet;
import com.clx.performance.utils.excel.ExcelUtil;
import com.clx.performance.vo.app.OrderGoodsAPPVO;
import com.clx.performance.vo.app.OrderGoodsTodaySumVO;
import com.clx.performance.vo.feign.FreightEstimateVO;
import com.clx.performance.vo.feign.OrderExtractWeightVO;
import com.clx.performance.vo.feign.OrderGoodsFeignVO;
......@@ -49,7 +49,6 @@ import com.clx.performance.vo.pc.DriverFreightPriceVO;
import com.clx.performance.vo.pc.OrderGoodsEditVO;
import com.clx.performance.vo.pc.OrderGoodsPendingVO;
import com.clx.performance.vo.pc.OrderGoodsVO;
import com.clx.performance.vo.pc.carrier.settle.SettlementOrderChildRiskVO;
import com.clx.user.enums.driver.DriverInfoEnum;
import com.clx.user.feign.UserClxFeign;
import com.msl.common.base.Optional;
......@@ -1076,8 +1075,12 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
}
@Override
public Integer getTodayOrderGoodsSum() {
return orderChildDao.countTodayOrderGoodsSumByUserNo(TokenUtil.getLoginUserInfo().getUserNo());
public OrderGoodsTodaySumVO getTodayOrderGoodsSum() {
OrderGoodsTodaySumVO vo = new OrderGoodsTodaySumVO();
OrderGoodsTodaySumDTO dto = orderChildDao.countTodayOrderGoodsSumByUserNo(TokenUtil.getLoginUserInfo().getUserNo());
vo.setTodayOrderGoodsSum(dto.getTodayOrderGoodsSum());
vo.setTodayEstimateProfit(dto.getTodayEstimateProfit());
return vo;
}
......
......@@ -136,7 +136,7 @@ public class CollectDriverTransportIntentionServiceImpl implements CollectDriver
}
@Override
public Integer enableCarrierDriverCollectTransportIntention(CarrierDriverCollectTransportIntentionParam param) {
public Integer enableCarrierDriverCollectTransportIntention(CarrierDriverCollectTransportIntentionEnableParam param) {
CollectDriverTransportIntention updateCollectDriverTransportIntention = new CollectDriverTransportIntention();
updateCollectDriverTransportIntention.setId(param.getId());
updateCollectDriverTransportIntention.setStatus(param.getStatus());
......
package com.openapi.sdk.util;
import javax.net.ssl.*;
import java.io.DataOutputStream;
import okhttp3.*;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
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;
import java.util.concurrent.TimeUnit;
public class HttpsUtils {
public HttpsUtils() {
}
public static String doPost(String url, int connentTimeout, int readTimeout) throws Exception {
HttpURLConnection conn = null;
InputStreamReader isReader = null;
StringBuffer result = new StringBuffer();
private static final OkHttpClient client;
static {
try {
trustAllHttpsCertificates();
HostnameVerifier hv = new HostnameVerifier() {
public boolean verify(String urlHostName, SSLSession session) {
System.out.println("Warning: URL Host: " + urlHostName + " vs. " + session.getPeerHost());
return true;
}
// 创建一个信任所有证书的 TrustManager
TrustManager[] trustAllCerts = new TrustManager[]{
new X509TrustManager() {
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType) {
}
@Override
public void checkServerTrusted(X509Certificate[] chain, String authType) {
}
@Override
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[0];
}
}
};
HttpsURLConnection.setDefaultHostnameVerifier(hv);
conn = (HttpURLConnection)(new URL(url)).openConnection();
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setRequestMethod("POST");
conn.setConnectTimeout(connentTimeout);
conn.setReadTimeout(readTimeout);
isReader = new InputStreamReader(conn.getInputStream(), "UTF-8");
char[] bfchar = new char[2048];
int length = 0;
while((length = isReader.read(bfchar)) != -1) {
String temp = new String(bfchar, 0, length);
result.append(temp);
}
} catch (Exception var17) {
System.err.println("发送 POST 请求出现异常!" + var17.getMessage());
throw var17;
} finally {
try {
if (isReader != null) {
isReader.close();
}
} catch (IOException var16) {
System.err.println("关闭数据流出错了!\n" + var16.getMessage() + "\n");
throw var16;
}
}
return result.toString();
}
// 安装所有信任的 SSL 套接字工厂
SSLContext sslContext = SSLContext.getInstance("SSL");
sslContext.init(null, trustAllCerts, new SecureRandom());
public static String doPost(String url, String param, int readTimeout, int connectTimeout) throws Exception {
InputStreamReader isReader = null;
HttpURLConnection conn = null;
DataOutputStream dos = null;
StringBuffer result = new StringBuffer();
try {
trustAllHttpsCertificates();
HostnameVerifier hv = new HostnameVerifier() {
public boolean verify(String urlHostName, SSLSession session) {
System.out.println("Warning: URL Host: " + urlHostName + " vs. " + session.getPeerHost());
return true;
}
// 创建一个允许所有主机名的 HostnameVerifier
HostnameVerifier hostnameVerifier = (hostname, session) -> {
System.out.println("Warning: URL Host: " + hostname + " vs. " + session.getPeerHost());
return true;
};
HttpsURLConnection.setDefaultHostnameVerifier(hv);
conn = (HttpURLConnection)(new URL(url)).openConnection();
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setRequestProperty("Content-Length", String.valueOf(param.getBytes("UTF-8").length));
conn.setRequestMethod("POST");
conn.setConnectTimeout(connectTimeout);
conn.setRequestProperty("charset", "UTF-8");
conn.setReadTimeout(readTimeout);
conn.connect();
dos = new DataOutputStream(conn.getOutputStream());
int length = 0;
int totalLength = param.length();
while(length < totalLength) {
int endLength = length + 1024;
if (endLength > totalLength) {
endLength = totalLength;
}
dos.write(param.substring(length, endLength).getBytes("UTF-8"));
length = endLength;
dos.flush();
}
dos.close();
isReader = new InputStreamReader(conn.getInputStream(), "UTF-8");
char[] bfchar = new char[2048];
int rlength = 0;
while((rlength = isReader.read(bfchar)) != -1) {
String temp = new String(bfchar, 0, rlength);
result.append(temp);
}
return result.toString();
} catch (Exception var21) {
System.err.println("发送 POST 请求出现异常!" + var21.getMessage() + "e:" + var21);
throw var21;
} finally {
try {
if (isReader != null) {
isReader.close();
}
} catch (IOException var20) {
System.err.println("关闭数据流出错了!\n" + var20.getMessage() + "\n");
throw var20;
}
try {
if (conn != null) {
conn.disconnect();
}
} catch (Exception var19) {
System.err.println("关闭连接出错了!\n" + var19.getMessage() + "\n");
throw var19;
}
// 创建 OkHttpClient 并启用连接池
client = new OkHttpClient.Builder()
.sslSocketFactory(sslContext.getSocketFactory(), (X509TrustManager) trustAllCerts[0])
.hostnameVerifier(hostnameVerifier)
.connectTimeout(10, TimeUnit.SECONDS)
.readTimeout(10, TimeUnit.SECONDS)
.writeTimeout(10, TimeUnit.SECONDS)
.retryOnConnectionFailure(true)
.build();
} catch (NoSuchAlgorithmException | KeyManagementException e) {
throw new RuntimeException("Failed to create OkHttpClient", e);
}
}
private static void trustAllHttpsCertificates() throws Exception {
TrustManager[] trustAllCerts = new TrustManager[1];
TrustManager tm = new miTM();
trustAllCerts[0] = tm;
SSLContext sc = SSLContext.getInstance("SSL");
sc.init((KeyManager[])null, trustAllCerts, (SecureRandom)null);
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
}
static class miTM implements TrustManager, X509TrustManager {
miTM() {
}
public static String doPost(String url, int connectTimeout, int readTimeout) throws IOException {
Request request = new Request.Builder()
.url(url)
.post(RequestBody.create("", MediaType.get("application/x-www-form-urlencoded")))
.build();
public X509Certificate[] getAcceptedIssuers() {
return null;
}
public boolean isServerTrusted(X509Certificate[] certs) {
return true;
}
public boolean isClientTrusted(X509Certificate[] certs) {
return true;
try (Response response = client.newCall(request).execute()) {
if (!response.isSuccessful()) {
throw new IOException("Unexpected code " + response);
}
return response.body().string();
}
}
public void checkServerTrusted(X509Certificate[] certs, String authType) throws CertificateException {
}
public static String doPost(String url, String param, int readTimeout, int connectTimeout) throws IOException {
RequestBody body = RequestBody.create(param, MediaType.get("application/x-www-form-urlencoded"));
Request request = new Request.Builder()
.url(url)
.post(body)
.build();
public void checkClientTrusted(X509Certificate[] certs, String authType) throws CertificateException {
try (Response response = client.newCall(request).execute()) {
if (!response.isSuccessful()) {
throw new IOException("Unexpected code " + response);
}
return response.body().string();
}
}
}
}
\ No newline at end of file
package com.clx.performance.param.app.collect;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@NoArgsConstructor
public class CarrierDriverCollectTransportIntentionEnableParam {
@Schema(description = "id", example = "123")
private Integer id;
@Schema(description="状态:1启用 2禁用")
private Integer status;
}
package com.clx.performance.vo.app;
import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.math.BigDecimal;
@Getter
@Setter
@NoArgsConstructor
public class OrderGoodsTodaySumVO {
@Schema(description="今日已接单数")
private Integer todayOrderGoodsSum;
@Schema(description="今日预估利润")
@MoneyOutConvert
private BigDecimal todayEstimateProfit;
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论