|
@@ -22,6 +22,7 @@ import com.szwl.model.entity.TAdmin;
|
|
|
import com.szwl.model.entity.THuifuMch;
|
|
|
import com.szwl.model.entity.THuifuMchCheck;
|
|
|
import com.szwl.model.entity.WithdrawalRecord;
|
|
|
+import com.szwl.model.utils.DateUtils;
|
|
|
import com.szwl.service.TAdminService;
|
|
|
import com.szwl.service.THuifuMchCheckService;
|
|
|
import com.szwl.service.THuifuMchService;
|
|
@@ -29,32 +30,15 @@ import com.szwl.service.WithdrawalRecordService;
|
|
|
import com.szwl.util.HuifuUtils;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
-import org.apache.http.HttpEntity;
|
|
|
-import org.apache.http.HttpStatus;
|
|
|
-import org.apache.http.client.methods.CloseableHttpResponse;
|
|
|
-import org.apache.http.client.methods.HttpPost;
|
|
|
-import org.apache.http.entity.ContentType;
|
|
|
-import org.apache.http.entity.mime.MultipartEntityBuilder;
|
|
|
-import org.apache.http.impl.client.CloseableHttpClient;
|
|
|
-import org.apache.http.impl.client.HttpClients;
|
|
|
-import org.apache.http.util.EntityUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
-import java.io.File;
|
|
|
-import java.io.IOException;
|
|
|
import java.math.BigDecimal;
|
|
|
-import java.nio.charset.Charset;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
import java.util.Date;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.Map;
|
|
|
import java.util.TreeMap;
|
|
|
|
|
|
-import static com.szwl.util.HuifuUtils.base64ToTempImage;
|
|
|
-
|
|
|
/**
|
|
|
* <p>
|
|
|
* 服务实现类
|
|
@@ -783,4 +767,57 @@ public class THuifuMchServiceImpl extends ServiceImpl<THuifuMchMapper, THuifuMch
|
|
|
}
|
|
|
return tokenNo;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void withdrawStatus(TAdmin admin, WithdrawalRecord withdrawalRecord) throws Exception {
|
|
|
+ LambdaQueryWrapper<THuifuMch> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.eq(THuifuMch::getAdminId, admin.getId());
|
|
|
+ THuifuMch huifuMch = tHuifuMchService.getOne(wrapper);
|
|
|
+ // 请求接口
|
|
|
+ String url = "https://api.huifu.com/v2/trade/settlement/query";
|
|
|
+ HuifuBaseCommon.doInit(OppsMerchantConfig.getMerchantConfig());
|
|
|
+ // 请求参数:Data
|
|
|
+ JSONObject request = new JSONObject();
|
|
|
+ // 请求流水号
|
|
|
+ request.put("org_req_seq_id", withdrawalRecord.getOrderNo());
|
|
|
+ // 请求日期
|
|
|
+ Date createDate = withdrawalRecord.getCreateDate();
|
|
|
+ if (createDate != null) {
|
|
|
+ String formatPayDate = DateUtils.formatDate(createDate, DateUtils.PATTERN_yyyyMMdd);
|
|
|
+ request.put("org_req_date", formatPayDate);
|
|
|
+ }
|
|
|
+ // 汇付ID
|
|
|
+ request.put("huifu_id", huifuMch.getHuifuId());
|
|
|
+ // 签名:sign
|
|
|
+ String s = JSON.toJSONString(request);
|
|
|
+ String s1 = JSON.toJSONString(JSONObject.parseObject(s, TreeMap.class));
|
|
|
+ String sign = HuifuUtils.sign(s1, HuifuConstant.RSA_PRIVATE_KEY);
|
|
|
+
|
|
|
+ // 公共参数
|
|
|
+ System.out.println("请求参数:" + request);
|
|
|
+ JSONObject requestData = new JSONObject();
|
|
|
+ requestData.put("sys_id", HuifuConstant.SYS_ID);
|
|
|
+ requestData.put("product_id", HuifuConstant.PRODUCT_ID);
|
|
|
+ requestData.put("sign", sign);
|
|
|
+ requestData.put("data", request);
|
|
|
+ System.out.println("最终请求参数:" + requestData);
|
|
|
+ String result = OkHttpClientTools.httpPost(url, requestData.toString(), HuifuConstant.PRODUCT_ID);
|
|
|
+ System.out.println("返回的数据:" + result);
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(result);
|
|
|
+ JSONObject dataObject = jsonObject.getJSONObject("data");
|
|
|
+ String code = dataObject.getString("resp_code");
|
|
|
+ if (code.equals(HuifuConstant.RESP_CODE)) {
|
|
|
+ String transStatus = dataObject.getString("trans_status");
|
|
|
+ if (HuifuConstant.TRANS_STAT_S.equals(transStatus)) {
|
|
|
+ withdrawalRecord.setStatus(1);
|
|
|
+ withdrawalRecord.setArrivalDate(new Date());
|
|
|
+ } else if (HuifuConstant.TRANS_STAT_P.equals(transStatus)) {
|
|
|
+ withdrawalRecord.setStatus(0);
|
|
|
+ } else {
|
|
|
+ withdrawalRecord.setStatus(2);
|
|
|
+ withdrawalRecord.setResultMsg(dataObject.getString("resp_desc"));
|
|
|
+ }
|
|
|
+ withdrawalRecordService.updateById(withdrawalRecord);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|