소스 검색

Merge branch 'feat-20221026-lingcaiainotify' into temp-pre

lixuesong 2 년 전
부모
커밋
eefcce2541
1개의 변경된 파일16개의 추가작업 그리고 21개의 파일을 삭제
  1. 16 21
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/GigThirdApiController.java

+ 16 - 21
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/GigThirdApiController.java

@@ -30,6 +30,7 @@ import org.springframework.web.bind.annotation.RestController;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.time.LocalDateTime;
+import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -75,39 +76,34 @@ public class GigThirdApiController {
 	/**
 	 * 浪潮(灵才接好活)结算回调
 	 *
-	 * @param body
+	 * @param request
 	 * @return
 	 */
 	@Inner(value = false)
 	@SysLog("浪潮异步通知回调")
 	@PostMapping("/lingcaiai")
-	public String lingcaiaiNotify(@RequestBody String body) {
-		log.info("浪潮结算回调请求方法参数:body={}", body);
-
-		// 请求body json
-		JSONObject bodyJson = JSONUtil.parseObj(body);
+	public String lingcaiaiNotify(HttpServletRequest request) {
+		Map<String, String[]> parameterMap = request.getParameterMap();
+		log.info("浪潮结算回调请求方法参数:parameterMap={}", JSONUtil.toJsonStr(parameterMap));
 
 		// 签名
-		String verify = bodyJson.getStr("verify");
+		String verify = parameterMap.get("verify")[0];
 		// 通知类型
-		String channel = bodyJson.getStr("channel");
+		String channel = parameterMap.get("channel")[0];
 		// 项目单号
-		String batchNo = bodyJson.getStr("batch_no");
+		String batchNo = parameterMap.get("batch_no")[0];
 		// 订单状态
-		Integer orderStatus = bodyJson.getInt("status");
+		String orderStatus = parameterMap.get("status")[0];
 		// project_accounts
-		JSONArray projectAccounts = bodyJson.getJSONArray("project_accounts");
+		String projectAccounts = parameterMap.get("project_accounts")[0];
 		// 账号单号
-		if (projectAccounts == null) {
+		if (StrUtil.isBlank(projectAccounts)) {
 			log.warn("project_accounts为空");
 			return "fail";
 		}
-		JSONObject projectAccountObj = (JSONObject) projectAccounts.get(0);
-		String accountNo = projectAccountObj.getStr("account_no");
-		String status = projectAccountObj.getStr("status");// TODO 项目status和详情的status ???
 
-		String redisKey = String.format("%s_%s_%s", CacheConstants.ZHEGN_QI_ZHI_XING_NOTIFY_KEY, channel, accountNo);
-		Boolean absent = redisTemplate.opsForValue().setIfAbsent(redisKey, accountNo, 30, TimeUnit.MINUTES);
+		String redisKey = String.format("%s_%s_%s", CacheConstants.ZHEGN_QI_ZHI_XING_NOTIFY_KEY, channel, batchNo);
+		Boolean absent = redisTemplate.opsForValue().setIfAbsent(redisKey, batchNo, 30, TimeUnit.MINUTES);
 		if (!absent) {
 			return "success";
 		}
@@ -116,14 +112,13 @@ public class GigThirdApiController {
 		LingcaiaiInputRecord record = new LingcaiaiInputRecord();
 		record.setVerify(verify);
 		record.setChannel(channel);
-		record.setReqBody(body);
+		record.setReqBody(JSONUtil.toJsonStr(parameterMap));
 		record.setBatchNo(batchNo);
-		record.setAccountNo(accountNo);
-		record.setOrderStatus(orderStatus);
+		record.setOrderStatus(Integer.valueOf(orderStatus));
 		record.setCreateTime(LocalDateTime.now());
 		lingcaiaiInputRecordService.save(record);
 
-		gigThirdApiService.lingcaiaiNotify(channel, accountNo, orderStatus);
+		gigThirdApiService.lingcaiaiNotify(channel, batchNo, Integer.valueOf(orderStatus));
 
 		return "success";
 	}