|
@@ -1,10 +1,30 @@
|
|
|
package com.usky.dxtop.service.impl;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.sun.xml.internal.ws.api.ComponentEx;
|
|
|
+import com.usky.dxtop.common.exception.CustomException;
|
|
|
+import com.usky.dxtop.common.utils.Arith;
|
|
|
+import com.usky.dxtop.common.utils.QRCodeUtil;
|
|
|
+import com.usky.dxtop.common.utils.http.HttpUtils;
|
|
|
+import com.usky.dxtop.common.utils.spring.GlobalUtils;
|
|
|
import com.usky.dxtop.mapper.OrderMapper;
|
|
|
+import com.usky.dxtop.model.CallApiLog;
|
|
|
import com.usky.dxtop.model.Order;
|
|
|
+import com.usky.dxtop.service.CallApiLogService;
|
|
|
import com.usky.dxtop.service.OrderService;
|
|
|
+import com.usky.dxtop.service.api.TopApi;
|
|
|
+import com.usky.dxtop.service.emun.OrderPayType;
|
|
|
+import com.usky.dxtop.service.emun.OrderStatus;
|
|
|
+import com.usky.dxtop.service.vo.OrderRequest;
|
|
|
+import org.apache.logging.log4j.core.util.JsonUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import java.util.List;
|
|
|
+import java.util.TreeMap;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -17,4 +37,71 @@ import org.springframework.stereotype.Service;
|
|
|
@Service
|
|
|
public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements OrderService {
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private CallApiLogService callApiLogService;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean add(Order order) {
|
|
|
+ order.setOrderFlag(OrderStatus.SUCCESS.getCode());
|
|
|
+ baseMapper.insert(order);
|
|
|
+ //调用卡充值api
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<Order> list(OrderRequest orderRequest) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 东信扫码支付api
|
|
|
+ * @param order
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ @Override
|
|
|
+ public String getTopScanPayApi(Order order){
|
|
|
+ String orderNumber = TopApi.getOrderNumber();
|
|
|
+ order.setOrderNumber(orderNumber);
|
|
|
+ TreeMap<String, String> params = TopApi.generateScanPayApiParam(order.getOrderNumber(),
|
|
|
+ new Double(Arith.mul(order.getMoney(),100)).intValue(), null,
|
|
|
+ null,null,null,null,null,null);
|
|
|
+ String scanPayUrl = String.format("%s?%s&sign=%s", TopApi.SCAN_TO_PAY_URL,
|
|
|
+ TopApi.joinParam(params),
|
|
|
+ TopApi.signData(params));
|
|
|
+ baseMapper.insert(order);
|
|
|
+ CallApiLog callApiLog = new CallApiLog();
|
|
|
+ callApiLog.setApiUrl(TopApi.SCAN_TO_PAY_URL);
|
|
|
+ callApiLog.setApiParam(JSONObject.toJSONString(params));
|
|
|
+ callApiLog.setOrderNumber(order.getOrderNumber());
|
|
|
+ callApiLog.setName("扫码支付");
|
|
|
+ callApiLogService.save(callApiLog);
|
|
|
+ return scanPayUrl;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ @Override
|
|
|
+ public String getTopScanPayQr(Order order) {
|
|
|
+ String destPath;
|
|
|
+ try {
|
|
|
+ String topScanPayApi = getTopScanPayApi(order);
|
|
|
+ String codeName = String.format("%s-%s.jpg", "usky", System.currentTimeMillis() + "");
|
|
|
+ destPath = String.format("%s%s", GlobalUtils.getTempBaseDir(),codeName);
|
|
|
+ //生成二维码
|
|
|
+ QRCodeUtil.encode(topScanPayApi, null, destPath, true);
|
|
|
+ }catch (Exception e){
|
|
|
+ throw new CustomException("生成二维码失败");
|
|
|
+ }
|
|
|
+ return destPath;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String getTopFindOrderInfoApi(String orderNumber) {
|
|
|
+ TreeMap<String, String> param = TopApi.generateDealSelectParam(orderNumber, null, null, null);
|
|
|
+ String format = String.format("%s&sign=%s", TopApi.joinParam(param),
|
|
|
+ TopApi.signData(param));
|
|
|
+ return HttpUtils.sendGet(TopApi.DEAL_SELECT_URL, format);
|
|
|
+ }
|
|
|
+
|
|
|
}
|