代码合并
diff --git a/src/main/java/com/supwisdom/dlpay/consume/controller/PayapiAction.java b/src/main/java/com/supwisdom/dlpay/consume/controller/PayapiAction.java
deleted file mode 100644
index ac7d7fe..0000000
--- a/src/main/java/com/supwisdom/dlpay/consume/controller/PayapiAction.java
+++ /dev/null
@@ -1,98 +0,0 @@
-package com.supwisdom.dlpay.consume.controller;
-
-import com.supwisdom.dlpay.consume.bean.BaseResp;
-import com.supwisdom.dlpay.consume.bean.ReqParam;
-import com.supwisdom.dlpay.consume.service.PayapiService;
-import com.supwisdom.dlpay.consume.service.PaytypeService;
-import com.supwisdom.dlpay.framework.data.SystemDateTime;
-import com.supwisdom.dlpay.util.Code;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.util.StringUtils;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * 统一支付入口
- * 1.支付
- * 2.冲正
- * 3.充值
- *
- * 校验
- * -参数
- * -签名
- */
-@RestController
-@RequestMapping("/unified")
-public class PayapiAction {
- @Autowired
- private PayapiService payapiService;
-
- /**
- * 公共参数校验
- * */
-
- private boolean checkCommonParam(BaseResp resp,ReqParam param){
- if(param.getAmount()==null){
- resp.setRetcode("1");
- resp.setRetmsg("参数错误[amount]");
- return false;
- }
- if(StringUtils.isEmpty(param.getPayinfo())){
- resp.setRetcode("1");
- resp.setRetmsg("参数错误[payinfo]");
- return false;
- }
- if(StringUtils.isEmpty(param.getPaytype())){
- resp.setRetcode("1");
- resp.setRetmsg("参数错误[paytype]");
- return false;
- }
- if(StringUtils.isEmpty(param.getRefno())){
- resp.setRetcode("1");
- resp.setRetmsg("参数错误[refno]");
- return false;
- }
- return true;
- }
- /**
- *
- * 统一消费接口
- *
- *
- * */
- @RequestMapping("/consume")
- public BaseResp consume(@RequestBody ReqParam param) {
- BaseResp resp = new BaseResp();
- if(!checkCommonParam(resp,param)){
- return resp;
- }
- payapiService.doConsume(param,resp);
- return resp;
- }
-
- /**
- *
- * 统一冲正接口
- *
- *
- * */
- @RequestMapping("/reverse")
- public BaseResp reverse() {
- BaseResp resp = new BaseResp();
- resp.setCode(Code.SUCCESS);
- return resp;
- }
-
- /**
- *
- * 统一充值接口
- *
- * */
- @RequestMapping("/recharge")
- public BaseResp recharge() {
- BaseResp resp = new BaseResp();
- resp.setCode(Code.SUCCESS);
- return resp;
- }
-}
diff --git a/src/main/java/com/supwisdom/dlpay/consume/dao/TransdtlDao.java b/src/main/java/com/supwisdom/dlpay/consume/dao/TransdtlDao.java
deleted file mode 100644
index a49de57..0000000
--- a/src/main/java/com/supwisdom/dlpay/consume/dao/TransdtlDao.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.supwisdom.dlpay.consume.dao;
-
-import com.supwisdom.dlpay.consume.domain.TTransdtl;
-import com.supwisdom.dlpay.framework.data.VoucherTemp;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.stereotype.Repository;
-import org.springframework.web.bind.annotation.RequestParam;
-
-import java.util.List;
-
-@Repository
-public interface TransdtlDao extends JpaRepository<TTransdtl, String> {
-// @Query(value="select a.drsubjno,a.crsubjno,a.summary,t.shopaccno,count(t.refno) as transcnt,sum(t.paidamt) as transamt " +
-// "from tb_transdtl t left join tb_transtype a on t.transtype=a.transtype " +
-// "where t.status='success' and t.accdate=:settledate " +
-// "group by a.drsubjno,a.crsubjno,a.summary,t.shopaccno ", nativeQuery = true)
-// List<VoucherTemp> getVouhcerData(@RequestParam("settledate") String settledate);
-//
-// @Query(value="select a.drsubjno,a.crsubjno,a.summary,t.shopaccno,count(t.refno) as transcnt,sum(t.feeamt) as transamt " +
-// "from tb_transdtl t left join tb_feetype_config a on t.feetype=a.feetype and t.paytype=a.paytype " +
-// "where t.status='success' and t.feetype!='none' and t.accdate=:settledate " +
-// "group by a.drsubjno,a.crsubjno,a.summary,t.shopaccno ", nativeQuery = true)
-// List<VoucherTemp> getFeeVoucherData(@RequestParam("settledate") String settledate);
-
- TTransdtl getByOuttradenoAndStatus(String outtradeno,String status);
-
- @Query(value = " select to_char(sysdate,'yyyyMMddhh24missSSS')||to_char(SEQ_REFNO.nextval,'FM0000000') as billno from dual ",nativeQuery = true)
- String getReno();
-
- @Query(value = " select to_char(CURRENT_TIMESTAMP,'yyyyMMddhh24missSS')||to_char(nextval('SEQ_REFNO'),'FM0000000') as billno ",nativeQuery = true)
- String getRenoPG();
-}
diff --git a/src/main/java/com/supwisdom/dlpay/consume/domain/TTransdtl.java b/src/main/java/com/supwisdom/dlpay/consume/domain/TTransdtl.java
deleted file mode 100644
index 309a122..0000000
--- a/src/main/java/com/supwisdom/dlpay/consume/domain/TTransdtl.java
+++ /dev/null
@@ -1,264 +0,0 @@
-package com.supwisdom.dlpay.consume.domain;
-
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Table;
-
-@Entity
-@Table(name = "TB_TRANSDTL")
-public class TTransdtl {
- @Id
- @Column(name = "REFNO", nullable = false, length = 32)
- private String refno;
-
- @Column(name = "ACCDATE", length = 8)
- private String accdate;
-
- @Column(name = "ACCNO", length = 32)
- private String accno;
-
- @Column(name = "PAYTYPE", length = 20)
- private String paytype; //支付方式 balance,wechat,alipay
-
- @Column(name = "PAYINFO", length = 200)
- private String payinfo; //记录支付信息备用字段
-
- @Column(name = "AMOUNT", precision = 9, scale = 2)
- private Double amount;
-
- @Column(name = "PAIDAMT", precision = 9, scale = 2)
- private Double paidamt;
-
- @Column(name = "FEETYPE", length = 20)
- private String feetype="none"; //费用类型
-
- @Column(name = "FEEAMT", precision = 9, scale = 2)
- private Double feeamt=0D; //费用金额
-
- @Column(name = "STATUS", length = 20)
- private String status;
-
- @Column(name = "BEFBAL", precision = 9, scale = 2)
- private Double befbal;
-
- @Column(name = "AFTBAL", precision = 9, scale = 2)
- private Double aftbal;
-
- @Column(name = "SHOPACCNO", length = 32)
- private String shopaccno;
-
- @Column(name = "TRANSCODE", precision = 4)
- private Integer transcode; //指定交易类型
-
- @Column(name = "TRANSTYPE", precision = 4)
- private Integer transtype; //指定借贷双方
-
- @Column(name = "TRANSDESC", length = 240)
- private String transdesc;
-
- @Column(name = "CREATETIME", length = 14)
- private String createtime;
-
- @Column(name = "ENDTIME", length = 14)
- private String endtime;
-
- @Column(name = "OUTTRADENO", length = 60)
- private String outtradeno;
-
- @Column(name = "TRANSDATE", length = 8)
- private String transdate;
-
- @Column(name = "TRANSTIME", length = 6)
- private String transtime;
-
- @Column(name = "REVFLAG", nullable = false, precision = 1)
- private Integer revflag = 0;
-
- @Column(name="REMARK", length = 240)
- private String remark;
-
- public String getRefno() {
- return refno;
- }
-
- public void setRefno(String refno) {
- this.refno = refno;
- }
-
- public String getAccdate() {
- return accdate;
- }
-
- public void setAccdate(String accdate) {
- this.accdate = accdate;
- }
-
- public String getAccno() {
- return accno;
- }
-
- public void setAccno(String accno) {
- this.accno = accno;
- }
-
- public String getPaytype() {
- return paytype;
- }
-
- public void setPaytype(String paytype) {
- this.paytype = paytype;
- }
-
- public String getPayinfo() {
- return payinfo;
- }
-
- public void setPayinfo(String payinfo) {
- this.payinfo = payinfo;
- }
-
- public Double getAmount() {
- return amount;
- }
-
- public void setAmount(Double amount) {
- this.amount = amount;
- }
-
- public Double getPaidamt() {
- return paidamt;
- }
-
- public void setPaidamt(Double paidamt) {
- this.paidamt = paidamt;
- }
-
- public String getFeetype() {
- return feetype;
- }
-
- public void setFeetype(String feetype) {
- this.feetype = feetype;
- }
-
- public Double getFeeamt() {
- return feeamt;
- }
-
- public void setFeeamt(Double feeamt) {
- this.feeamt = feeamt;
- }
-
- public String getStatus() {
- return status;
- }
-
- public void setStatus(String status) {
- this.status = status;
- }
-
- public Double getBefbal() {
- return befbal;
- }
-
- public void setBefbal(Double befbal) {
- this.befbal = befbal;
- }
-
- public Double getAftbal() {
- return aftbal;
- }
-
- public void setAftbal(Double aftbal) {
- this.aftbal = aftbal;
- }
-
- public String getShopaccno() {
- return shopaccno;
- }
-
- public void setShopaccno(String shopaccno) {
- this.shopaccno = shopaccno;
- }
-
- public Integer getTranscode() {
- return transcode;
- }
-
- public void setTranscode(Integer transcode) {
- this.transcode = transcode;
- }
-
- public Integer getTranstype() {
- return transtype;
- }
-
- public void setTranstype(Integer transtype) {
- this.transtype = transtype;
- }
-
- public String getTransdesc() {
- return transdesc;
- }
-
- public void setTransdesc(String transdesc) {
- this.transdesc = transdesc;
- }
-
- public String getCreatetime() {
- return createtime;
- }
-
- public void setCreatetime(String createtime) {
- this.createtime = createtime;
- }
-
- public String getEndtime() {
- return endtime;
- }
-
- public void setEndtime(String endtime) {
- this.endtime = endtime;
- }
-
- public String getOuttradeno() {
- return outtradeno;
- }
-
- public void setOuttradeno(String outtradeno) {
- this.outtradeno = outtradeno;
- }
-
- public String getTransdate() {
- return transdate;
- }
-
- public void setTransdate(String transdate) {
- this.transdate = transdate;
- }
-
- public String getTranstime() {
- return transtime;
- }
-
- public void setTranstime(String transtime) {
- this.transtime = transtime;
- }
-
- public Integer getRevflag() {
- return revflag;
- }
-
- public void setRevflag(Integer revflag) {
- this.revflag = revflag;
- }
-
- public String getRemark() {
- return remark;
- }
-
- public void setRemark(String remark) {
- this.remark = remark;
- }
-}
diff --git a/src/main/java/com/supwisdom/dlpay/consume/service/PayapiService.java b/src/main/java/com/supwisdom/dlpay/consume/service/PayapiService.java
deleted file mode 100644
index 0c8bec0..0000000
--- a/src/main/java/com/supwisdom/dlpay/consume/service/PayapiService.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.supwisdom.dlpay.consume.service;
-
-import com.supwisdom.dlpay.consume.bean.BaseResp;
-import com.supwisdom.dlpay.consume.bean.ReqParam;
-import org.springframework.transaction.annotation.Propagation;
-import org.springframework.transaction.annotation.Transactional;
-
-/**
- * Created by shuwei on 2019/4/9.
- */
-public interface PayapiService {
- @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
- boolean doConsume(ReqParam param, BaseResp resp);
-}
diff --git a/src/main/java/com/supwisdom/dlpay/consume/service/impl/PayapiServiceImpl.java b/src/main/java/com/supwisdom/dlpay/consume/service/impl/PayapiServiceImpl.java
deleted file mode 100644
index 382d821..0000000
--- a/src/main/java/com/supwisdom/dlpay/consume/service/impl/PayapiServiceImpl.java
+++ /dev/null
@@ -1,186 +0,0 @@
-package com.supwisdom.dlpay.consume.service.impl;
-
-import com.google.gson.Gson;
-import com.sun.jersey.api.client.Client;
-import com.sun.jersey.api.client.ClientResponse;
-import com.sun.jersey.api.client.WebResource;
-import com.supwisdom.dlpay.consume.bean.BaseResp;
-import com.supwisdom.dlpay.consume.bean.ReqParam;
-import com.supwisdom.dlpay.consume.bean.SupStatusRevResp;
-import com.supwisdom.dlpay.consume.bean.SupYktResp;
-import com.supwisdom.dlpay.consume.dao.TransdtlDao;
-import com.supwisdom.dlpay.consume.domain.TPaytype;
-import com.supwisdom.dlpay.consume.domain.TTransdtl;
-import com.supwisdom.dlpay.consume.service.PayapiService;
-import com.supwisdom.dlpay.consume.service.PaytypeService;
-import com.supwisdom.dlpay.framework.data.SystemDateTime;
-import com.supwisdom.dlpay.framework.service.SystemUtilService;
-import com.supwisdom.dlpay.framework.util.DateUtil;
-import com.supwisdom.dlpay.framework.util.TradeCode;
-import com.supwisdom.dlpay.util.*;
-import org.apache.log4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.util.StringUtils;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Created by shuwei on 2019/4/9.
- */
-@Service
-public class PayapiServiceImpl implements PayapiService {
- @Autowired
- private TransdtlDao transdtlDao;
- @Autowired
- private SystemUtilService systemUtilService;
- @Autowired
- private PaytypeService paytypeService;
- private static final Logger logger = Logger.getLogger(PayapiServiceImpl.class);
- private static final Gson gson = new Gson();
-
- @Override
- public boolean doConsume(ReqParam param, BaseResp resp) {
- TTransdtl tTransdtl = transdtlDao.getByOuttradenoAndStatus(param.getRefno(), ConstUtil.STATUS_SUCCESS);
- if (tTransdtl != null) {
- resp.setRetcode("1");
- resp.setRetmsg("流水号重复");
- return false;
- }
- String refno = transdtlDao.getReno();
- if (StringUtils.isEmpty(refno)) {
- resp.setCode(Code.SYS_ERROR);
- return false;
- }
- tTransdtl = new TTransdtl();
- tTransdtl.setAccno(param.getAccno());
- tTransdtl.setAmount(MoneyUtil.FenToYuan(param.getAmount()));
- tTransdtl.setPaidamt(MoneyUtil.FenToYuan(param.getAmount()));
- tTransdtl.setShopaccno(param.getShopaccno());
- tTransdtl.setOuttradeno(param.getRefno());
- tTransdtl.setPaytype(param.getPaytype());
- tTransdtl.setTransdate(DateUtil.getNow("yyyyMMdd"));
- tTransdtl.setTranstime(DateUtil.getNow("hhmmss"));
- tTransdtl.setCreatetime(DateUtil.getNow());
- tTransdtl.setPayinfo(param.getPayinfo());
- tTransdtl.setStatus(ConstUtil.STATUS_INIT);
- tTransdtl.setRefno(refno);
- transdtlDao.save(tTransdtl);
- switch (param.getPaytype()) {
- case PaytypeUtil.YKTPAY:
- return doYKTPay(param, tTransdtl, resp);
- }
- resp.setCode(Code.PAYTYPE_NOT_SUPPORT);
- return false;
- }
-
- /**
- * 一卡通支付
- */
-
- private boolean doYKTPay(ReqParam param, TTransdtl dtl, BaseResp resp) {
- //TODO
- TPaytype paytype = paytypeService.getByPaytype(PaytypeUtil.YKTPAY);
- if (paytype == null || !ConstUtil.ENABLE_YES.equals(paytype.getEnable())) {
- resp.setCode(Code.PAYTYPE_NOT_SUPPORT);
- return false;
- }
- Map<String, String> config = paytypeService.getPaytypeConfigByPaytype(PaytypeUtil.YKTPAY);
- String appid = config.get("appid");
- String appkey = config.get("appkey");
- String orderurl = config.get("orderurl");
- if (config.size() == 0
- || StringUtils.isEmpty(appid)
- || StringUtils.isEmpty(appkey)
- || StringUtils.isEmpty(orderurl)) {
- resp.setCode(Code.PAYTYPE_CONFIG_ERROR);
- logger.error("支付方式未配置,appid=" + appid + ",appkey=" + appkey + ",orderurl=" + orderurl);
- return false;
- }
- SystemDateTime systemDateTime = systemUtilService.getSysdatetime();
- dtl.setAccdate(systemDateTime.getHostdate());
- Map<String, String> params = new HashMap<String, String>();
- params.put("partner_id", appid);
- params.put("stuempno", param.getAccno());
- params.put("tradeno", dtl.getRefno());
- params.put("tradename", param.getPayinfo());
- params.put("amount", param.getAmount() + "");
- params.put("shopid", param.getYktshopid());
- params.put("devphyid", param.getDevphyid());
- params.put("calcmanagefee", "T");//是否计算费率
- params.put("timestamp", systemDateTime.getHostdatetime());
-
- params.put("sign_method", "HMAC");
- params.put("limitflag", "off"); //是否判断消费限额,on-判断;off-不判断。默认on(判断限额)。为空或不为off都是on;
- String signstr = HmacUtil.createLinkString(HmacUtil.paraFilter(params));
- String sign = HmacUtil.HMACSHA1(signstr, appkey);
- signstr += "&sign=" + sign + "&sourcetype=food";
- Client c = Client.create();
- c.setConnectTimeout(20000);
- dtl.setTranstype(TradeCode.TRANSTYPE_YKTPAY);
- dtl.setTranscode(TradeCode.TRANSCODE_YKTPAY);
-
- WebResource r = c.resource(orderurl);
- ClientResponse respClient = r.post(ClientResponse.class, signstr);
- if (200 == respClient.getStatus()) {
- String ret = respClient.getEntity(String.class);
- logger.error("***************yktpay.ret=" + ret + "*************************");
- if (ret != null) {
- try {
- SupYktResp result = gson.fromJson(ret, SupYktResp.class);
- if (result == null) {
- resp.setCode(Code.RESPNOSE_CONTENT_ERROR);
- logger.error("支付内容转换失败:null");
- return false;
- }
- if (!"0".equals(result.getRetcode())) {
- if ("30".equals(result.getRetcode())) {
- if (result.getOther() != null) {
- try {
- SupStatusRevResp supStatusRevResp = gson.fromJson(result.getOther(), SupStatusRevResp.class);
- if (supStatusRevResp != null) {
- //同流水号,同一笔已经支付完成的,不重复支付。
- if (3 == supStatusRevResp.getStatus() && supStatusRevResp.getRevflag() != null && !supStatusRevResp.getRevflag()) {
- dtl.setStatus(ConstUtil.STATUS_SUCCESS);
- dtl.setAccdate(systemDateTime.getHostdate());
- transdtlDao.save(dtl);
- resp.setCode(Code.SUCCESS);
- return true;
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- logger.error("返回内容转换失败:" + e.getMessage());
- }
- }
- }
- resp.setRetcode("1");
- resp.setRetmsg("交易失败:" + result.getRetmsg());
- logger.error(result.getRetmsg());
- //dtl.setErrmsg(result.getRetmsg());
- //payApiDTLDao.save(dtl);
- return false;
- }
- dtl.setStatus(ConstUtil.STATUS_SUCCESS);
- dtl.setAccdate(systemDateTime.getHostdate());
- transdtlDao.save(dtl);
- resp.setCode(Code.SUCCESS);
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- resp.setCode(Code.RESPNOSE_CONTENT_ERROR);
- logger.error("支付内容转换失败:" + e.getMessage());
- return false;
- }
- } else {
- resp.setCode(Code.REQUEST_ERROR);
- return false;
- }
- } else {
- resp.setCode(Code.REQUEST_ERROR);
- logger.error("请求返回失败:" + respClient.getEntity(String.class) + ",code=" + respClient.getStatus());
- return false;
- }
- }
-}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/MoneyUtil.java b/src/main/java/com/supwisdom/dlpay/framework/util/MoneyUtil.java
index 0ac1b7b..d384340 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/util/MoneyUtil.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/util/MoneyUtil.java
@@ -28,5 +28,8 @@
double money = ((double) YuanToFen(yuan)) / 100;
return df.format(money);
}
+ public static double FenToYuan(int fen) {
+ return formatYuan(fen / 100.0);
+ }
}
diff --git a/src/main/java/com/supwisdom/dlpay/util/MoneyUtil.java b/src/main/java/com/supwisdom/dlpay/util/MoneyUtil.java
deleted file mode 100644
index fac8ed4..0000000
--- a/src/main/java/com/supwisdom/dlpay/util/MoneyUtil.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.supwisdom.dlpay.util;
-
-
-import java.text.DecimalFormat;
-
-public class MoneyUtil {
-
- public static int YuanToFen(double yuan) {
- return (int) (Math.round(yuan * 100));
- }
-
- public static boolean moneyCompare(double x1, double x2) {
- return YuanToFen(x1) == YuanToFen(x2);
- }
-
- public static double formatYuan(double yuan) {
- DecimalFormat df = new DecimalFormat("##0.00");
- double money = ((double) YuanToFen(yuan)) / 100;
- return Double.valueOf(df.format(money));
- }
-
- public static double FenToYuan(int fen) {
- return formatYuan(fen / 100.0);
- }
-
- public static String format(double num, String format) {
- DecimalFormat df = new DecimalFormat(format);
- return df.format(num);
- }
-}
diff --git a/src/main/kotlin/com/supwisdom/dlpay/consume/ThirdPayCall.kt b/src/main/kotlin/com/supwisdom/dlpay/consume/ThirdPayCall.kt
index 8419452..52efca0 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/consume/ThirdPayCall.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/consume/ThirdPayCall.kt
@@ -7,8 +7,8 @@
import com.supwisdom.dlpay.consume.bean.SupStatusRevResp
import com.supwisdom.dlpay.consume.bean.SupYktResp
import com.supwisdom.dlpay.consume.domain.TUserdtl
+import com.supwisdom.dlpay.framework.util.MoneyUtil
import com.supwisdom.dlpay.util.HmacUtil
-import com.supwisdom.dlpay.util.MoneyUtil
/**
* Created by shuwei on 2019/4/11.
diff --git a/src/main/kotlin/com/supwisdom/dlpay/consume/controller/consume_service.kt b/src/main/kotlin/com/supwisdom/dlpay/consume/controller/consume_service.kt
index 61784ec..82406a6 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/consume/controller/consume_service.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/consume/controller/consume_service.kt
@@ -9,7 +9,9 @@
import com.supwisdom.dlpay.consume.service.PersonBalancePayService
import com.supwisdom.dlpay.consume.service.PersonService
import com.supwisdom.dlpay.framework.util.DateUtil
+import com.supwisdom.dlpay.framework.util.TradeCode
import com.supwisdom.dlpay.framework.util.TradeDict
+import com.supwisdom.dlpay.framework.util.Tradetype
import com.supwisdom.dlpay.util.PaytypeUtil
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.http.ResponseEntity
@@ -69,25 +71,32 @@
@PostMapping("/ykt/payinit")
fun yktPayInit(userid: String, amount: Int, manageFee: Int,
stuempno: String, shopid: String, transdate: String, transtime: String,
- outtradeno: String, payinfo: String): ResponseEntity<Any> {
+ outtradeno: String, payinfo: String,feetype:String): ResponseEntity<Any> {
//一卡通支付款 112240
+ var drsubjectno = ""
+ var ccsubjectno = ""
+
var person = personService.getPersonByThirdUniqueIdenty(stuempno)
val dtl = PersonTransBuilder.newBuilder(accountUtilServcie)
.setTransDatetime(transdate, transtime)
.selectPaytype(PaytypeUtil.YKTPAY, payinfo)
.setOuttradeno(outtradeno)
.setOwner(person)
+ .setTransinfo(TradeCode.TRANSCODE_YKTPAY,"一卡通支付")
+ .chooseTradetype(Tradetype.CONSUME)
.addDetail(AccountHolder.subject("112240"),
AccountHolder.shop(shopid),
- amount / 100.0, "")
+ amount / 100.0, "一卡通支付")
+ .addDetail(AccountHolder.subject("112240"),
+ AccountHolder.subject("2002"),
+ manageFee / 100.0, "搭伙费")
.done(personBalancePayService, false)
return ResponseEntity.ok(dtl)
}
@PostMapping("/ykt/payfinish")
fun yktPayFinish(refno: String, yktshopid: String, devphyid: String?): ResponseEntity<Any> {
- val dtl = PersonTransBuilder.newBuilder(accountUtilServcie)
- .done(refno, TradeDict.DTL_STATUS_WIP, personBalancePayService)
+ var dtl = personBalancePayService.wip(refno)
var person = personService.getPersonByUserid(dtl.userid)
val code = CallService.callYktPay(paytypeService.getPaytypeConfigByPaytype(PaytypeUtil.YKTPAY),
dtl, DateUtil.getNow(),person?.thirdUniqueIdenty,yktshopid,devphyid)
diff --git a/src/main/kotlin/com/supwisdom/dlpay/consume/service/impl/pay_service_impl.kt b/src/main/kotlin/com/supwisdom/dlpay/consume/service/impl/pay_service_impl.kt
index 44c0a56..b592a60 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/consume/service/impl/pay_service_impl.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/consume/service/impl/pay_service_impl.kt
@@ -149,7 +149,7 @@
}
private fun doDealShopacc(shopaccno: String, amount: Double) {
- TODO("商户更新余额逻辑")
+ return
}
override fun process(builder: PersonTransBuilder): TUserdtl {
@@ -260,12 +260,16 @@
}
}
- override fun wip(paydtl: TUserdtl, builder: PersonTransBuilder): TUserdtl {
- return wip(paydtl.refno, builder)
+ override fun wip(paydtl: TUserdtl): TUserdtl {
+ return wip(paydtl.refno)
}
- override fun wip(refno: String, builder: PersonTransBuilder): TUserdtl {
+ override fun wip(refno: String): TUserdtl {
var userdtl = getLockUserdtlNowait(refno)
+ if(TradeDict.DTL_STATUS_WIP == userdtl.status){
+ return userdtl
+ }
+
if (TradeDict.DTL_STATUS_INIT != userdtl.status)
throw TransactionProcessException(TradeErrorCode.TRANSDTL_STATUS_NOT_INIT, "交易参考号<$refno>非初始化流水")
diff --git a/src/main/kotlin/com/supwisdom/dlpay/consume/service/pay_service.kt b/src/main/kotlin/com/supwisdom/dlpay/consume/service/pay_service.kt
index 8bfc900..84da408 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/consume/service/pay_service.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/consume/service/pay_service.kt
@@ -43,9 +43,9 @@
/**
* 两步交易,交易过程中判断交易状态,并更新交易状态为 wip
*/
- fun wip(paydtl: TUserdtl, builder: PersonTransBuilder): TUserdtl
+ fun wip(paydtl: TUserdtl): TUserdtl
- fun wip(refno: String, builder: PersonTransBuilder): TUserdtl
+ fun wip(refno: String): TUserdtl
}
\ No newline at end of file