Commit 2b60d23e authored by 谢希宇's avatar 谢希宇

Merge branch 'master' of http://106.14.62.141:8081/sa_aidea/aidea

 Conflicts:
	aidea-modules/prescription-module/src/main/java/com/cftech/prescription/service/PrescriptionService.java
	aidea-modules/prescription-module/src/main/java/com/cftech/prescription/service/impl/PrescriptionServiceImpl.java
	cftech-common-web/src/main/resources/common-test.properties
parents a22c9354 b3368cc1
...@@ -15,6 +15,7 @@ public class CdfortisConstant { ...@@ -15,6 +15,7 @@ public class CdfortisConstant {
* 成功的返回值 * 成功的返回值
*/ */
public static String RESULT_SUCC_CODE = "C00010000"; public static String RESULT_SUCC_CODE = "C00010000";
public static String RESULT_NO_DATA_CODE = "C00030016";
/** /**
......
package com.cftech.cdfortis.model;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class FbusiDetail implements Serializable {
private String id;
private String storeId;
private String hospitalName;
private String storeName;
private String custName;
private String weight;
private String custSex;
private String custPhone;
private String symptom;
private String syptmFlag;
private String doctorName;
private String docStatus;
private String docResult;
private String doctorDpmtName;
private String pharmName;
private String status;
private String result;
private String auditDate;
private String startTime;
private String guoms;
private String age;
private String presUrl;
private List<FbusiDrug> drugs;
private List<FbusiDrug> drugList;
}
package com.cftech.cdfortis.model;
import lombok.Data;
import java.io.Serializable;
@Data
public class FbusiDrug implements Serializable {
private String drugId;
private String drugName;
private String drugCompany;
private Long drugNum;
private String apprNumber;
private String spec;
private String dosage;
private String drugUnit;
private String otc;
private String drugErpNo;
}
...@@ -2,6 +2,8 @@ package com.cftech.cdfortis.service; ...@@ -2,6 +2,8 @@ package com.cftech.cdfortis.service;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.cftech.cdfortis.model.FbusiDetail;
import com.cftech.prescription.model.Prescription;
import com.cftech.product.model.Product; import com.cftech.product.model.Product;
import java.util.List; import java.util.List;
...@@ -14,21 +16,13 @@ import java.util.List; ...@@ -14,21 +16,13 @@ import java.util.List;
*/ */
public interface CdfortisService { public interface CdfortisService {
/**
* 获取微问诊token
*
* @return
*/
JSONObject getTokenResult();
/** /**
* 药品清单上传 * 药品清单上传
* *
* @param productList * @param productList
* @return * @return
*/ */
JSONObject uploadDrugInfo(List<Product> productList); JSONObject uploadDrugInfo(List<Product> productList) throws Exception;
/** /**
* 获取图文处方列表 * 获取图文处方列表
...@@ -39,7 +33,7 @@ public interface CdfortisService { ...@@ -39,7 +33,7 @@ public interface CdfortisService {
* @param endTime * @param endTime
* @return * @return
*/ */
JSONObject getFbusiList(int page, int rows, String startTime, String endTime); List<Prescription> getFbusiList(int page, int rows, String startTime, String endTime) throws Exception;
/** /**
* 获取图文处方详情 * 获取图文处方详情
...@@ -47,7 +41,17 @@ public interface CdfortisService { ...@@ -47,7 +41,17 @@ public interface CdfortisService {
* @param presId * @param presId
* @return * @return
*/ */
JSONObject getFbusiDetail(String presId); FbusiDetail getFbusiDetail(String presId) throws Exception;
/**
* 通过订单号图文处方详情
*
* @param orderId
* @return
* @throws Exception
*/
FbusiDetail getFbusiDetailByOrderId(String orderId) throws Exception;
/** /**
* 获取图文处方图片 * 获取图文处方图片
...@@ -55,5 +59,5 @@ public interface CdfortisService { ...@@ -55,5 +59,5 @@ public interface CdfortisService {
* @param presId * @param presId
* @return * @return
*/ */
JSONObject getFbusiPicture(String presId); String getFbusiPictureUrl(String presId) throws Exception;
} }
package com.cftech.cdfortis.service.impl; package com.cftech.cdfortis.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.cftech.cdfortis.constants.CdfortisConstant; import com.cftech.cdfortis.constants.CdfortisConstant;
import com.cftech.cdfortis.model.CdfortisDrugInfo; import com.cftech.cdfortis.model.CdfortisDrugInfo;
import com.cftech.cdfortis.model.FbusiDetail;
import com.cftech.cdfortis.service.CdfortisService; import com.cftech.cdfortis.service.CdfortisService;
import com.cftech.cdfortis.util.CdfortisResponseUtil; import com.cftech.cdfortis.util.CdfortisResponseUtil;
import com.cftech.cdfortis.util.CdfortisTokenUtil; import com.cftech.cdfortis.util.CdfortisTokenUtil;
import com.cftech.core.util.StringUtils;
import com.cftech.core.util.SystemConfig; import com.cftech.core.util.SystemConfig;
import com.cftech.prescription.model.Prescription;
import com.cftech.product.model.Product; import com.cftech.product.model.Product;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import okhttp3.MediaType; import okhttp3.MediaType;
...@@ -15,6 +19,7 @@ import okhttp3.RequestBody; ...@@ -15,6 +19,7 @@ import okhttp3.RequestBody;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -38,23 +43,6 @@ public class CdfortisServiceImpl implements CdfortisService { ...@@ -38,23 +43,6 @@ public class CdfortisServiceImpl implements CdfortisService {
private static String appid = SystemConfig.p.getProperty("cdfortis.appid"); private static String appid = SystemConfig.p.getProperty("cdfortis.appid");
/**
* 获取token
*
* @return
*/
@Override
public JSONObject getTokenResult() {
JSONObject rtnJson = new JSONObject();
try {
String token = cdfortisTokenUtil.getToken();
rtnJson.put("errorNo", "0");
rtnJson.put("data", token);
} catch (Exception e) {
handleException(rtnJson, e);
}
return rtnJson;
}
/** /**
* 上传药品清单 * 上传药品清单
...@@ -63,11 +51,8 @@ public class CdfortisServiceImpl implements CdfortisService { ...@@ -63,11 +51,8 @@ public class CdfortisServiceImpl implements CdfortisService {
* @return * @return
*/ */
@Override @Override
public JSONObject uploadDrugInfo(List<Product> productList) { public JSONObject uploadDrugInfo(List<Product> productList) throws Exception {
JSONObject rtnJson = new JSONObject();
String uploadUrl = SystemConfig.p.getProperty("cdfortis.drug_upload_url"); String uploadUrl = SystemConfig.p.getProperty("cdfortis.drug_upload_url");
try {
// 构建参数 // 构建参数
JSONObject param = new JSONObject(); JSONObject param = new JSONObject();
param.put("appid", appid); param.put("appid", appid);
...@@ -77,32 +62,10 @@ public class CdfortisServiceImpl implements CdfortisService { ...@@ -77,32 +62,10 @@ public class CdfortisServiceImpl implements CdfortisService {
param.put("drugInfo", cdfortisDrugList); param.put("drugInfo", cdfortisDrugList);
RequestBody body = RequestBody.create(MEDIA_TYPE_JSON, param.toJSONString()); RequestBody body = RequestBody.create(MEDIA_TYPE_JSON, param.toJSONString());
// 请求获取数据 // 请求获取数据
Object data = CdfortisResponseUtil.request(uploadUrl, CdfortisConstant.METHOD_POST, String data = CdfortisResponseUtil.request(uploadUrl, CdfortisConstant.METHOD_POST,
null, null, body, rtnJson); null, null, body);
if (data == null) {
return rtnJson;
}
// 判断数据是否正确 // 判断数据是否正确
if (data instanceof JSONObject) { return JSONObject.parseObject(data);
JSONObject dataJsonObj = (JSONObject) data;
boolean isAllSuccess = dataJsonObj.getBooleanValue("isAllSuccess");
if (!isAllSuccess) {
JSONArray failedDataArr = dataJsonObj.getJSONArray("failedData");
//TODO 更新药物上传状态
rtnJson.put("errorNo", "0");
rtnJson.put("data", failedDataArr);
return rtnJson;
}
}
rtnJson.put("errorNo", "0");
rtnJson.put("data", "");
} catch (Exception e) {
handleException(rtnJson, e);
}
return rtnJson;
} }
...@@ -116,10 +79,8 @@ public class CdfortisServiceImpl implements CdfortisService { ...@@ -116,10 +79,8 @@ public class CdfortisServiceImpl implements CdfortisService {
* @return * @return
*/ */
@Override @Override
public JSONObject getFbusiList(int page, int rows, String startTime, String endTime) { public List<Prescription> getFbusiList(int page, int rows, String startTime, String endTime) throws Exception {
JSONObject rtnJson = new JSONObject();
String getFbusiListUrl = SystemConfig.p.getProperty("cdfortis.get_fbusi_list_url"); String getFbusiListUrl = SystemConfig.p.getProperty("cdfortis.get_fbusi_list_url");
try {
// 构建URL参数 // 构建URL参数
Map<String, String> urlParam = new HashMap<>(6); Map<String, String> urlParam = new HashMap<>(6);
urlParam.put("appid", appid); urlParam.put("appid", appid);
...@@ -129,17 +90,20 @@ public class CdfortisServiceImpl implements CdfortisService { ...@@ -129,17 +90,20 @@ public class CdfortisServiceImpl implements CdfortisService {
urlParam.put("startTime", startTime); urlParam.put("startTime", startTime);
urlParam.put("endTime", endTime); urlParam.put("endTime", endTime);
// 请求获取数据 // 请求获取数据
Object data = CdfortisResponseUtil.request(getFbusiListUrl, CdfortisConstant.METHOD_GET, urlParam, String dataStr = CdfortisResponseUtil.request(getFbusiListUrl, CdfortisConstant.METHOD_GET, urlParam,
null, null, rtnJson); null, null);
if (data == null) { // 没数据时的解决方案 C00030016
return rtnJson; if (StringUtils.isEmpty(dataStr)) {
return new ArrayList<>();
} }
rtnJson.put("errorNo", "0"); JSONObject dataObject = JSON.parseObject(dataStr);
rtnJson.put("data", data); int count = dataObject.getIntValue("count");
} catch (Exception e) { if (count == 0) {
handleException(rtnJson, e); return new ArrayList<>();
} }
return rtnJson; String datalistStr = dataObject.getString("list");
return JSONArray.parseArray(datalistStr, Prescription.class);
} }
/** /**
...@@ -149,27 +113,44 @@ public class CdfortisServiceImpl implements CdfortisService { ...@@ -149,27 +113,44 @@ public class CdfortisServiceImpl implements CdfortisService {
* @return * @return
*/ */
@Override @Override
public JSONObject getFbusiDetail(String presId) { public FbusiDetail getFbusiDetail(String presId) throws Exception {
JSONObject rtnJson = new JSONObject();
String getFbusiInfoUrl = SystemConfig.p.getProperty("cdfortis.get_fbusi_info_url"); String getFbusiInfoUrl = SystemConfig.p.getProperty("cdfortis.get_fbusi_info_url");
try {
// 构建URL参数 // 构建URL参数
Map<String, String> urlParam = new HashMap<>(3); Map<String, String> urlParam = new HashMap<>(3);
urlParam.put("appid", appid); urlParam.put("appid", appid);
urlParam.put("token", cdfortisTokenUtil.getToken()); urlParam.put("token", cdfortisTokenUtil.getToken());
urlParam.put("presId", presId); urlParam.put("presId", presId);
// 请求获取数据 // 请求获取数据
Object data = CdfortisResponseUtil.request(getFbusiInfoUrl, CdfortisConstant.METHOD_GET, urlParam, String data = CdfortisResponseUtil.request(getFbusiInfoUrl, CdfortisConstant.METHOD_GET, urlParam,
null, null, rtnJson); null, null);
if (data == null) { if (StringUtils.isEmpty(data)) {
return rtnJson; return null;
} }
rtnJson.put("errorNo", "0"); return JSONObject.parseObject(data, FbusiDetail.class);
rtnJson.put("data", data);
} catch (Exception e) {
handleException(rtnJson, e);
} }
return rtnJson;
/**
* 通过订单号获取图文详情
*
* @param orderId
* @return
* @throws Exception
*/
@Override
public FbusiDetail getFbusiDetailByOrderId(String orderId) throws Exception {
String getFbusiInfoByOrderIdUrl = SystemConfig.p.getProperty("cdfortis.get_fbusi_info_by_order_id_url");
// 构建URL参数
Map<String, String> urlParam = new HashMap<>(3);
urlParam.put("appid", appid);
urlParam.put("token", cdfortisTokenUtil.getToken());
urlParam.put("orderId", orderId);
// 请求获取数据
String data = CdfortisResponseUtil.request(getFbusiInfoByOrderIdUrl, CdfortisConstant.METHOD_GET, urlParam,
null, null);
if (StringUtils.isEmpty(data)) {
return null;
}
return JSONObject.parseObject(data, FbusiDetail.class);
} }
/** /**
...@@ -179,27 +160,17 @@ public class CdfortisServiceImpl implements CdfortisService { ...@@ -179,27 +160,17 @@ public class CdfortisServiceImpl implements CdfortisService {
* @return * @return
*/ */
@Override @Override
public JSONObject getFbusiPicture(String presId) { public String getFbusiPictureUrl(String presId) throws Exception {
JSONObject rtnJson = new JSONObject();
String getFbusiPicUrl = SystemConfig.p.getProperty("cdfortis.get_fbusi_pic_url"); String getFbusiPicUrl = SystemConfig.p.getProperty("cdfortis.get_fbusi_pic_url");
try {
// 构建URL参数 // 构建URL参数
Map<String, String> urlParam = new HashMap<>(3); Map<String, String> urlParam = new HashMap<>(3);
urlParam.put("appid", appid); urlParam.put("appid", appid);
urlParam.put("token", cdfortisTokenUtil.getToken()); urlParam.put("token", cdfortisTokenUtil.getToken());
urlParam.put("presId", presId); urlParam.put("presId", presId);
// 请求获取数据 // 请求获取数据
Object data = CdfortisResponseUtil.request(getFbusiPicUrl, CdfortisConstant.METHOD_GET, urlParam, String picUrl = CdfortisResponseUtil.request(getFbusiPicUrl, CdfortisConstant.METHOD_GET, urlParam,
null, null, rtnJson); null, null);
if (data == null) { return picUrl;
return rtnJson;
}
rtnJson.put("errorNo", "0");
rtnJson.put("data", data);
} catch (Exception e) {
handleException(rtnJson, e);
}
return rtnJson;
} }
...@@ -222,18 +193,4 @@ public class CdfortisServiceImpl implements CdfortisService { ...@@ -222,18 +193,4 @@ public class CdfortisServiceImpl implements CdfortisService {
} }
/**
* 处理异常
*
* @param rtnJson
* @param e
*/
private void handleException(JSONObject rtnJson, Exception e) {
log.error(e.getMessage(), e);
rtnJson.put("errorNo", "1");
rtnJson.put("errorMsg", e.getMessage());
rtnJson.put("errorEnMsg", e.getMessage());
}
} }
...@@ -2,6 +2,7 @@ package com.cftech.cdfortis.util; ...@@ -2,6 +2,7 @@ package com.cftech.cdfortis.util;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.cftech.cdfortis.constants.CdfortisConstant; import com.cftech.cdfortis.constants.CdfortisConstant;
import com.cftech.core.util.SystemConfig;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import okhttp3.*; import okhttp3.*;
...@@ -37,7 +38,8 @@ public class CdfortisResponseUtil { ...@@ -37,7 +38,8 @@ public class CdfortisResponseUtil {
*/ */
public static void checkResponse(JSONObject retObj) throws Exception { public static void checkResponse(JSONObject retObj) throws Exception {
JSONObject returnCode = retObj.getJSONObject(CdfortisConstant.RETURN_CODE); JSONObject returnCode = retObj.getJSONObject(CdfortisConstant.RETURN_CODE);
if (!CdfortisConstant.RESULT_SUCC_CODE.equals(returnCode.getString(CdfortisConstant.RETURN_CODE_KEY))) { String codeValue = returnCode.getString(CdfortisConstant.RETURN_CODE_KEY);
if (!CdfortisConstant.RESULT_SUCC_CODE.equals(codeValue)) {
log.error(returnCode.toJSONString()); log.error(returnCode.toJSONString());
throw new Exception(returnCode.getString(CdfortisConstant.RETURN_CODE_CONTENT)); throw new Exception(returnCode.getString(CdfortisConstant.RETURN_CODE_CONTENT));
} }
...@@ -52,11 +54,10 @@ public class CdfortisResponseUtil { ...@@ -52,11 +54,10 @@ public class CdfortisResponseUtil {
* @param queryParams * @param queryParams
* @param headers * @param headers
* @param body * @param body
* @param rtnJson
* @return * @return
* @throws Exception * @throws Exception
*/ */
public static Object request(String url, String method, Map<String, String> queryParams, Map<String, String> headers, RequestBody body, JSONObject rtnJson) throws Exception { public static String request(String url, String method, Map<String, String> queryParams, Map<String, String> headers, RequestBody body) throws Exception {
HttpUrl.Builder urlBuild = HttpUrl.parse(url).newBuilder(); HttpUrl.Builder urlBuild = HttpUrl.parse(url).newBuilder();
// 处理query参数 // 处理query参数
if (queryParams != null) { if (queryParams != null) {
...@@ -75,27 +76,24 @@ public class CdfortisResponseUtil { ...@@ -75,27 +76,24 @@ public class CdfortisResponseUtil {
builder.post(body); builder.post(body);
} }
OkHttpClient client = getClient(); OkHttpClient client = getClient();
try {
Response response = client.newCall(builder.build()).execute(); Response response = client.newCall(builder.build()).execute();
// 判断http状态值 // 判断http状态值
if (CdfortisConstant.HTTP_SUCC != response.code()) { if (CdfortisConstant.HTTP_SUCC != response.code()) {
log.error(response.message()); log.error(response.message());
rtnJson.put("errorNo", "1"); throw new Exception("微问诊请求失败");
rtnJson.put("errorMsg", "微问诊请求失败");
rtnJson.put("errorEnMsg", "request failure");
return null;
} }
ResponseBody responseBody = response.body(); ResponseBody responseBody = response.body();
String retStr = responseBody.string(); String retStr = responseBody.string();
log.debug("request result: {}", retStr); log.debug("request result: {}", retStr);
// 转换结果 // 转换结果
JSONObject retObj = JSONObject.parseObject(retStr); JSONObject retObj = JSONObject.parseObject(retStr);
// 插件结果 // 接口没有数据的特殊处理(理论上没有数据应该是一个空数组,但是微问诊返回结果是错误)
checkResponse(retObj); if (CdfortisConstant.RESULT_NO_DATA_CODE.equals(retObj.getJSONObject(CdfortisConstant.RETURN_CODE).getString(CdfortisConstant.RETURN_CODE_KEY))) {
return retObj.get("data"); return "";
} catch (Exception e) {
throw new Exception(e.getMessage());
} }
// 检查结果
checkResponse(retObj);
return retObj.getString("data");
} }
} }
package com.cftech.cdfortis.web; package com.cftech.cdfortis.web;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.cftech.cdfortis.model.FbusiDetail;
import com.cftech.cdfortis.service.CdfortisService; import com.cftech.cdfortis.service.CdfortisService;
import com.cftech.cdfortis.util.CdfortisTokenUtil;
import com.cftech.prescription.model.Prescription;
import com.cftech.prescription.service.PrescriptionService;
import com.cftech.product.model.Product; import com.cftech.product.model.Product;
import com.cftech.product.service.ProductService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/** /**
* 微问诊相关接口调用Controller * 微问诊相关接口调用Controller
...@@ -24,6 +33,15 @@ public class CdfortisController { ...@@ -24,6 +33,15 @@ public class CdfortisController {
@Autowired @Autowired
CdfortisService cdfortisService; CdfortisService cdfortisService;
@Autowired
CdfortisTokenUtil cdfortisTokenUtil;
@Autowired
PrescriptionService prescriptionService;
@Autowired
ProductService productService;
/** /**
* 获取微问诊token * 获取微问诊token
* *
...@@ -31,7 +49,15 @@ public class CdfortisController { ...@@ -31,7 +49,15 @@ public class CdfortisController {
*/ */
@GetMapping("/get/token") @GetMapping("/get/token")
public JSONObject getToken() { public JSONObject getToken() {
return cdfortisService.getTokenResult(); JSONObject rtnJson = new JSONObject();
try {
String token = cdfortisTokenUtil.getToken();
setSuccResult(rtnJson, token);
} catch (Exception e) {
log.error(e.getMessage());
handleException(rtnJson, e);
}
return rtnJson;
} }
...@@ -43,7 +69,31 @@ public class CdfortisController { ...@@ -43,7 +69,31 @@ public class CdfortisController {
*/ */
@PostMapping("/upload/druginfo") @PostMapping("/upload/druginfo")
public JSONObject uploadDrugInfo(@RequestBody List<Product> productList) { public JSONObject uploadDrugInfo(@RequestBody List<Product> productList) {
return cdfortisService.uploadDrugInfo(productList); JSONObject rtnJson = new JSONObject();
try {
JSONObject dataJsonObj = cdfortisService.uploadDrugInfo(productList);
boolean isAllSuccess = dataJsonObj.getBooleanValue("isAllSuccess");
Object data = "";
if (!isAllSuccess) {
JSONArray failedDataArr = dataJsonObj.getJSONArray("failedData");
// List转map,key是productNumber、value是product本身
List<String> productNumberList = productList.stream()
.map(Product::getProductNumber)
.collect(Collectors.toList());
// 遍历上传失败的数据,排除掉
for (int i = 0; i < failedDataArr.size(); i++) {
String erpId = failedDataArr.getJSONObject(i).getString("erpId");
productNumberList.remove(erpId);
}
productService.updateUploadFlag(productNumberList, true);
data = failedDataArr;
}
setSuccResult(rtnJson, data);
} catch (Exception e) {
handleException(rtnJson, e);
}
return rtnJson;
} }
...@@ -57,20 +107,53 @@ public class CdfortisController { ...@@ -57,20 +107,53 @@ public class CdfortisController {
* @return * @return
*/ */
@GetMapping("/get/fbusi/list") @GetMapping("/get/fbusi/list")
public JSONObject getFbusiList(int iDisplayStart, int iDisplayLength, @RequestParam String startTime, @RequestParam String endTime) { public JSONObject getFbusiList(int iDisplayStart, int iDisplayLength, String startTime, String endTime) {
return cdfortisService.getFbusiList(iDisplayStart, iDisplayLength, startTime, endTime); JSONObject rtnJson = new JSONObject();
try {
List<Prescription> preScriptionList = prescriptionService.findPreScriptionList(iDisplayStart, iDisplayLength, startTime, endTime);
setSuccResult(rtnJson, preScriptionList);
} catch (Exception e) {
handleException(rtnJson, e);
}
return rtnJson;
} }
/** /**
* 获取图文处方详情 * 获取Prescritpion Id获取图文处方详情
* *
* @param presId 处方编号 * @param presId 处方编号
* @return * @return
*/ */
@GetMapping("/get/fbusi/detail") @GetMapping("/get/fbusi/detail")
public JSONObject getFbusiDetail(@RequestParam String presId) { public JSONObject getFbusiDetail(@RequestParam String presId) {
return cdfortisService.getFbusiDetail(presId); JSONObject rtnJson = new JSONObject();
try {
Prescription preScription = prescriptionService.findPreScriptionById(presId);
setSuccResult(rtnJson, preScription);
} catch (Exception e) {
handleException(rtnJson, e);
}
return rtnJson;
}
/**
* 通过orderId获取图文处方详情
*
* @param orderId 处方编号
* @return
*/
@GetMapping("/get/fbusi/info")
public JSONObject getFbusiDetailByOrderId(@RequestParam String orderId) {
JSONObject rtnJson = new JSONObject();
try {
Prescription prescription = prescriptionService.findPreScriptionByOrderId(orderId);
setSuccResult(rtnJson, prescription);
} catch (Exception e) {
handleException(rtnJson, e);
}
return rtnJson;
} }
...@@ -82,7 +165,49 @@ public class CdfortisController { ...@@ -82,7 +165,49 @@ public class CdfortisController {
*/ */
@GetMapping("/get/fbusi/picture") @GetMapping("/get/fbusi/picture")
public JSONObject getFbusiPicture(@RequestParam String presId) { public JSONObject getFbusiPicture(@RequestParam String presId) {
return cdfortisService.getFbusiPicture(presId); JSONObject rtnJson = new JSONObject();
try {
String pictureUrl = cdfortisService.getFbusiPictureUrl(presId);
setSuccResult(rtnJson, pictureUrl);
} catch (Exception e) {
handleException(rtnJson, e);
}
return rtnJson;
}
/**
* 成功的结果
*
* @return
*/
private void setSuccResult(JSONObject rtnJson, Object data) {
rtnJson.put("errorNo", "0");
rtnJson.put("data", data);
}
/**
* 失败的结果
*
* @return
*/
private void errorResult(String errorMsg) {
JSONObject rtnJson = new JSONObject();
rtnJson.put("errorNo", "1");
rtnJson.put("errorMsg", errorMsg);
}
/**
* 处理异常
*
* @param rtnJson
* @param e
*/
private void handleException(JSONObject rtnJson, Exception e) {
log.error(e.getMessage(), e);
rtnJson.put("errorNo", "1");
rtnJson.put("errorMsg", e.getMessage());
rtnJson.put("errorEnMsg", e.getMessage());
} }
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<result column="spec" property="spec"/> <result column="spec" property="spec"/>
<result column="appr_number" property="apprNumber"/> <result column="appr_number" property="apprNumber"/>
<result column="drug_num" property="drugNum"/> <result column="drug_num" property="drugNum"/>
<result column="drug_compay" property="drugCompay"/> <result column="drug_compay" property="drugCompany"/>
<result column="name" property="name"/> <result column="name" property="name"/>
<result column="drug_id" property="drugId"/> <result column="drug_id" property="drugId"/>
<result column="parent_id" property="parentId"/> <result column="parent_id" property="parentId"/>
...@@ -62,7 +62,7 @@ ...@@ -62,7 +62,7 @@
spec, spec,
appr_number, appr_number,
drug_num, drug_num,
drug_compay, drug_company,
name, name,
drug_id, drug_id,
parent_id, parent_id,
...@@ -94,7 +94,7 @@ ...@@ -94,7 +94,7 @@
#{spec, jdbcType=VARCHAR}, #{spec, jdbcType=VARCHAR},
#{apprNumber, jdbcType=VARCHAR}, #{apprNumber, jdbcType=VARCHAR},
#{drugNum, jdbcType=BIGINT}, #{drugNum, jdbcType=BIGINT},
#{drugCompay, jdbcType=VARCHAR}, #{drugCompany, jdbcType=VARCHAR},
#{name, jdbcType=VARCHAR}, #{name, jdbcType=VARCHAR},
#{drugId, jdbcType=VARCHAR}, #{drugId, jdbcType=VARCHAR},
#{parentId, jdbcType=BIGINT}, #{parentId, jdbcType=BIGINT},
...@@ -159,8 +159,8 @@ ...@@ -159,8 +159,8 @@
<if test="drugNum != null"> <if test="drugNum != null">
drug_num = #{drugNum, jdbcType=BIGINT}, drug_num = #{drugNum, jdbcType=BIGINT},
</if> </if>
<if test="drugCompay != null"> <if test="drugCompany != null">
drug_compay = #{drugCompay, jdbcType=VARCHAR}, drug_company = #{drugCompany, jdbcType=VARCHAR},
</if> </if>
<if test="name != null"> <if test="name != null">
name = #{name, jdbcType=VARCHAR}, name = #{name, jdbcType=VARCHAR},
......
...@@ -43,7 +43,7 @@ public class PreDrugs implements Serializable { ...@@ -43,7 +43,7 @@ public class PreDrugs implements Serializable {
private String price; private String price;
/* 药品生产厂家 */ /* 药品生产厂家 */
@ExportConfig(value = "药品生产厂家", width = 100, showLevel = 1) @ExportConfig(value = "药品生产厂家", width = 100, showLevel = 1)
private String drugCompay; private String drugCompany;
/* 药品名称 */ /* 药品名称 */
@ExportConfig(value = "药品名称", width = 100, showLevel = 1) @ExportConfig(value = "药品名称", width = 100, showLevel = 1)
private String name; private String name;
......
package com.cftech.prescription.service; package com.cftech.prescription.service;
import com.alibaba.fastjson.JSONObject;
import com.cftech.prescription.model.Prescription; import com.cftech.prescription.model.Prescription;
import com.cftech.core.generic.GenericService; import com.cftech.core.generic.GenericService;
...@@ -19,6 +18,27 @@ public interface PrescriptionService extends GenericService<Prescription> { ...@@ -19,6 +18,27 @@ public interface PrescriptionService extends GenericService<Prescription> {
* @return * @return
*/ */
JSONObject generatePre(String appId, String openId); JSONObject generatePre(String appId, String openId);
/**
* 获取处方单列表(从距今日7天内的数据)
*
* @param iDisplayStart
* @param iDisplayLength
* @return
* @throws Exception
*/
List<Prescription> findPreScriptionList(int iDisplayStart, int iDisplayLength) throws Exception;
/**
* 获取处方单列表(从开始时间到结束时间的数据、间隔不能超过7天)
*
* @param iDisplayStart
* @param iDisplayLength
* @param startTime
* @param endTime
* @return
* @throws Exception
*/
List<Prescription> findPreScriptionList(int iDisplayStart, int iDisplayLength, String startTime, String endTime) throws Exception;
/** /**
* 获取用户最新处方单 * 获取用户最新处方单
...@@ -26,4 +46,13 @@ public interface PrescriptionService extends GenericService<Prescription> { ...@@ -26,4 +46,13 @@ public interface PrescriptionService extends GenericService<Prescription> {
* @return * @return
*/ */
JSONObject findLastPrescription(String appId, String openId); JSONObject findLastPrescription(String appId, String openId);
/**
* 获取Prescription详情
* @param presId
* @return
*/
Prescription findPreScriptionById(String presId) throws Exception;
Prescription findPreScriptionByOrderId(String orderId) throws Exception;
} }
...@@ -16,6 +16,8 @@ import com.cftech.core.sql.Conds; ...@@ -16,6 +16,8 @@ import com.cftech.core.sql.Conds;
import com.cftech.product.model.Product; import com.cftech.product.model.Product;
import com.cftech.product.service.ProductService; import com.cftech.product.service.ProductService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.redis.connection.ConnectionUtils; import org.springframework.data.redis.connection.ConnectionUtils;
...@@ -23,6 +25,11 @@ import org.springframework.stereotype.Service; ...@@ -23,6 +25,11 @@ import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.util.List; import java.util.List;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.*;
import java.util.stream.Collectors;
/** /**
* 处方单列表ServiceImpl * 处方单列表ServiceImpl
...@@ -47,6 +54,12 @@ public class PrescriptionServiceImpl extends GenericServiceImpl<Prescription> im ...@@ -47,6 +54,12 @@ public class PrescriptionServiceImpl extends GenericServiceImpl<Prescription> im
@Autowired @Autowired
private ProductService productService; private ProductService productService;
@Autowired
CdfortisService cdfortisService;
@Autowired
PreDrugsService preDrugsService;
@Override @Override
public GenericDao<Prescription> getGenericMapper() { public GenericDao<Prescription> getGenericMapper() {
return prescriptionMapper; return prescriptionMapper;
...@@ -107,4 +120,165 @@ public class PrescriptionServiceImpl extends GenericServiceImpl<Prescription> im ...@@ -107,4 +120,165 @@ public class PrescriptionServiceImpl extends GenericServiceImpl<Prescription> im
} }
return retObj; return retObj;
} }
@Override
public List<Prescription> findPreScriptionList(int iDisplayStart, int iDisplayLength) throws Exception {
return findPreScriptionList(iDisplayStart, iDisplayLength, null, null);
}
@Override
public List<Prescription> findPreScriptionList(int iDisplayStart, int iDisplayLength, String startTime, String endTime) throws Exception {
// 时间为空,则取当天时间,并向前推7天
if (StringUtils.isEmpty(startTime) && StringUtils.isEmpty(endTime)) {
// 获取当天时间、往前推7天
Date endDate = new Date();
Date startDate = DateUtils.addDays(endDate, -7);
// 修改开始时间为00:00:00,结束时间为23:59:59
startDate = DateUtils.getDateStart(startDate);
endDate = DateUtils.getDateEnd(endDate);
// 给开始时间和结束时间赋值
startTime = DateUtils.formatDateTime(startDate);
endTime = DateUtils.formatDateTime(endDate);
}
Sort sort = new Sort("create_time", OrderType.DESC);
// TODO 查询在时间范围内的数据
Conds listConds = new Conds();
// listConds.between("start_time", startTime, endTime);
List<Prescription> prescriptions = fetchSearchByPage(listConds, sort, iDisplayStart, iDisplayLength);
// 如果数据存在,则直接返回,如果不存在,则返回空数组
if (!CollectionUtils.isEmpty(prescriptions)) {
return prescriptions;
}
// 获取微问诊数据
List<Prescription> onLineList = cdfortisService.getFbusiList(iDisplayStart, iDisplayLength, startTime, endTime);
// 如果线上数据不存在则直接返回空数组
if (CollectionUtils.isEmpty(onLineList)) {
return new ArrayList<>();
}
// 构建查询参数
Long[] idArr = onLineList.stream().map(Prescription::getId).toArray(Long[]::new);
Conds idConds = new Conds();
idConds.in("id", idArr);
// 将db里面数据查询出来转成Set,数据为id
Set<Long> dbIdSet = fetchSearchByPage(idConds, sort, iDisplayStart, iDisplayLength)
.stream()
.map(Prescription::getId)
.collect(Collectors.toSet());
// 遍历接口返回数据,如果存在db中则调用更新,如果不存在则调用保存
for (Prescription prescription : onLineList) {
// 存在db中,则更新
if (dbIdSet.contains(prescription.getId())) {
update(prescription);
} else {
save(prescription);
}
}
return onLineList;
}
/**
* 通过Id 获取详情
*
* @param presId
* @return
* @throws Exception
*/
@Override
public Prescription findPreScriptionById(String presId) throws Exception {
Prescription prescription = fetchById(presId);
if (prescription != null && !StringUtils.isEmpty(prescription.getSymptom())) {
return prescription;
}
FbusiDetail fbusiDetail = cdfortisService.getFbusiDetail(presId);
prescription = handlePrescription(prescription, fbusiDetail);
return prescription;
}
/**
* 通过number/orderId获取详情
*
* @param orderId
* @return
* @throws Exception
*/
@Override
public Prescription findPreScriptionByOrderId(String orderId) throws Exception {
Conds conds = new Conds();
conds.equal("number", orderId);
Prescription prescription = fetchSearchByConds(conds);
if (prescription != null && !StringUtils.isEmpty(prescription.getSymptom())) {
return prescription;
}
FbusiDetail fbusiDetail = cdfortisService.getFbusiDetailByOrderId(orderId);
prescription = handlePrescription(prescription, fbusiDetail);
return prescription;
}
@NotNull
private Prescription handlePrescription(Prescription prescription, FbusiDetail fbusiDetail) throws Exception {
if (fbusiDetail == null) {
throw new Exception("找不到对应的处方数据(暂无数据)");
}
if (prescription == null) {
// save数据
prescription = new Prescription();
BeanUtils.copyProperties(fbusiDetail, prescription);
save(prescription);
} else {
// update 数据
BeanUtils.copyProperties(fbusiDetail, prescription);
update(prescription);
}
handleFrug(fbusiDetail, prescription);
return prescription;
}
/**
* 处理处方单中的药品信息逻辑(存在则更新,不存在则新增)
*
* @param fbusiDetail
* @param prescription
*/
private void handleFrug(FbusiDetail fbusiDetail, Prescription prescription) {
List<FbusiDrug> drugs = fbusiDetail.getDrugs();
List<PreDrugs> preDrugsList = new ArrayList<>();
// 如果drugs字段为空,则获取drugList字段值
if (CollectionUtils.isEmpty(drugs)) {
drugs = fbusiDetail.getDrugList();
}
// 如果drugList也为空,则直接返回
if (CollectionUtils.isEmpty(drugs)) {
return;
}
Conds drugConds = new Conds();
drugConds.equal("parent_id", prescription.getId());
int count = preDrugsService.count(drugConds);
if (count != 0) {
Sort sort = new Sort("create_time", OrderType.DESC);
preDrugsList = preDrugsService.fetchSearchByPage(drugConds, sort, 0, count);
}
// 将集合数据转换成Map数据
Map<String, PreDrugs> preDrugMap = preDrugsList.stream().collect(Collectors.toMap(PreDrugs::getDrugId, preDrugs -> preDrugs));
// 遍历处方药品信息,做保存或更新操作
for (FbusiDrug fbusiDrug : drugs) {
PreDrugs preDrug = new PreDrugs();
if (preDrugMap.containsKey(fbusiDrug.getDrugId())) {
preDrug = preDrugMap.get(fbusiDrug.getDrugId());
BeanUtils.copyProperties(fbusiDrug, preDrug);
preDrug.setName(fbusiDrug.getDrugName());
preDrug.setParentId(prescription.getId());
preDrugsService.update(preDrug);
} else {
BeanUtils.copyProperties(fbusiDrug, preDrug);
preDrug.setName(fbusiDrug.getDrugName());
preDrug.setParentId(prescription.getId());
preDrugsService.save(preDrug);
}
}
}
} }
\ No newline at end of file
...@@ -5,17 +5,30 @@ GET http://localhost:8080/aidea/mobile/auth/cdfortis/get/token ...@@ -5,17 +5,30 @@ GET http://localhost:8080/aidea/mobile/auth/cdfortis/get/token
POST http://localhost:8080/aidea/mobile/auth/cdfortis/upload/druginfo POST http://localhost:8080/aidea/mobile/auth/cdfortis/upload/druginfo
Content-Type: application/json Content-Type: application/json
[{ [
"apprNumber": "国药准字Z10910006", {
"spec": "10g/袋", "id": "22",
"approveNumber": "国药准字Z10910006",
"format": "10g/袋",
"price": "39.80", "price": "39.80",
"drugErpNo": "test_erp_001", "productNumber": "PD202011040006",
"name": "番泻叶颗粒", "productName": "番泻叶颗粒",
"drugCompay": "江苏艾迪药业股份有限公司" "manufacturer": "江苏艾迪药业股份有限公司"
}] },
{
"id": "24",
"approveNumber": "国药准字XXXX",
"format": "75mg/片",
"price": "1.00",
"productNumber": "6901028193498",
"productName": "艾邦德®",
"manufacturer": "江苏艾迪药业股份有限公司"
}
]
### 获取图文处方列表接口 ### 获取图文处方列表接口
GET http://localhost:8080/aidea/mobile/auth/cdfortis/get/fbusi/list?iDisplayStart=1&iDisplayLength=10&startTime=2021-08-03 00:00:00&endTime=2021-08-03 20:59:59 GET http://localhost:8080/aidea/mobile/auth/cdfortis/get/fbusi/list?iDisplayStart=0&iDisplayLength=10&startTime=2021-08-03 00:00:00&endTime=2021-08-03 20:59:59
#GET http://localhost:8080/aidea/mobile/auth/cdfortis/get/fbusi/list?iDisplayStart=1&iDisplayLength=10
### 获取图文处方图片 ### 获取图文处方图片
GET http://localhost:8080/aidea/mobile/auth/cdfortis/get/fbusi/picture?presId=11264635 GET http://localhost:8080/aidea/mobile/auth/cdfortis/get/fbusi/picture?presId=11264635
...@@ -23,4 +36,7 @@ GET http://localhost:8080/aidea/mobile/auth/cdfortis/get/fbusi/picture?presId=11 ...@@ -23,4 +36,7 @@ GET http://localhost:8080/aidea/mobile/auth/cdfortis/get/fbusi/picture?presId=11
### 获取单条图文处方详情 ### 获取单条图文处方详情
GET http://localhost:8080/aidea/mobile/auth/cdfortis/get/fbusi/detail?presId=11264635 GET http://localhost:8080/aidea/mobile/auth/cdfortis/get/fbusi/detail?presId=11264635
### 通过orderId获取图文处方详情
GET http://localhost:8080/aidea/mobile/auth/cdfortis/get/fbusi/info?orderId=PRE202108250001
### ###
\ No newline at end of file
...@@ -30,4 +30,10 @@ public interface ProductMapper extends GenericDao<Product> { ...@@ -30,4 +30,10 @@ public interface ProductMapper extends GenericDao<Product> {
* @return * @return
*/ */
List<Product> selectProduct(Map<String,Object> params); List<Product> selectProduct(Map<String,Object> params);
/**
*
* @param productNumberList
*/
void updateUploadFlag(@Param("productNumberList") List<String> productNumberList,@Param("uploadFlag") int uploadFlag);
} }
\ No newline at end of file
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
<result column="unit" property="unit"/> <result column="unit" property="unit"/>
<result column="invoice_code" property="invoiceCode"/> <result column="invoice_code" property="invoiceCode"/>
<result column="deviation" property="deviation"/> <result column="deviation" property="deviation"/>
<result column="upload_flag" property="uploadFlag"/>
</resultMap> </resultMap>
<sql id="sqlWhere"> <sql id="sqlWhere">
...@@ -98,7 +99,8 @@ ...@@ -98,7 +99,8 @@
isreading, isreading,
unit, unit,
invoice_code, invoice_code,
deviation deviation,
upload_flag
</sql> </sql>
<sql id="productList"> <sql id="productList">
...@@ -127,7 +129,8 @@ ...@@ -127,7 +129,8 @@
t.reading, t.reading,
t.isreading, t.isreading,
t.invoice_code invoiceCode, t.invoice_code invoiceCode,
t.deviation t.deviation,
t.upload_flag AS uploadFlag
</sql> </sql>
<insert id="save" parameterType="com.cftech.product.model.Product" useGeneratedKeys="true" <insert id="save" parameterType="com.cftech.product.model.Product" useGeneratedKeys="true"
...@@ -171,6 +174,7 @@ ...@@ -171,6 +174,7 @@
#{unit,jdbcType=VARCHAR}, #{unit,jdbcType=VARCHAR},
#{invoiceCode,jdbcType=VARCHAR}, #{invoiceCode,jdbcType=VARCHAR},
#{deviation, jdbcType=BIGINT} #{deviation, jdbcType=BIGINT}
#{uploadFlag, jdbcType=TINYINT}
) )
</insert> </insert>
...@@ -220,7 +224,8 @@ ...@@ -220,7 +224,8 @@
a.is_rs isRs, a.is_rs isRs,
a.reading reading, a.reading reading,
a.invoice_code, a.invoice_code,
a.deviation a.deviation,
a.upload_flag uploadFlag
FROM FROM
t_aidea_product a t_aidea_product a
LEFT JOIN t_aidea_product_classify b ON a.classify_id = b.id LEFT JOIN t_aidea_product_classify b ON a.classify_id = b.id
...@@ -260,7 +265,8 @@ ...@@ -260,7 +265,8 @@
a.product_number productNumber, a.product_number productNumber,
a.is_rs isRs, a.is_rs isRs,
a.reading reading, a.reading reading,
a.invoice_code a.invoice_code,
a.upload_flag uploadFlag
FROM FROM
t_aidea_product a t_aidea_product a
LEFT JOIN t_aidea_product_classify b ON FIND_IN_SET(b.id,a.classify_id) LEFT JOIN t_aidea_product_classify b ON FIND_IN_SET(b.id,a.classify_id)
...@@ -376,6 +382,9 @@ ...@@ -376,6 +382,9 @@
<if test="deviation != null"> <if test="deviation != null">
deviation = #{deviation, jdbcType=BIGINT} deviation = #{deviation, jdbcType=BIGINT}
</if> </if>
<if test="uploadFlag != null">
upload_flag = #{uploadFlag, jdbcType=TINYINT}
</if>
</set> </set>
where id=#{id,jdbcType=BIGINT} where id=#{id,jdbcType=BIGINT}
</update> </update>
...@@ -383,6 +392,14 @@ ...@@ -383,6 +392,14 @@
<update id="delete" parameterType="java.lang.Long"> <update id="delete" parameterType="java.lang.Long">
update t_aidea_product set del_flag=1 where id=#{id,jdbcType=BIGINT} update t_aidea_product set del_flag=1 where id=#{id,jdbcType=BIGINT}
</update> </update>
<update id="updateUploadFlag">
update t_aidea_product set upload_flag=#{uploadFlag} where product_number IN
<foreach item="item" index="index" collection="productNumberList" open="(" separator="," close=")">
#{item}
</foreach>
</update>
<!-- 根据ID查询商品详情!--> <!-- 根据ID查询商品详情!-->
<select id="product" resultType="com.cftech.product.model.ProductVO"> <select id="product" resultType="com.cftech.product.model.ProductVO">
select select
......
...@@ -164,6 +164,8 @@ public class Product implements Serializable { ...@@ -164,6 +164,8 @@ public class Product implements Serializable {
private Long updateBy; private Long updateBy;
/* 偏移量 */ /* 偏移量 */
private Long deviation; private Long deviation;
/* 上传标识 */
private boolean uploadFlag;
public Product() { public Product() {
this.delFlag = false; this.delFlag = false;
......
...@@ -43,4 +43,12 @@ public interface ProductService extends GenericService<Product> { ...@@ -43,4 +43,12 @@ public interface ProductService extends GenericService<Product> {
* @return * @return
*/ */
List<Product> selectProduct(Conds conds, Sort sort,int pageSize,int pageNo,List<String> classifyId); List<Product> selectProduct(Conds conds, Sort sort,int pageSize,int pageNo,List<String> classifyId);
/**
* 更新上传标识
*
* @param productNumberList
* @param uploadFlag
*/
void updateUploadFlag(List<String> productNumberList, boolean uploadFlag);
} }
...@@ -200,5 +200,10 @@ public class ProductServiceImpl extends GenericServiceImpl<Product> implements P ...@@ -200,5 +200,10 @@ public class ProductServiceImpl extends GenericServiceImpl<Product> implements P
return productMapper.selectProduct(params); return productMapper.selectProduct(params);
} }
@Override
public void updateUploadFlag(List<String> productNumberList, boolean uploadFlag) {
productMapper.updateUploadFlag(productNumberList, uploadFlag ? 1 : 0);
}
} }
\ No newline at end of file
...@@ -162,5 +162,7 @@ cdfortis.get_fbusi_list_url=https://api.cdfortis.com/api/fbusi/getFbusiList ...@@ -162,5 +162,7 @@ cdfortis.get_fbusi_list_url=https://api.cdfortis.com/api/fbusi/getFbusiList
cdfortis.get_fbusi_pic_url=https://api.cdfortis.com/api/fbusi/getFbusiPicture cdfortis.get_fbusi_pic_url=https://api.cdfortis.com/api/fbusi/getFbusiPicture
#\u5FAE\u95EE\u8BCA\u83B7\u53D6\u5355\u6761\u56FE\u6587\u5904\u65B9\u8BE6\u60C5\u63A5\u53E3 #\u5FAE\u95EE\u8BCA\u83B7\u53D6\u5355\u6761\u56FE\u6587\u5904\u65B9\u8BE6\u60C5\u63A5\u53E3
cdfortis.get_fbusi_info_url=https://api.cdfortis.com/api/fbusi/getFbusiInfo cdfortis.get_fbusi_info_url=https://api.cdfortis.com/api/fbusi/getFbusiInfo
#\u5FAE\u95EE\u8BCA\u901A\u8FC7\u8BA2\u5355\u53F7\u56FE\u6587\u5904\u65B9\u8BE6\u60C5
cdfortis.get_fbusi_info_by_order_id_url=https://api.cdfortis.com/api/fbusi/getFbusiInfoByOrderId
#\u5FAE\u95EE\u8BCA\u836F\u5E97\u7F16\u7801 #\u5FAE\u95EE\u8BCA\u836F\u5E97\u7F16\u7801
cdfortis.store_no=aidea888 cdfortis.store_no=aidea888
\ No newline at end of file
...@@ -161,3 +161,5 @@ cdfortis.get_fbusi_list_url=https://api.cdfortis.com/api/fbusi/getFbusiList ...@@ -161,3 +161,5 @@ cdfortis.get_fbusi_list_url=https://api.cdfortis.com/api/fbusi/getFbusiList
cdfortis.get_fbusi_pic_url=https://api.cdfortis.com/api/fbusi/getFbusiPicture cdfortis.get_fbusi_pic_url=https://api.cdfortis.com/api/fbusi/getFbusiPicture
#\u5fae\u95ee\u8bca\u83b7\u53d6\u5355\u6761\u56fe\u6587\u5904\u65b9\u8be6\u60c5\u63a5\u53e3 #\u5fae\u95ee\u8bca\u83b7\u53d6\u5355\u6761\u56fe\u6587\u5904\u65b9\u8be6\u60c5\u63a5\u53e3
cdfortis.get_fbusi_info_url=https://api.cdfortis.com/api/fbusi/getFbusiInfo cdfortis.get_fbusi_info_url=https://api.cdfortis.com/api/fbusi/getFbusiInfo
#\u5fae\u95ee\u8bca\u901a\u8fc7\u8ba2\u5355\u53f7\u56fe\u6587\u5904\u65b9\u8be6\u60c5
cdfortis.get_fbusi_info_by_order_id_url=https://api.cdfortis.com/api/fbusi/getFbusiInfoByOrderId
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment