From 72aaf45389cd09c206ee1b90f0c7f5bf59782930 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 22 十月 2025 18:27:49 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysOrderController.java | 677 ++++++-------------------------------------------------
1 files changed, 78 insertions(+), 599 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysOrderController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysOrderController.java
index 91a8a50..96660c1 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysOrderController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysOrderController.java
@@ -1,63 +1,32 @@
package com.ruoyi.web.controller.api;
-import cn.hutool.http.HttpRequest;
-import cn.hutool.http.HttpResponse;
-import cn.hutool.http.HttpUtil;
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.lkl.laop.sdk.exception.SDKException;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysUser;
-import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.common.utils.ip.IpUtils;
import com.ruoyi.framework.web.service.TokenService;
-import com.ruoyi.system.model.TCrmSupplier;
-import com.ruoyi.system.model.TErpProcurement;
-import com.ruoyi.system.model.TErpProcurementGoods;
-import com.ruoyi.system.query.TErpGoodsWarehouseQuery;
-import com.ruoyi.system.service.*;
-import com.ruoyi.web.core.config.LakalaConfig;
+import com.ruoyi.system.dto.TSysOrderDto;
+import com.ruoyi.system.model.TCrmClinic;
+import com.ruoyi.system.model.TSysAppUser;
+import com.ruoyi.system.model.TSysOrder;
+import com.ruoyi.system.model.TSysOrderGoods;
+import com.ruoyi.system.query.TSysAppUserQuery;
+import com.ruoyi.system.query.TSysOrderQuery;
+import com.ruoyi.system.service.TCrmClinicService;
+import com.ruoyi.system.service.TSysAppUserService;
+import com.ruoyi.system.service.TSysOrderGoodsService;
+import com.ruoyi.system.service.TSysOrderService;
+import com.ruoyi.system.vo.TSysOrderDetailVo;
+import com.ruoyi.system.vo.TSysOrderPageVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
-import lombok.SneakyThrows;
-import org.apache.commons.codec.binary.Base64;
-import org.apache.commons.io.IOUtils;
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.conn.ClientConnectionManager;
-import org.apache.http.conn.scheme.Scheme;
-import org.apache.http.conn.scheme.SchemeRegistry;
-import org.apache.http.conn.ssl.SSLSocketFactory;
-import org.apache.http.entity.StringEntity;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.TrustManager;
-import javax.net.ssl.X509TrustManager;
-import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
-import java.io.*;
-import java.math.BigDecimal;
-import java.math.RoundingMode;
-import java.nio.charset.StandardCharsets;
-import java.security.*;
-import java.security.cert.*;
-import java.security.spec.InvalidKeySpecException;
-import java.security.spec.PKCS8EncodedKeySpec;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.stream.Collectors;
/**
* <p>
@@ -68,589 +37,99 @@
* @since 2025-08-20
*/
@RestController
-@RequestMapping("/t-sys-order")
+@RequestMapping("/sys-order")
@Api(tags = "订单管理")
public class TSysOrderController {
- private final TErpProcurementService erpProcurementService;
- private final TErpProcurementGoodsService erpProcurementGoodsService;
- private final TCrmSupplierService crmSupplierService;
-
+ private final TSysOrderService sysOrderService;
private final TokenService tokenService;
+ private final TCrmClinicService crmClinicService;
+ private final TSysAppUserService sysAppUserService;
+ private final TSysOrderGoodsService sysOrderGoodsService;
+
@Autowired
- public TSysOrderController(TErpProcurementService erpProcurementService, TokenService tokenService, TErpProcurementGoodsService erpProcurementGoodsService, TCrmSupplierService crmSupplierService) {
- this.erpProcurementService = erpProcurementService;
+ public TSysOrderController(TokenService tokenService, TSysOrderService sysOrderService, TCrmClinicService crmClinicService, TSysAppUserService sysAppUserService, TSysOrderGoodsService sysOrderGoodsService) {
+ this.sysOrderService = sysOrderService;
this.tokenService = tokenService;
- this.erpProcurementGoodsService = erpProcurementGoodsService;
- this.crmSupplierService = crmSupplierService;
- }
+ this.crmClinicService = crmClinicService;
+ this.sysAppUserService = sysAppUserService;
+ this.sysOrderGoodsService = sysOrderGoodsService;
- private static final String SYMBOLS = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
+ }
/**
- * API schema ,固定 LKLAPI-SHA256withRSA
+ * 获取诊所患者诊疗 订单列表
*/
- public final static String SCHEMA = "LKLAPI-SHA256withRSA";
+ @ApiOperation(value = "获取诊所患者诊疗订单列表")
+ @PostMapping(value = "/pageList")
+ public R<PageInfo<TSysOrderPageVo>> pageList(@RequestBody TSysOrderQuery query) {
- /**
- * 字符集固定 utf-8
- */
- public static final String ENCODING = "utf-8";
-
-
- private static final SecureRandom RANDOM = new SecureRandom();
-
-
- @ApiOperation(value = "支付")
- @PostMapping(value = "/payOrder")
- @SneakyThrows
- public R<?> payOrder(@RequestParam String id, String type, HttpServletRequest request) {
- try {
-
- // 查出采购单 算出价格 下单 算出应该分佣金额 应该分给谁
- TErpProcurement erpProcurement = erpProcurementService.getById(id);
- if (erpProcurement.getStatus()>2) {
- return R.fail("订单已支付");
- }
- String ipAddr = IpUtils.getIpAddr(request);
- String time = DateUtils.dateTimeNow();
-
- // SYMBOLS 随机取4位数
- String nonce = "";
- for (int i = 0; i < 6; i++) {
- nonce += SYMBOLS.charAt(RANDOM.nextInt(SYMBOLS.length()));
- }
- String outTradeNo = time + nonce;
- String amount = String.valueOf(erpProcurement.getPayMoney().multiply(new BigDecimal("100")).intValue());
-
- TCrmSupplier supplier = crmSupplierService.getById(erpProcurement.getSupplierId());
- String trans_type ="41";
- if("WECHAT".equals(type)){
- trans_type= "51";
- }
-
-
- String apiPath = "sit/api/v3/labs/trans/preorder";
- String body = "{\n" +
- "\t\"req_time\": \"" + time + "\",\n" +
- "\t\"version\": \"3.0\",\n" +
- "\t\"req_data\": {\n" +
- "\t\t\"out_trade_no\": \"" + outTradeNo + "\",\n" +
- "\t\t\"merchant_no\": \""+supplier.getRecvMerchantNo()+"\",\n" +
- "\t\t\"term_no\": \""+supplier.getTermNo()+"\",\n" +
- "\t\t\"notify_url\": \"http://221.182.45.100:8089/t-sys-order/messageHandle\",\n" +
- "\t\t\"location_info\": {\n" +
- "\t\t\t\"request_ip\": \"" + ipAddr + "\"\n" +
- "\t\t},\n" +
- "\t\t\"subject\": \"商品采购\",\n" +
- "\t\t\"settle_type\": \"1\",\n" +
- "\t\t\"total_amount\": " + amount + ",\n" +
- "\t\t\"account_type\": \"" + type + "\",\n" +
- "\t\t\"trans_type\": \""+trans_type+"\"\n" +
- "\t}\n" +
- "}";
- String authorization = getAuthorization(body);
- org.apache.http.HttpResponse response = post(LakalaConfig.getServerUrl() + apiPath, body, authorization);
- if (response.getStatusLine().getStatusCode() != 200) {
- return R.fail(500, "请求失败,statusCode " + response.getStatusLine()
- + IOUtils.toString(response.getEntity().getContent(), ENCODING));
- }
- String responseStr = IOUtils.toString(response.getEntity().getContent(), ENCODING);
-
-
- erpProcurement.setPayNumber(outTradeNo);
- JSONObject jsonObject = JSONObject.parseObject(responseStr);
- JSONObject jsonObject1 = jsonObject.getJSONObject("resp_data");
- String code = jsonObject1.getString("log_no");
- erpProcurement.setPayTransactionId(code);
- erpProcurement.setStatus(2);
- erpProcurement.setTermNo(supplier.getTermNo());
- erpProcurement.setAccountType(type);
- erpProcurement.setTransType("41");
- erpProcurementService.updateById(erpProcurement);
-
- return R.ok(responseStr);
- } catch (SDKException e) {
- e.printStackTrace();
- }
- return R.fail(500, "调用支付宝支付预下单接口错误");
- }
-
-
-
- @RequestMapping("/messageHandle")
- @ApiOperation(value = "拉卡拉支付信息回调接口")
- public Object messageHandle(HttpServletRequest request) throws Exception {
- String body = this.getBody(request);
- String authorization = request.getHeader("Authorization");
- String timestamp = null;
- String nonce = null;
- String signature = null;
- authorization = authorization.replaceAll("LKLAPI-SHA256withRSA ", "");
- String[] split = authorization.split(",");
- for (String s : split) {
- if (s.startsWith("timestamp")) {
- timestamp = s.split("=")[1].replaceAll("\"", "");
- }
- if (s.startsWith("nonce")) {
- nonce = s.split("=")[1].replaceAll("\"", "");
- }
- if (s.startsWith("signature")) {
- // 取出签名
- signature = s.split("signature=")[1].replaceAll("\"", "");
- }
- }
- X509Certificate lklCertificate = loadCertificate(new FileInputStream(new File(LakalaConfig.getLklNotifyCerStr())));
- String preSignData = timestamp + "\n" + nonce + "\n" + body + "\n";
- boolean verify = verify(lklCertificate, preSignData.getBytes(ENCODING), signature);
- // 先处理支付完成 修改状态 后处理分账 后走分账回调
- JSONObject jsonObject1 = JSONObject.parseObject(body);
- Object o = jsonObject1.get("out_trade_no");
- TErpProcurement erpProcurement = erpProcurementService.getOne(new LambdaQueryWrapper<TErpProcurement>().eq(TErpProcurement::getPayNumber, o));
- if (verify && erpProcurement.getStatus()==2) {
- erpProcurement.setPayTime(LocalDateTime.now());
- erpProcurement.setStatus(3);
-
- List<TErpProcurementGoods> list = erpProcurementGoodsService.list(new LambdaQueryWrapper<TErpProcurementGoods>().eq(TErpProcurementGoods::getProcurementId, erpProcurement.getId()));
-
-
- // 操作分账
- HttpRequest post = HttpUtil.createPost(LakalaConfig.getServerUrl() + "sit/api/v3/sacs/separate");
-
- HashMap<String, Object> reqMap = new HashMap<>();
- reqMap.put("version", "3.0");
- reqMap.put("req_time", DateUtils.dateTimeNow());
-
-
- HashMap<String, Object> map = new HashMap<>();
- map.put("merchant_no", erpProcurement.getMerchantNo());
- map.put("log_no", erpProcurement.getPayTransactionId());
- map.put("log_date", DateUtils.dateTime());
- map.put("notify_url", "http://221.182.45.100:8089/t-sys-order/messageSeparateHandle");
- String time = DateUtils.dateTimeNow();
-
- // SYMBOLS 随机取4位数
- String str = "";
- for (int i = 0; i < 6; i++) {
- str += SYMBOLS.charAt(RANDOM.nextInt(SYMBOLS.length()));
- }
- String outTradeNo = time + str;
- map.put("out_separate_no", outTradeNo);
- map.put("total_amt", erpProcurement.getPayMoney().multiply(BigDecimal.valueOf(100)).intValue() + "");
-
-
-
- BigDecimal allMoney = erpProcurement.getPayMoney();
- // 平台应得分账
- BigDecimal payMoney = erpProcurement.getPayMoney();
- ArrayList<HashMap<String, Object>> objects = new ArrayList<>();
- // 根据供应商id分组
- Map<String, List<TErpProcurementGoods>> collect = list.stream().collect(Collectors.groupingBy(TErpProcurementGoods::getSupplierId));
- for (Map.Entry<String, List<TErpProcurementGoods>> entry : collect.entrySet()) {
- HashMap<String, Object> map1 = new HashMap<>();
- String supplierId = entry.getKey();
- TCrmSupplier supplier = crmSupplierService.getById(supplierId);
- List<TErpProcurementGoods> value = entry.getValue();
- BigDecimal reduce = value.stream().map(TErpProcurementGoods::getSupplierMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
- payMoney = payMoney.subtract(reduce);
- map1.put("recv_no", supplier.getRecvMerchantNo());
- map1.put("separate_value", reduce.multiply(BigDecimal.valueOf(100)).intValue() + "");
-// objects.add(map1);
- }
- HashMap<String, Object> map1 = new HashMap<>();
- //TODO hzt
- map1.put("recv_no", "822641048160MMJ");
- // 手续费
- BigDecimal bigDecimal = allMoney.multiply(new BigDecimal("0.038")).setScale(2, RoundingMode.HALF_UP);
- payMoney = payMoney.subtract(bigDecimal);
-
- map1.put("separate_value", payMoney.multiply(BigDecimal.valueOf(100)).intValue() + "");
- if(payMoney.doubleValue()>0){
- objects.add(map1);
- }
- erpProcurement.setMoney(payMoney);
- erpProcurement.setOutSeparateNo(outTradeNo);
- erpProcurementService.updateById(erpProcurement);
- // 添加平台的
- map.put("recv_datas", objects);
-
- reqMap.put("req_data", map);
-
-
- String jsonString = JSON.toJSONString(reqMap);
- post.body(jsonString);
- HttpResponse response = post.execute();
- String responseStr = response.body();
- JSONObject jsonObject = JSONObject.parseObject(responseStr);
- if ("成功".equals(jsonObject.getString("msg"))) {
- Object o1 = jsonObject.get("resp_data");
- JSONObject jsonObject2 = JSONObject.parseObject(o1.toString());
- String separate_no = jsonObject2.getString("separate_no");
- erpProcurement.setSeparateNo(separate_no);
- erpProcurementService.updateById(erpProcurement);
- }
-
- // 响应success
- JSONObject responseJsonObject = new JSONObject();
- responseJsonObject.put("code", "SUCCESS");
- responseJsonObject.put("message", "执行成功");
- return responseJsonObject;
- }
- return null;
- }
-
- @RequestMapping("/messageSeparateHandle")
- @ApiOperation(value = "拉卡拉分账信息回调接口")
- public Object messageSeparateHandle(HttpServletRequest request) throws Exception {
- String body = this.getBody(request);
- // 先处理支付完成 修改状态 后处理分账 后走分账回调
- JSONObject jsonObject1 = JSONObject.parseObject(body);
- Object o = jsonObject1.get("out_separate_no");
- Object status = jsonObject1.get("status");
- Object cmd_type = jsonObject1.get("cmd_type");
- Object detail_datas = jsonObject1.get("detail_datas");
- JSONArray jsonArray = JSONArray.parseArray(detail_datas.toString());
- if("SEPARATE".equals(cmd_type.toString())){
- TErpProcurement erpProcurement = erpProcurementService.getOne(new LambdaQueryWrapper<TErpProcurement>().eq(TErpProcurement::getOutSeparateNo, o.toString()));
- if ( erpProcurement!=null && "SUCCESS".equals(status)) {
- erpProcurement.setRefundStatus(1);
- erpProcurementService.updateById(erpProcurement);
- // 修改分账状态
- List<TErpProcurementGoods> list1 = erpProcurementGoodsService.list(new LambdaQueryWrapper<TErpProcurementGoods>().eq(TErpProcurementGoods::getProcurementId, erpProcurement.getId()));
- list1.stream().forEach(e->e.setStatus(1));
- erpProcurementGoodsService.updateBatchById(list1);
-
-
- // 响应success
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("code", "SUCCESS");
- jsonObject.put("message", "执行成功");
- return jsonObject;
- }
- }else if("FALLBACK".equals(cmd_type.toString())){
- TErpProcurement erpProcurement = erpProcurementService.getOne(new LambdaQueryWrapper<TErpProcurement>().eq(TErpProcurement::getRefundOutSeparateNo, o.toString()));
- if ( erpProcurement!=null && "SUCCESS".equals(status) && erpProcurement.getRefundStatus()==1) {
- erpProcurement.setRefundStatus(2);
- erpProcurementService.updateById(erpProcurement);
- List<TErpProcurementGoods> list1 = erpProcurementGoodsService.list(new LambdaQueryWrapper<TErpProcurementGoods>().eq(TErpProcurementGoods::getProcurementId, erpProcurement.getId()));
- list1.stream().forEach(e->e.setStatus(2));
- erpProcurementGoodsService.updateBatchById(list1);
-
-
- // 发起退款
- String time = DateUtils.dateTimeNow();
- String ipAddr = IpUtils.getIpAddr(request);
- // SYMBOLS 随机取4位数
- String str = "";
- for (int i = 0; i < 6; i++) {
- str += SYMBOLS.charAt(RANDOM.nextInt(SYMBOLS.length()));
- }
- String outTradeNo = time + str;
- String refund_amount = erpProcurement.getPayMoney().multiply(BigDecimal.valueOf(100)).intValue() + "";
-
- String apiPath = "sit/api/v3/rfd/refund_front/refund";
- String body1 = "{\n" +
- "\t\"req_time\": \"" + time + "\",\n" +
- "\t\"version\": \"3.0\",\n" +
- "\t\"req_data\": {\n" +
- "\t\t\"merchant_no\": \""+erpProcurement.getMerchantNo()+"\",\n" +
- "\t\t\"term_no\": \""+erpProcurement.getTermNo()+"\",\n" +
- "\t\t\"refund_amount\": " + refund_amount + ",\n" +
- "\t\t\"out_trade_no\": \"" + outTradeNo + "\",\n" +
- "\t\t\"notify_url\": \"" + "http://221.182.45.100:8089/t-sys-order/messageRefundHandle" + "\",\n" +
- "\t\t\"origin_log_no\": \"" + erpProcurement.getPayTransactionId() + "\",\n" +
- "\t\t\"location_info\": {\n" +
- "\t\t\t\"request_ip\": \"" + ipAddr + "\"\n" +
- "\t\t},\n" +
- "\t}\n" +
- "}";
- String authorization = getAuthorization(body1);
- org.apache.http.HttpResponse response = post(LakalaConfig.getServerUrl() + apiPath, body1, authorization);
- if (response.getStatusLine().getStatusCode() != 200) {
- return R.fail(500, "请求失败,statusCode " + response.getStatusLine()
- + IOUtils.toString(response.getEntity().getContent(), ENCODING));
- }
- String responseStr = IOUtils.toString(response.getEntity().getContent(), ENCODING);
- JSONObject jsonObject = JSONObject.parseObject(responseStr);
- JSONObject jsonObject2 = jsonObject.getJSONObject("resp_data");
- String code = jsonObject2.getString("log_no");
- erpProcurement.setRefundLogNo(code);
- erpProcurement.setRefundNo(outTradeNo);
- erpProcurementService.updateById(erpProcurement);
-
-
-
-
- // 响应success
- JSONObject jsonObject3 = new JSONObject();
- jsonObject3.put("code", "SUCCESS");
- jsonObject3.put("message", "执行成功");
- return jsonObject3;
- }
- }
-
- return null;
- }
- @RequestMapping("/messageRefundHandle")
- @ApiOperation(value = "拉卡拉退款信息回调接口")
- public Object messageRefundHandle(HttpServletRequest request) throws Exception {
- String body = this.getBody(request);
- // 先处理支付完成 修改状态 后处理分账 后走分账回调
- JSONObject jsonObject1 = JSONObject.parseObject(body);
- Object status = jsonObject1.get("trade_status");
- Object out_trade_no = jsonObject1.get("out_trade_no");
- if(status !=null && "SUCCESS".equals(status.toString())){
- TErpProcurement erpProcurement = erpProcurementService.getOne(new LambdaQueryWrapper<TErpProcurement>().eq(TErpProcurement::getRefundNo, out_trade_no.toString()));
- if ( erpProcurement!=null && "SUCCESS".equals(status)) {
- erpProcurement.setStatus(6);
- erpProcurementService.updateById(erpProcurement);
- // 响应success
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("code", "SUCCESS");
- jsonObject.put("message", "执行成功");
- return jsonObject;
- }
- }
- return null;
- }
-
-
-
-
- @ApiOperation(value = "退款")
- @PostMapping(value = "/refundOrder")
- @SneakyThrows
- public R<?> refundOrder(@RequestParam String id, String type, HttpServletRequest request) {
SysUser user = tokenService.getLoginUser().getUser();
- try {
- // 先退分账 在退订单
- // 查出采购单 算出价格 下单 算出应该分佣金额 应该分给谁
- TErpProcurement erpProcurement = erpProcurementService.getById(id);
- // 还未分账成功不能退款
-
- if(erpProcurement.getStatus()==null || erpProcurement.getStatus()!=1){
- return R.fail("订单处理中,请稍后操作");
+ Integer roleType = user.getRoleType();
+ if(roleType == 5){
+ // 诊所
+ TCrmClinic crmClinic = crmClinicService.getOne(Wrappers.lambdaQuery(TCrmClinic.class)
+ .eq(TCrmClinic::getUserId, user.getUserId())
+ .last("LIMIT 1"));
+ query.setClinicId(crmClinic.getId());
}
-
-
- String time = DateUtils.dateTimeNow();
-
- // SYMBOLS 随机取4位数
- String str = "";
- for (int i = 0; i < 6; i++) {
- str += SYMBOLS.charAt(RANDOM.nextInt(SYMBOLS.length()));
- }
- String outTradeNo = time + str;
-
- // 操作分账
- HttpRequest post = HttpUtil.createPost(LakalaConfig.getServerUrl() + "sit/api/v3/sacs/fallback");
- HashMap<String, Object> reqMap = new HashMap<>();
- reqMap.put("version", "3.0");
- reqMap.put("req_time", DateUtils.dateTimeNow());
+ return R.ok(sysOrderService.pageList(query));
+ }
- HashMap<String, Object> map = new HashMap<>();
- map.put("merchant_no", erpProcurement.getMerchantNo());
- map.put("origin_separate_no", erpProcurement.getSeparateNo());
- map.put("out_separate_no",outTradeNo);
- erpProcurement.setRefundOutSeparateNo(outTradeNo);
- erpProcurementService.updateById(erpProcurement);
-// List<TErpProcurementGoods> list = erpProcurementGoodsService.list(new LambdaQueryWrapper<TErpProcurementGoods>().eq(TErpProcurementGoods::getProcurementId, erpProcurement.getId()));
- // 根据供应商id分组
-// Map<String, List<TErpProcurementGoods>> collect = list.stream().collect(Collectors.groupingBy(TErpProcurementGoods::getSupplierId));
- ArrayList<HashMap<String, Object>> objects = new ArrayList<>();
-// BigDecimal allMoney = list.stream().map(TErpProcurementGoods::getSupplierMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
-// for (Map.Entry<String, List<TErpProcurementGoods>> entry : collect.entrySet()) {
-//
-// List<TErpProcurementGoods> value = entry.getValue();
-// BigDecimal reduce = value.stream().map(TErpProcurementGoods::getSupplierMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
-// String recv_no = value.stream().map(TErpProcurementGoods::getRecvNo).collect(Collectors.toList()).get(0);
-// }
- HashMap<String, Object> map1 = new HashMap<>();
- // TODO hzt
- map1.put("recv_no", "dsadasda");
- map1.put("amt", erpProcurement.getMoney().multiply(BigDecimal.valueOf(100)).intValue() + "");
- objects.add(map1);
- map.put("total_amt",erpProcurement.getMoney().multiply(BigDecimal.valueOf(100)).intValue() + "");
- map.put("origin_recv_datas",objects);
- reqMap.put("req_data", map);
-
-
- String jsonString = JSON.toJSONString(reqMap);
- post.body(jsonString);
- HttpResponse response = post.execute();
- String responseStr = response.body();
-
-
- return R.ok(responseStr);
- } catch (Exception e) {
- e.printStackTrace();
+ @ApiOperation(value = "获取诊所患者诊疗--搜索用户")
+ @PostMapping(value = "/userList")
+ public R<List<TSysAppUser>> pageList(@RequestBody TSysAppUserQuery query) {
+ LambdaQueryWrapper<TSysAppUser> eq = new LambdaQueryWrapper<TSysAppUser>().eq(TSysAppUser::getStatus, 1);
+ if(query.getNickName() != null && !query.getNickName().isEmpty()){
+ eq.and(e->e.like(TSysAppUser::getNickName, query.getNickName()).or().like(TSysAppUser::getPhone, query.getNickName()));
}
- return R.fail(500, "退款失败请联系平台管理员");
+// if(query.getPhone() != null && !query.getPhone().isEmpty()){
+// eq.like(TSysAppUser::getPhone, query.getPhone());
+// }
+ List<TSysAppUser> list = sysAppUserService.list(eq);
+ return R.ok(list);
}
+ @ApiOperation(value = "诊所患者诊疗--确认添加")
+ @PostMapping(value = "/add")
+ public R<String> add(@RequestBody @Valid TSysOrderDto dto) {
+ SysUser user = tokenService.getLoginUser().getUser();
+ Integer roleType = user.getRoleType();
-
-
-
-
-
- public org.apache.http.HttpResponse post(String url, String message, String authorization) throws Exception {
- SSLContext ctx = SSLContext.getInstance("TLS");
- X509TrustManager tm = new X509TrustManager() {
- public X509Certificate[] getAcceptedIssuers() {
- return null;
- }
-
- public void checkClientTrusted(X509Certificate[] xcs, String str) {
- }
-
- public void checkServerTrusted(X509Certificate[] xcs, String str) {
- }
- };
- HttpClient http = new DefaultHttpClient();
- ClientConnectionManager ccm = http.getConnectionManager();
- ctx.init(null, new TrustManager[]{tm}, null);
- SSLSocketFactory ssf = new SSLSocketFactory(ctx);
- ssf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
- SchemeRegistry registry = ccm.getSchemeRegistry();
- registry.register(new Scheme("https", ssf, 443));
- HttpPost post = new HttpPost(url);
- StringEntity myEntity = new StringEntity(message, ENCODING);
- post.setEntity(myEntity);
- post.setHeader("Authorization", SCHEMA + " " + authorization);
- post.setHeader("Accept", "application/json");
- post.setHeader("Content-Type", "application/json");
- return http.execute(post);
- }
-
- public final String getAuthorization(String body) throws IOException {
- String nonceStr = generateNonceStr();
- long timestamp = generateTimestamp();
-
- String message = LakalaConfig.getAppId() + "\n" + LakalaConfig.getMerchantNo() + "\n" + timestamp + "\n" + nonceStr + "\n" + body + "\n";
-
- System.out.println("getToken message : " + message);
-
- PrivateKey merchantPrivateKey = loadPrivateKey(new FileInputStream(new File(LakalaConfig.getPriKeyStr())));
-
- String signature = this.sign(message.getBytes(ENCODING), merchantPrivateKey);
-
- String authorization = "appid=\"" + LakalaConfig.getAppId() + "\"," + "serial_no=\"" + LakalaConfig.getMerchantNo() + "\"," + "timestamp=\""
- + timestamp + "\"," + "nonce_str=\"" + nonceStr + "\"," + "signature=\"" + signature + "\"";
- System.out.println("authorization message :" + authorization);
-
- return authorization;
- }
-
- public long generateTimestamp() {
- return System.currentTimeMillis() / 1000;
- }
-
- public String generateNonceStr() {
- char[] nonceChars = new char[32];
- for (int index = 0; index < nonceChars.length; ++index) {
- nonceChars[index] = SYMBOLS.charAt(RANDOM.nextInt(SYMBOLS.length()));
+ if(roleType == 5){
+ // 诊所
+ TCrmClinic crmClinic = crmClinicService.getOne(Wrappers.lambdaQuery(TCrmClinic.class)
+ .eq(TCrmClinic::getUserId, user.getUserId())
+ .last("LIMIT 1"));
+ sysOrderService.add(dto,crmClinic,user.getNickName(),user.getUserId().toString());
+ return R.ok("添加成功");
}
- return new String(nonceChars);
- }
-
- public static PrivateKey loadPrivateKey(InputStream inputStream) {
- try {
- ByteArrayOutputStream array = new ByteArrayOutputStream();
- byte[] buffer = new byte[1024];
- int length;
- while ((length = inputStream.read(buffer)) != -1) {
- array.write(buffer, 0, length);
- }
-
- String privateKey = array.toString("utf-8").replace("-----BEGIN PRIVATE KEY-----", "")
- .replace("-----END PRIVATE KEY-----", "").replaceAll("\\s+", "");
- KeyFactory kf = KeyFactory.getInstance("RSA");
- return kf.generatePrivate(new PKCS8EncodedKeySpec(Base64.decodeBase64(privateKey)));
- } catch (NoSuchAlgorithmException e) {
- throw new RuntimeException("当前Java环境不支持RSA", e);
- } catch (InvalidKeySpecException e) {
- throw new RuntimeException("无效的密钥格式");
- } catch (IOException e) {
- throw new RuntimeException("无效的密钥");
- }
- }
-
- public String sign(byte[] message, PrivateKey privateKey) {
- try {
- Signature sign = Signature.getInstance("SHA256withRSA");
- sign.initSign(privateKey);
- sign.update(message);
- return new String(Base64.encodeBase64(sign.sign()));
- } catch (NoSuchAlgorithmException e) {
- throw new RuntimeException("当前Java环境不支持SHA256withRSA", e);
- } catch (SignatureException e) {
- throw new RuntimeException("签名计算失败", e);
- } catch (InvalidKeyException e) {
- throw new RuntimeException("无效的私钥", e);
- }
+ return R.fail("添加失败");
}
- public final String getBody(HttpServletRequest request) {
- InputStreamReader in = null;
- try {
- in = new InputStreamReader(request.getInputStream(), StandardCharsets.UTF_8);
- StringBuffer bf = new StringBuffer();
- int len;
- char[] chs = new char[1024];
- while ((len = in.read(chs)) != -1) {
- bf.append(new String(chs, 0, len));
- }
- return bf.toString();
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- if (null != in) {
- try {
- in.close();
- } catch (Exception e) {
- }
- }
- }
- return null;
- }
+ @ApiOperation(value = "诊所患者诊疗--详情")
+ @GetMapping(value = "/detail/{id}")
+ public R<TSysOrderDetailVo> detail(@PathVariable String id) {
+ TSysOrder tSysOrder = sysOrderService.getById(id);
- public static X509Certificate loadCertificate(InputStream inputStream) {
- try {
- CertificateFactory cf = CertificateFactory.getInstance("X509");
- X509Certificate cert = (X509Certificate) cf.generateCertificate(inputStream);
+ TSysOrderDetailVo detail = new TSysOrderDetailVo();
+ detail.setId(tSysOrder.getId());
+ String appUserId = tSysOrder.getAppUserId();
+ TSysAppUser appUser = sysAppUserService.getById(appUserId);
+ detail.setUserName(appUser.getNickName());
+ detail.setCheckTime(tSysOrder.getCheckTime());
+ detail.setTotalMoney(tSysOrder.getTotalMoney());
- cert.checkValidity();
- return cert;
- } catch (CertificateExpiredException e) {
- throw new RuntimeException("证书已过期", e);
- } catch (CertificateNotYetValidException e) {
- throw new RuntimeException("证书尚未生效", e);
- } catch (CertificateException e) {
- throw new RuntimeException("无效的证书", e);
- }
- }
+ List<TSysOrderGoods> list = sysOrderGoodsService.list(new LambdaQueryWrapper<TSysOrderGoods>().eq(TSysOrderGoods::getOrderId, id));
+ detail.setList(list);
- private static boolean verify(X509Certificate certificate, byte[] message, String signature) {
- try {
- Signature sign = Signature.getInstance("SHA256withRSA");
- sign.initVerify(certificate);
- sign.update(message);
- byte[] signatureB = Base64.decodeBase64(signature);
- return sign.verify(signatureB);
- } catch (NoSuchAlgorithmException e) {
- throw new RuntimeException("当前Java环境不支持SHA256withRSA", e);
- } catch (SignatureException e) {
- throw new RuntimeException("签名验证过程发生了错误", e);
- } catch (InvalidKeyException e) {
- throw new RuntimeException("无效的证书", e);
- }
+ return R.ok(detail);
}
--
Gitblit v1.7.1