离线交易代码逻辑修改
diff --git a/src/main/java/com/supwisdom/dlpay/api/task/PosPayTask.java b/src/main/java/com/supwisdom/dlpay/api/task/PosPayTask.java
index 0f15938..37aaef4 100644
--- a/src/main/java/com/supwisdom/dlpay/api/task/PosPayTask.java
+++ b/src/main/java/com/supwisdom/dlpay/api/task/PosPayTask.java
@@ -11,6 +11,7 @@
import com.supwisdom.dlpay.restaurant.service.OfflineTransDtlService;
import com.supwisdom.dlpay.restaurant.service.TransDtlService;
import com.supwisdom.dlpay.restaurant.util.RestaurantConstant;
+import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -37,53 +38,38 @@
private CitizenCardPayProxy citizenCardPayProxy;
@Scheduled(cron = "${cron.offlinedtl}")
- private void submitOfflineDtlTask(){
- String date=DateUtil.getNow("yyyyMMdd");
- List<TOfflineTransDtl> dtls=offlineTransDtlService.getUncheckOfflineTransdtl(date);
- logger.info("正在上传"+dtls.size()+"笔流水");
- if(dtls.size()>0){
- for(TOfflineTransDtl dtl:dtls){
+ private void submitOfflineDtlTask() {
+ String date = DateUtil.getNow("yyyyMMdd");
+ List<TOfflineTransDtl> dtls = offlineTransDtlService.getUncheckOfflineTransdtl(date, RestaurantConstant.TRANSTYPE_TRANSDTL_OFFLINE);
+ logger.info("正在上传" + dtls.size() + "笔流水");
+ if (dtls.size() > 0) {
+ for (TOfflineTransDtl dtl : dtls) {
- TTransDtl tTransDtl=new TTransDtl();
- tTransDtl.setManagefee(dtl.getManagefee());
- tTransDtl.setTransmode("offline");
- tTransDtl.setAmount(dtl.getAmount());
- tTransDtl.setCardno(dtl.getCardno());
- tTransDtl.setStatus(dtl.getStatus());
- tTransDtl.setBillno(dtl.getBillno());
- tTransDtl.setTermsqlno(dtl.getTermsqlno());
- tTransDtl.setMealtype(dtl.getMealtype());
- tTransDtl.setCusttype(dtl.getCusttype());
- tTransDtl.setShopid(dtl.getShopid());
- tTransDtl.setTransdate(dtl.getTransdate());
- tTransDtl.setTranstime(dtl.getTranstime());
- tTransDtl.setCustname(dtl.getCustname());
- tTransDtl.setTermid(dtl.getTermid());
- tTransDtl.setRuleid(dtl.getRuleid());
- tTransDtl.setManagefee(dtl.getManagefee());
+ TTransDtl tTransDtl = gettTransDtl(dtl);
+ tTransDtl.setTransmode(RestaurantConstant.TRANSTYPE_TRANSDTL_OFFLINE);
- CitizenCardPayinitParam param=new CitizenCardPayinitParam();
+ CitizenCardPayinitParam param = new CitizenCardPayinitParam();
param.setBillno(dtl.getBillno());
param.setShopaccno(dtl.getShopid());
param.setTransdate(dtl.getTransdate());
param.setTranstime(dtl.getTranstime());
param.setCardNo(dtl.getCardno());
param.setDtltype("canteen");
- Double amt=dtl.getAmount()*100;
+ Double amt = dtl.getAmount() * 100;
param.setAmount(amt.intValue());
- CitizenPayResponse response=citizenCardPayProxy.citizencardPayinit(param);
- if(response.getRetcode()!=0){
+ CitizenPayResponse response = citizenCardPayProxy.citizencardPayinit(param);
+ if (response.getRetcode() != 0) {
saveTransdtls(dtl, tTransDtl, response);
- logger.info(dtl.getBillno()+"初始化失败,"+response.getRetcode()+","+response.getRetmsg()+","+ response.getException());
+ logger.info(dtl.getBillno() + "初始化失败," + response.getRetcode() + "," + response.getRetmsg() + "," + response.getException());
continue;
}
- CitizenCardPayfinishParam finishparam=new CitizenCardPayfinishParam();
+ CitizenCardPayfinishParam finishparam = new CitizenCardPayfinishParam();
finishparam.setRefno(response.getRefno());
- CitizenPayResponse finishresp=citizenCardPayProxy.citizencardPayFinish(finishparam);
- if(finishresp.getRetcode()!=0){
+ CitizenPayResponse finishresp = citizenCardPayProxy.citizencardPayFinish(finishparam);
+ if (finishresp.getRetcode() != 0) {
saveTransdtls(dtl, tTransDtl, finishresp);
- logger.info(dtl.getBillno()+"消费缺认失败,"+finishresp.getRetcode()+","+finishresp.getRetmsg()+","+ finishresp.getException());
+ logger.info(dtl.getBillno() + "消费缺认失败," + finishresp.getRetcode() + "," + finishresp.getRetmsg() + "," + finishresp.getException());
continue;
}
tTransDtl.setAccdate(date);
@@ -95,8 +81,39 @@
}
+ List<TOfflineTransDtl> revdtls = offlineTransDtlService.getUncheckOfflineTransdtl(date, RestaurantConstant.TRANSTYPE_TRANSDTL_REVERT);
+ if (revdtls.size() > 0) {
+ for (TOfflineTransDtl revdtl : revdtls) {
+ TTransDtl tTransDtl = gettTransDtl(revdtl);
+ tTransDtl.setTranstype(RestaurantConstant.TRANSTYPE_TRANSDTL_REVERT);
+ transDtlService.doRevertTransdtl(tTransDtl);
+ }
+ }
+
}
+ @NotNull
+ private TTransDtl gettTransDtl(TOfflineTransDtl dtl) {
+ TTransDtl tTransDtl = new TTransDtl();
+ tTransDtl.setManagefee(dtl.getManagefee());
+ tTransDtl.setAmount(dtl.getAmount());
+ tTransDtl.setCardno(dtl.getCardno());
+ tTransDtl.setStatus(dtl.getStatus());
+ tTransDtl.setBillno(dtl.getBillno());
+ tTransDtl.setTermsqlno(dtl.getTermsqlno());
+ tTransDtl.setMealtype(dtl.getMealtype());
+ tTransDtl.setCusttype(dtl.getCusttype());
+ tTransDtl.setShopid(dtl.getShopid());
+ tTransDtl.setTransdate(dtl.getTransdate());
+ tTransDtl.setTranstime(dtl.getTranstime());
+ tTransDtl.setCustname(dtl.getCustname());
+ tTransDtl.setTermid(dtl.getTermid());
+ tTransDtl.setRuleid(dtl.getRuleid());
+ tTransDtl.setManagefee(dtl.getManagefee());
+ return tTransDtl;
+ }
+
+
private void saveTransdtls(TOfflineTransDtl dtl, TTransDtl tTransDtl, CitizenPayResponse finishresp) {
dtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_FAIL);
dtl.setAttr1(finishresp.getRetmsg() + "," + finishresp.getException());
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/OfflineTransDtlService.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/OfflineTransDtlService.java
index 74f128a..7eb378c 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/OfflineTransDtlService.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/OfflineTransDtlService.java
@@ -30,7 +30,7 @@
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
- List<TOfflineTransDtl> getUncheckOfflineTransdtl(String accdate);
+ List<TOfflineTransDtl> getUncheckOfflineTransdtl(String transdate,String transtype);
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/OfflineTransDtlServiceImpl.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/OfflineTransDtlServiceImpl.java
index 8c5ea23..b6a635d 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/OfflineTransDtlServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/OfflineTransDtlServiceImpl.java
@@ -93,7 +93,6 @@
}else{
targetDtl=new TOfflineTransDtl();
}
- Integer osqlno=targetDtl.getTermsqlno();
TOfflineTransDtl revDtl=new TOfflineTransDtl();
BeanUtils.copyProperties(targetDtl,revDtl);
revDtl.setBillno(systemUtilService.getRefno());
@@ -112,7 +111,7 @@
}
@Override
- public List<TOfflineTransDtl> getUncheckOfflineTransdtl(String accdate) {
- return transDtlDao.findAllByTransdateAndStatusAndTranstype(accdate,RestaurantConstant.STATUS_TRANSDTL_INIT,RestaurantConstant.TRANSTYPE_TRANSDTL_OFFLINE);
+ public List<TOfflineTransDtl> getUncheckOfflineTransdtl(String transdate,String transtype) {
+ return transDtlDao.findAllByTransdateAndStatusAndTranstype(transdate,RestaurantConstant.STATUS_TRANSDTL_INIT,RestaurantConstant.TRANSTYPE_TRANSDTL_OFFLINE);
}
}