|
@@ -30,7 +30,6 @@ 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;
|
|
@@ -82,54 +81,49 @@ public class GigThirdApiController {
|
|
|
@Inner(value = false)
|
|
|
@SysLog("浪潮异步通知回调")
|
|
|
@PostMapping("/lingcaiai")
|
|
|
- public String lingcaiaiNotify(HttpServletRequest request) {
|
|
|
- Enumeration<String> attributeNames = request.getAttributeNames();
|
|
|
- log.info("attributeNames={}", attributeNames);
|
|
|
- Map<String, String[]> parameterMap = request.getParameterMap();
|
|
|
- log.info("parameterMap={}", parameterMap);
|
|
|
+ public String lingcaiaiNotify(@RequestBody String body) {
|
|
|
+ log.info("浪潮结算回调请求方法参数:body={}", body);
|
|
|
|
|
|
-// log.info("浪潮结算回调请求方法参数:body={}", body);
|
|
|
-//
|
|
|
-// // 请求body json
|
|
|
-// JSONObject bodyJson = JSONUtil.parseObj(body);
|
|
|
-//
|
|
|
-// // 签名
|
|
|
-// String verify = bodyJson.getStr("verify");
|
|
|
-// // 通知类型
|
|
|
-// String channel = bodyJson.getStr("channel");
|
|
|
-// // 项目单号
|
|
|
-// String batchNo = bodyJson.getStr("batch_no");
|
|
|
-// // 订单状态
|
|
|
-// Integer orderStatus = bodyJson.getInt("status");
|
|
|
-// // project_accounts
|
|
|
-// JSONArray projectAccounts = bodyJson.getJSONArray("project_accounts");
|
|
|
-// // 账号单号
|
|
|
-// if (projectAccounts == null) {
|
|
|
-// 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);
|
|
|
-// if (!absent) {
|
|
|
-// return "success";
|
|
|
-// }
|
|
|
-//
|
|
|
-// // 请求存入数据库
|
|
|
-// LingcaiaiInputRecord record = new LingcaiaiInputRecord();
|
|
|
-// record.setVerify(verify);
|
|
|
-// record.setChannel(channel);
|
|
|
-// record.setReqBody(body);
|
|
|
-// record.setBatchNo(batchNo);
|
|
|
-// record.setAccountNo(accountNo);
|
|
|
-// record.setOrderStatus(orderStatus);
|
|
|
-// record.setCreateTime(LocalDateTime.now());
|
|
|
-// lingcaiaiInputRecordService.save(record);
|
|
|
-//
|
|
|
-// gigThirdApiService.lingcaiaiNotify(channel, accountNo, orderStatus);
|
|
|
+ // 请求body json
|
|
|
+ JSONObject bodyJson = JSONUtil.parseObj(body);
|
|
|
+
|
|
|
+ // 签名
|
|
|
+ String verify = bodyJson.getStr("verify");
|
|
|
+ // 通知类型
|
|
|
+ String channel = bodyJson.getStr("channel");
|
|
|
+ // 项目单号
|
|
|
+ String batchNo = bodyJson.getStr("batch_no");
|
|
|
+ // 订单状态
|
|
|
+ Integer orderStatus = bodyJson.getInt("status");
|
|
|
+ // project_accounts
|
|
|
+ JSONArray projectAccounts = bodyJson.getJSONArray("project_accounts");
|
|
|
+ // 账号单号
|
|
|
+ if (projectAccounts == null) {
|
|
|
+ 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);
|
|
|
+ if (!absent) {
|
|
|
+ return "success";
|
|
|
+ }
|
|
|
+
|
|
|
+ // 请求存入数据库
|
|
|
+ LingcaiaiInputRecord record = new LingcaiaiInputRecord();
|
|
|
+ record.setVerify(verify);
|
|
|
+ record.setChannel(channel);
|
|
|
+ record.setReqBody(body);
|
|
|
+ record.setBatchNo(batchNo);
|
|
|
+ record.setAccountNo(accountNo);
|
|
|
+ record.setOrderStatus(orderStatus);
|
|
|
+ record.setCreateTime(LocalDateTime.now());
|
|
|
+ lingcaiaiInputRecordService.save(record);
|
|
|
+
|
|
|
+ gigThirdApiService.lingcaiaiNotify(channel, accountNo, orderStatus);
|
|
|
|
|
|
return "success";
|
|
|
}
|