交易逻辑更新,离线交易逻辑更新,前台交易流水查询修改
diff --git a/config/application-devel-pg.properties b/config/application-devel-pg.properties
index 22ed8fd..6a1a4cd 100644
--- a/config/application-devel-pg.properties
+++ b/config/application-devel-pg.properties
@@ -4,7 +4,7 @@
spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults=false
spring.datasource.continue-on-error=true
#spring.datasource.initialization-mode=always
-#spring.jpa.show-sql=true
+spring.jpa.show-sql=true
#logging.level.org.hibernate.SQL=DEBUG
# Postgresql settings
spring.datasource.platform=postgresql
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/PosPayInitReq.java b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayInitReq.java
index 1f9e728..1069009 100644
--- a/src/main/java/com/supwisdom/dlpay/api/bean/PosPayInitReq.java
+++ b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayInitReq.java
@@ -11,6 +11,7 @@
private String termtime;
@SignField
private String qrcode;
+ private Integer amount;
@SignField
private String cardno;
@SignField
@@ -108,7 +109,15 @@
}
public void setSign_method(String sign_method) {
+
this.sign_method = sign_method;
}
+ public Integer getAmount() {
+ return amount;
+ }
+
+ public void setAmount(Integer amount) {
+ this.amount = amount;
+ }
}
diff --git a/src/main/java/com/supwisdom/dlpay/api/service/PayApiService.java b/src/main/java/com/supwisdom/dlpay/api/service/PayApiService.java
deleted file mode 100644
index 9f032ad..0000000
--- a/src/main/java/com/supwisdom/dlpay/api/service/PayApiService.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.supwisdom.dlpay.api.service;
-
-import com.supwisdom.dlpay.api.bean.CitizenCardPayfinishParam;
-import com.supwisdom.dlpay.api.bean.CitizenCardPayinitParam;
-import com.supwisdom.dlpay.api.bean.CitizenPayResponse;
-
-public interface PayApiService {
- CitizenPayResponse citizencardPayinit(CitizenCardPayinitParam param);
-
- CitizenPayResponse citizencardPayFinish( CitizenCardPayfinishParam param);
-
-}
diff --git a/src/main/java/com/supwisdom/dlpay/api/service/impl/PayApiServiceImpl.java b/src/main/java/com/supwisdom/dlpay/api/service/impl/PayApiServiceImpl.java
deleted file mode 100644
index f3c454a..0000000
--- a/src/main/java/com/supwisdom/dlpay/api/service/impl/PayApiServiceImpl.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.supwisdom.dlpay.api.service.impl;
-
-import com.supwisdom.dlpay.api.bean.CitizenCardPayfinishParam;
-import com.supwisdom.dlpay.api.bean.CitizenCardPayinitParam;
-import com.supwisdom.dlpay.api.bean.CitizenPayResponse;
-import com.supwisdom.dlpay.api.service.PayApiService;
-import com.supwisdom.dlpay.framework.dao.ApiClientDao;
-import com.supwisdom.dlpay.framework.domain.TApiClient;
-import com.supwisdom.dlpay.framework.util.StringUtil;
-import com.supwisdom.dlpay.paysdk.ApiLoginHelper;
-import com.supwisdom.dlpay.paysdk.proxy.ApiLoginProxy;
-import com.supwisdom.dlpay.paysdk.proxy.CitizenCardPayProxy;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.cloud.openfeign.EnableFeignClients;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.stereotype.Service;
-
-/*
-@EnableFeignClients(basePackages = "com.supwisdom.dlpay.paysdk")
-@ComponentScan(basePackages = {"com.supwisdom.dlpay.paysdk"})*/
-@Service
-public class PayApiServiceImpl implements PayApiService {
-
- @Value("${payapi.url}")
- private String payapiurl;
-
- @Value("${payapi.appid}")
- private String appid;
-
- @Autowired
- private ApiClientDao apiClientDao;
-
- @Autowired
- private ApiLoginProxy apiLoginProxy;
-
- @Autowired
- private CitizenCardPayProxy citizenCardPayProxy;
-
- @Override
- public CitizenPayResponse citizencardPayinit(CitizenCardPayinitParam param) {
- CitizenPayResponse resp = citizenCardPayProxy.citizencardPayinit(param);
- return resp;
- }
-
- @Override
- public CitizenPayResponse citizencardPayFinish(CitizenCardPayfinishParam param) {
- CitizenPayResponse resp =citizenCardPayProxy.citizencardPayFinish(param);
- return resp;
- }
-}
diff --git a/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java b/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java
index d733c84..35480c1 100644
--- a/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java
@@ -1,7 +1,6 @@
package com.supwisdom.dlpay.api.service.impl;
import com.supwisdom.dlpay.api.bean.*;
-import com.supwisdom.dlpay.api.service.PayApiService;
import com.supwisdom.dlpay.api.service.PosPayService;
import com.supwisdom.dlpay.framework.dao.BusinessparaDao;
import com.supwisdom.dlpay.framework.domain.TBusinesspara;
@@ -12,6 +11,7 @@
import com.supwisdom.dlpay.framework.util.MoneyUtil;
import com.supwisdom.dlpay.framework.util.StringUtil;
import com.supwisdom.dlpay.paysdk.proxy.CitizenCardPayProxy;
+import com.supwisdom.dlpay.paysdk.proxy.ConsumePropxy;
import com.supwisdom.dlpay.paysdk.proxy.TransactionProxy;
import com.supwisdom.dlpay.restaurant.bean.DiscountBean;
import com.supwisdom.dlpay.restaurant.bean.ManageFeeAmtBean;
@@ -57,8 +57,6 @@
@Autowired
private BusinessparaDao businessparaDao;
@Autowired
- private PayApiService payApiService;
- @Autowired
private DiscountRuleDao discountRuleDao;
@Autowired
private DeviceDiscountRuleService deviceDiscountRuleService;
@@ -66,6 +64,8 @@
private CitizenCardPayProxy citizenCardPayProxy;
@Autowired
private TransactionProxy transactionProxy;
+ @Autowired
+ private ConsumePropxy consumePropxy;
@Override
@@ -142,12 +142,12 @@
resp.setRetmsg("卡号[" + req.getCardno() + "]不存在");
return resp;
}
- if (!tCard.getStatus().equals(RestaurantConstant.STATUS_CARD_NORMAL)){
+ if (!RestaurantConstant.STATUS_CARD_NORMAL.equals(tCard.getStatus())){
resp.setRetcode(ErrorCode.ERRIF_CARD_DISABLED);
resp.setRetmsg("卡号[" + req.getCardno() + "]已注销");
return resp;
}
- if(!tCard.getTransstatus().equals(RestaurantConstant.STATUS_CARD_NORMAL)){
+ if(!RestaurantConstant.STATUS_CARD_NORMAL.equals(tCard.getTransstatus())){
resp.setRetmsg("卡号[" + req.getCardno() + "]状态异常;");
resp.setRetcode(ErrorCode.ERRIF_CARD_DISABLED);
return resp;
@@ -178,13 +178,24 @@
tTransdtl.setCusttype(customer.getCusttype());
tTransdtl.setTransdate(req.getTermdate());
+
+ Double amount=req.getAmount() / 100.0;
+
+ DiscountBean bean=deviceDiscountRuleService.getCustomerDiscount(tDevice.getId(),req.getTermtime(), customer.getCustid());
+ if(null!=bean){
+ tTransdtl.setRuleid(bean.getRuleid());
+ amount = getDiscountAmount(req.getTermdate(), customer.getCustid(), amount, bean);
+ }
+ tTransdtl.setAmount(amount);
+ tTransdtl.setManagefee(managefee);
tTransdtl.setTranstime(req.getTermtime());
tTransdtl.setCardno(req.getCardno());
tTransdtl.setTransmode(req.getTranstype());
+
tTransdtl.setTranstype(RestaurantConstant.TRANSTYPE_TRANSDTL_ONLINE);
tTransdtl.setTermsqlno(req.getTermseqno());
- tTransdtl.setAmount(0D);
tTransdtl.setManagefee(0.0);
+
tTransdtl.setRevflag(0);
List<TMealtype> mealtypes = mealTypeDao.findAllByOrderByEndtime();
@@ -216,7 +227,7 @@
transDtlService.saveTransdtl(tTransdtl);
resp.setBillno(tTransdtl.getBillno());
- resp.setRetcode(ErrorCode.ERRIF_OK);
+
resp.setAnonymous(false);
resp.setNeedpwdconfirm(false);
resp.setSourcetype("pos");
@@ -227,6 +238,21 @@
return resp;
}
+ private Double getDiscountAmount(String termdate, String custid, Double amount, DiscountBean bean) {
+ Integer limit=transDtlService.getDiscountLimitToday(termdate,custid,bean.getRuleid());
+ if(bean.getLimitcnt()>=limit){
+
+ if(RestaurantConstant.RULETYPE_REDUCTION.equals(bean.getRuletype())){
+ amount=amount-Double.parseDouble(bean.getAmount());
+ }else if (RestaurantConstant.RULETYPE_DISCOUNT.equals(bean.getRuletype())){
+ amount=amount*(Double.parseDouble(bean.getAmount())/10);
+ }else if (RestaurantConstant.RULETYPE_QUOTA.equals(bean.getRuletype())){
+ amount=Double.parseDouble(bean.getAmount());
+ }
+ }
+ return amount;
+ }
+
@Override
public PosPayConfirmResp doPayConfirm(PosPayConfirmReq req) {
PosPayConfirmResp resp = new PosPayConfirmResp();
@@ -252,61 +278,66 @@
return resp;
}
- Double extamount = 0.0;
- Double amount=req.getAmount() / 100.0;
-
- DiscountBean bean=deviceDiscountRuleService.getCustomerDiscount(tDevice.getId(),req.getTermtime(), cus.getCustid());
- if(null!=bean){
- Integer limit=transDtlService.getDiscountLimitToday(req.getTermdate(),cus.getCustid(),bean.getRuleid());
- if(bean.getLimitcnt()>=limit){
- tTransdtl.setRuleid(bean.getRuleid());
- if(RestaurantConstant.RULETYPE_REDUCTION.equals(bean.getRuletype())){
- amount=amount-Double.parseDouble(bean.getAmount());
- }else if (RestaurantConstant.RULETYPE_DISCOUNT.equals(bean.getRuletype())){
- amount=amount*(Double.parseDouble(bean.getAmount())/10);
- }else if (RestaurantConstant.RULETYPE_QUOTA.equals(bean.getRuletype())){
- amount=Double.parseDouble(bean.getAmount());
- }
- }
- }
-
- tTransdtl.setAmount(amount);
- tTransdtl.setManagefee(extamount); //managefeetype :mealer discount
tTransdtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_WAIT);
TTransDtl dtl=transDtlService.saveTransdtl(tTransdtl);
- 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.setAmount(MoneyUtil.YuanToFen(dtl.getAmount()));
- param.setDtltype("canteen");
- CitizenPayResponse response=citizenCardPayProxy.citizencardPayinit(param);
- if(response.getRetcode() == 0){
- tTransdtl.setRefno(response.getRefno());
- CitizenCardPayfinishParam confirmParam=new CitizenCardPayfinishParam();
- confirmParam.setRefno(response.getRefno());
- CitizenPayResponse confirmResp = citizenCardPayProxy.citizencardPayFinish(confirmParam);
- if(confirmResp.getRetcode() == 0){
- tTransdtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_SUCCESS);
- resp.setRetcode(ErrorCode.ERRIF_OK);
- }else if (confirmResp.getRetcode()==55555){
- tTransdtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_WAIT);
+ if(RestaurantConstant.TRANSMODE_CODE.equals(dtl.getTransmode())){
+ QrcodePayParam param=new QrcodePayParam();
+ param.setAmount(MoneyUtil.YuanToFen(tTransdtl.getAmount()));
+ param.setBillno(tTransdtl.getBillno());
+ param.setShopaccno(tTransdtl.getShopid());
+ param.setTransdate(tTransdtl.getTransdate());
+ param.setTranstime(tTransdtl.getTranstime());
+ param.setDtltype("canteen");
+ param.setAnonymous(true);
+ QrcodePayResponse qrcoderesp=consumePropxy.qrcodePayInit(param);
+ if(qrcoderesp.getRetcode() == 0){
+ tTransdtl.setRefno(qrcoderesp.getRefno());
resp.setRetcode(ErrorCode.ERRIF_OK);
}else{
tTransdtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_FAIL);
- tTransdtl.setAttr1(confirmResp.getRetmsg()+","+confirmResp.getException());
- resp.setRetcode(confirmResp.getRetcode().toString());
- resp.setRetmsg(confirmResp.getRetmsg());
+ tTransdtl.setAttr1(qrcoderesp.getRetmsg()+","+qrcoderesp.getException());
+ resp.setRetcode(qrcoderesp.getRetcode().toString());
+ resp.setRetmsg(qrcoderesp.getRetmsg());
}
+
}else{
- tTransdtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_FAIL);
- tTransdtl.setAttr1(response.getRetmsg()+","+response.getException());
- resp.setRetcode(response.getRetcode().toString());
- resp.setRetmsg(response.getRetmsg());
+ 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.setAmount(MoneyUtil.YuanToFen(dtl.getAmount()));
+ param.setDtltype("canteen");
+ CitizenPayResponse response=citizenCardPayProxy.citizencardPayinit(param);
+ if(response.getRetcode() == 0){
+ tTransdtl.setRefno(response.getRefno());
+ CitizenCardPayfinishParam confirmParam=new CitizenCardPayfinishParam();
+ confirmParam.setRefno(response.getRefno());
+ CitizenPayResponse confirmResp = citizenCardPayProxy.citizencardPayFinish(confirmParam);
+ if(confirmResp.getRetcode() == 0){
+ tTransdtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_SUCCESS);
+ resp.setRetcode(ErrorCode.ERRIF_OK);
+ }else if (confirmResp.getRetcode()==55555){
+ tTransdtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_WAIT);
+ resp.setRetcode(ErrorCode.ERRIF_OK);
+ }else{
+ tTransdtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_FAIL);
+ tTransdtl.setAttr1(confirmResp.getRetmsg()+","+confirmResp.getException());
+ resp.setRetcode(confirmResp.getRetcode().toString());
+ resp.setRetmsg(confirmResp.getRetmsg());
+ }
+ }else{
+ tTransdtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_FAIL);
+ tTransdtl.setAttr1(response.getRetmsg()+","+response.getException());
+ resp.setRetcode(response.getRetcode().toString());
+ resp.setRetmsg(response.getRetmsg());
+ }
}
+
+
+
resp.setBillno(req.getBillno());
Double retAmount=tTransdtl.getAmount()*100;
resp.setAmount(retAmount.intValue());
@@ -365,8 +396,7 @@
resp.setRetmsg("交易参考号" + req.getReversalbillno() + "不存在");
return resp;
}
- if (!tTransDtl.getStatus().toUpperCase().equals(
- RestaurantConstant.STATUS_TRANSDTL_SUCCESS.toUpperCase())) {
+ if (!RestaurantConstant.STATUS_TRANSDTL_SUCCESS.toUpperCase().equals(tTransDtl.getStatus().toUpperCase())) {
/* tTransDtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_FAIL);
tTransDtl.setAttr1("交易状态未成功");*/
resp.setRetcode(ErrorCode.ERRIF_POSDTL_NOTEXIST);
@@ -593,29 +623,26 @@
public PosPayOfflineDtlResp saveOfflineDtl(PosPayOfflineDtlReq req) {
PosPayOfflineDtlResp resp=new PosPayOfflineDtlResp();
TOfflineTransDtl transDtl=new TOfflineTransDtl();
- transDtl.setAccdate(req.getTransdate());
- transDtl.setAcctime(req.getTranstime());
transDtl.setTransdate(req.getTransdate());
transDtl.setTranstime(req.getTranstime());
- transDtl.setAmount(req.getAmount()/100.0);
+
transDtl.setBillno(systemUtilService.getRefno());
transDtl.setCardno(req.getCardno());
transDtl.setRevflag(0);
+
List<TMealtype> mealtypes = mealTypeDao.findAllByOrderByEndtime();
transDtl.setTermsqlno(req.getTermseqno());
String err="";
TDevice device = deviceService.getDeviceByDevphyid(req.getDevphyid());
if (null == device) {
err+="设备物理ID不存在;";
-
+ transDtl.setAttr1(err);
+ offlineTransDtlService.saveTransdtl(transDtl);
+ resp.setRetmsg("保存成功");
+ resp.setRetcode(ErrorCode.ERRIF_OK);
+ return resp;
}
- if (device.getState() != 1) {
- err+="设备状态错误;";
- }else{
- transDtl.setTermid(device.getId());
- transDtl.setShopid(device.getShopid());
- }
-
+ Double amount=req.getAmount()/100.0;
TCard tCard = cardService.getCardByCardnoAndCardphyid(req.getCardno(), req.getCardphyid());
if (null == tCard) {
err+="卡号[" + req.getCardno() + "]不存在;";
@@ -626,9 +653,26 @@
} else {
transDtl.setCustid(customer.getCustid());
transDtl.setCustname(customer.getCustname());
+ DiscountBean bean=deviceDiscountRuleService.getCustomerDiscount(device.getId(),req.getTranstime(), customer.getCustid());
+ if(null!=bean){
+ transDtl.setRuleid(bean.getRuleid());
+ amount = getDiscountAmount(req.getTransdate(), customer.getCustid(), amount, bean);
+ }
}
}
+ transDtl.setAmount(amount);
+
+
+ if (device.getState() != 1) {
+ err+="设备状态错误;";
+ }else{
+ transDtl.setTermid(device.getId());
+ transDtl.setShopid(device.getShopid());
+ }
+
+
+
/* TCustomer customer=customerService.getCustomerByCustid(tCard.getCustid());
if(null==customer){
err+="卡对应人员不存在;";
@@ -663,8 +707,7 @@
if (null == tTransDtl) {
err+=("终端参考号" + req.getReversaltermseqno() + "不存在;");
}else{
- if (!tTransDtl.getStatus().toUpperCase().equals(
- RestaurantConstant.STATUS_TRANSDTL_SUCCESS.toUpperCase())) {
+ if (!RestaurantConstant.STATUS_TRANSDTL_SUCCESS.toUpperCase().equals(tTransDtl.getStatus().toUpperCase())) {
err+=("交易状态未成功;");
}
if (tTransDtl.getRevflag() == 1) {
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 40ce54c..3cb42e0 100644
--- a/src/main/java/com/supwisdom/dlpay/api/task/PosPayTask.java
+++ b/src/main/java/com/supwisdom/dlpay/api/task/PosPayTask.java
@@ -3,8 +3,6 @@
import com.supwisdom.dlpay.api.bean.CitizenCardPayfinishParam;
import com.supwisdom.dlpay.api.bean.CitizenCardPayinitParam;
import com.supwisdom.dlpay.api.bean.CitizenPayResponse;
-import com.supwisdom.dlpay.api.service.PayApiService;
-import com.supwisdom.dlpay.api.service.PosPayService;
import com.supwisdom.dlpay.framework.util.DateUtil;
import com.supwisdom.dlpay.paysdk.proxy.CitizenCardPayProxy;
import com.supwisdom.dlpay.restaurant.dao.TransDtlDao;
@@ -38,13 +36,34 @@
@Autowired
private CitizenCardPayProxy citizenCardPayProxy;
- /* @Scheduled(cron = "${cron.offlinedtl}")
+ @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){
+
+ 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());
+
+
+
CitizenCardPayinitParam param=new CitizenCardPayinitParam();
param.setBillno(dtl.getBillno());
param.setShopaccno(dtl.getShopid());
@@ -78,6 +97,6 @@
}
- }*/
+ }
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/bean/CustomerSearchBean.java b/src/main/java/com/supwisdom/dlpay/restaurant/bean/CustomerSearchBean.java
index fbc88d8..06986ef 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/bean/CustomerSearchBean.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/bean/CustomerSearchBean.java
@@ -4,6 +4,7 @@
public class CustomerSearchBean extends PageBean {
private String custname;
+ private String checkstatus;
public String getCustname() {
return custname;
@@ -12,4 +13,12 @@
public void setCustname(String custname) {
this.custname = custname;
}
+
+ public String getCheckstatus() {
+ return checkstatus;
+ }
+
+ public void setCheckstatus(String checkstatus) {
+ this.checkstatus = checkstatus;
+ }
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/controller/CustomerController.java b/src/main/java/com/supwisdom/dlpay/restaurant/controller/CustomerController.java
index 38435b8..b1be118 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/controller/CustomerController.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/controller/CustomerController.java
@@ -64,7 +64,7 @@
searchBean.setPageNo(pageNo);
searchBean.setCustname(searchKey);
searchBean.setPageSize(pageSize);
- PageResult<CustomerShowBean> bean= customerService.getCustomerByCustname(searchBean);
+ PageResult<CustomerShowBean> bean= customerService.getCustomerPage(searchBean);
return bean;
} catch (Exception e) {
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCustomer.java b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCustomer.java
index e6070a4..5a107d4 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCustomer.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCustomer.java
@@ -20,6 +20,7 @@
private String batchno;
private String lastsaved;
private String status;
+ private String checkstatus;
@Id
@GenericGenerator(name = "idGenerator", strategy = "uuid")
@@ -118,4 +119,14 @@
public void setStatus(String status) {
this.status = status;
}
+
+
+ @Column(name = "checkstatus", length = 10)
+ public String getCheckstatus() {
+ return checkstatus;
+ }
+
+ public void setCheckstatus(String checkstatus) {
+ this.checkstatus = checkstatus;
+ }
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TOfflineTransDtl.java b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TOfflineTransDtl.java
index a0f6a33..b577d52 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TOfflineTransDtl.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TOfflineTransDtl.java
@@ -29,6 +29,7 @@
private Double managefee;
private String mealtype;
private Integer termsqlno;
+ private Integer ruleid;
@@ -217,4 +218,14 @@
public void setManagefee(Double managefee) {
this.managefee = managefee;
}
+
+
+ @Column(name = "ruleid", precision = 9)
+ public Integer getRuleid() {
+ return ruleid;
+ }
+
+ public void setRuleid(Integer ruleid) {
+ this.ruleid = ruleid;
+ }
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/CardService.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/CardService.java
index 742f0b4..466ad11 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/CardService.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/CardService.java
@@ -27,6 +27,8 @@
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
TCard getCardByCardnoAndCardphyid(String cardno,String Cardphyid);
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+ TCard getCardByCardno(String cardno);
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
String getMaxCarcver();
@@ -36,4 +38,6 @@
List<TCardver> getCardlistByTCardVer(String cardverno);
+
+
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/CustomerService.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/CustomerService.java
index d22b33a..a1197e1 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/CustomerService.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/CustomerService.java
@@ -18,7 +18,7 @@
public interface CustomerService {
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
- PageResult<CustomerShowBean> getCustomerByCustname(CustomerSearchBean param);
+ PageResult<CustomerShowBean> getCustomerPage(CustomerSearchBean param);
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
TCustomer getCustomerByCustid(String custid);
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CardServiceImpl.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CardServiceImpl.java
index 903a26f..5e64630 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CardServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CardServiceImpl.java
@@ -48,6 +48,17 @@
}
@Override
+ public TCard getCardByCardno(String cardno) {
+ Optional<TCard> card=cardDao.findById(cardno);
+ if(card.isPresent()){
+ return card.get();
+
+ }
+ return null;
+ }
+
+
+ @Override
public String getMaxCarcver() {
return cardverDao.getMaxCardverno();
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CustomerServiceImpl.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CustomerServiceImpl.java
index 540dc9f..b5cd08d 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CustomerServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CustomerServiceImpl.java
@@ -49,16 +49,20 @@
private EntityManager entityManager;
@Override
- public PageResult<CustomerShowBean> getCustomerByCustname(CustomerSearchBean param) {
+ public PageResult<CustomerShowBean> getCustomerPage(CustomerSearchBean param) {
StringBuffer querySql = new StringBuffer("select t.cardno,t.custid,c.custname, " +
"t.bankcardno,t.cardphyid,c.phone,c.custtype from Tb_card t " +
- "left join tb_customer c on t.custid=c.custid where t.status='normal'");
+ "left join tb_customer c on t.custid=c.custid where 1=1 ");
StringBuffer countSql = new StringBuffer("select count(*) as cnt from Tb_card t " +
- "left join tb_customer c on t.custid=c.custid where t.status='normal'");
+ "left join tb_customer c on t.custid=c.custid where 1=1 ");
if (!StringUtil.isEmpty(param.getCustname())) {
querySql.append(" and c.custname like :str ");
countSql.append(" and c.custname like :str ");
}
+ if (!StringUtil.isEmpty(param.getCheckstatus())) {
+ querySql.append(" and c.checkstatus = :checkstatus ");
+ countSql.append(" and c.checkstatus = :checkstatus ");
+ }
querySql.append(" order by t.cardno ");
Query query = entityManager.createNativeQuery(querySql.toString());
Query countQuery = entityManager.createNativeQuery(countSql.toString());
@@ -66,6 +70,10 @@
query.setParameter("str", "%" + param.getCustname().trim() + "%");
countQuery.setParameter("str", "%" + param.getCustname().trim() + "%");
}
+ if (!StringUtil.isEmpty(param.getCheckstatus())) {
+ query.setParameter("checkstatus", param.getCheckstatus().trim() );
+ countQuery.setParameter("checkstatus", param.getCheckstatus().trim());
+ }
query.setFirstResult((param.getPageNo() - 1) * param.getPageSize());
query.setMaxResults(param.getPageSize()); //分页显示
query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.aliasToBean(CustomerShowBean.class));
@@ -105,11 +113,11 @@
cus.setIdno(customer.getIdno());
cus.setIdtype(customer.getIdtype());
cus.setStatus(RestaurantConstant.STATUS_CARD_NORMAL);
+ cus.setCheckstatus(RestaurantConstant.STATUS_CHECKSTATUS_UNCHECK);
cus = customerDao.save(cus);
if (null != cus) {
String cardverno = systemUtilService.getCardverno();
String date = DateUtil.getNow("yyyyMMdd");
-
card.setCardno(customer.getCardno());
card.setOpendate(date);
card.setCustid(cus.getCustid());
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/TransDtlServiceImpl.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/TransDtlServiceImpl.java
index 714b0e9..935a6b0 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/TransDtlServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/TransDtlServiceImpl.java
@@ -75,19 +75,19 @@
list.add(cb.like(root.get("custname").as(String.class), "%" + param.getCustname() + "%"));
}
if (!StringUtil.isEmpty(param.getStartdate())) {
- list.add(cb.greaterThanOrEqualTo(root.get("accdate").as(String.class), param.getStartdate()));
+ list.add(cb.greaterThanOrEqualTo(root.get("transdate").as(String.class), param.getStartdate()));
}
if (!StringUtil.isEmpty(param.getEnddate())) {
- list.add(cb.lessThanOrEqualTo(root.get("accdate").as(String.class), param.getEnddate()));
+ list.add(cb.lessThanOrEqualTo(root.get("transdate").as(String.class), param.getEnddate()));
}
if (!StringUtil.isEmpty(param.getAccdate())) {
list.add(cb.equal(root.get("accdate").as(String.class), param.getAccdate()));
}
- if (null!=param.getShopid()) {
- list.add(cb.equal(root.get("shopid").as(String.class), param.getShopid().toString()));
+ if (!StringUtil.isEmpty(param.getShopid())) {
+ list.add(cb.equal(root.get("shopid").as(String.class), param.getShopid()));
}
- if (null!=param.getStatus()) {
- list.add(cb.equal(root.get("status").as(String.class), param.getStatus().toString()));
+ if (!StringUtil.isEmpty(param.getStatus())) {
+ list.add(cb.equal(root.get("status").as(String.class), param.getStatus()));
}
if (null!=param.getTermid()) {
list.add(cb.like(root.get("termid").as(String.class), param.getTermid().toString()));
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/task/RestaurantTask.java b/src/main/java/com/supwisdom/dlpay/restaurant/task/RestaurantTask.java
new file mode 100644
index 0000000..bd5dae2
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/task/RestaurantTask.java
@@ -0,0 +1,79 @@
+package com.supwisdom.dlpay.restaurant.task;
+
+import com.supwisdom.dlpay.api.bean.*;
+import com.supwisdom.dlpay.framework.util.DateUtil;
+import com.supwisdom.dlpay.paysdk.proxy.CitizenCardPayProxy;
+import com.supwisdom.dlpay.paysdk.proxy.UserProxy;
+import com.supwisdom.dlpay.restaurant.bean.CustomerSearchBean;
+import com.supwisdom.dlpay.restaurant.bean.CustomerShowBean;
+import com.supwisdom.dlpay.restaurant.dao.CustomerDao;
+import com.supwisdom.dlpay.restaurant.domain.TCard;
+import com.supwisdom.dlpay.restaurant.domain.TCustomer;
+import com.supwisdom.dlpay.restaurant.domain.TOfflineTransDtl;
+import com.supwisdom.dlpay.restaurant.service.CardService;
+import com.supwisdom.dlpay.restaurant.service.CustomerService;
+import com.supwisdom.dlpay.restaurant.service.OfflineTransDtlService;
+import com.supwisdom.dlpay.restaurant.service.TransDtlService;
+import com.supwisdom.dlpay.restaurant.util.RestaurantConstant;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+@Component
+@Configuration
+@EnableScheduling
+public class RestaurantTask {
+ private static final Logger logger = LoggerFactory.getLogger(RestaurantTask.class);
+
+ @Autowired
+ private CardService cardService;
+ @Autowired
+ private CustomerService customerService;
+ @Autowired
+ private CustomerDao customerDao;
+ @Autowired
+ private UserProxy userProxy;
+
+ @Scheduled(cron = "0 0/5 * * * ? ")
+ private void CustomerCheckTask(){
+ CustomerSearchBean searchBean=new CustomerSearchBean();
+ searchBean.setCheckstatus(RestaurantConstant.STATUS_CHECKSTATUS_UNCHECK);
+
+ List<CustomerShowBean> dtls=customerService.getCustomerPage(searchBean).getData();
+ logger.info("正在同步"+dtls.size()+"名人员");
+ if(dtls.size()>0){
+ for(CustomerShowBean dtl:dtls){
+ QueryUserParam param=new QueryUserParam();
+ param.setCitizencardno(dtl.getCardno());
+ UserInforResponse resp=userProxy.querybycardno(param);
+ TCustomer customer=customerService.getCustomerByCustid(dtl.getCustid());
+
+ if(resp.getRetcode()==0){
+ TCard card=cardService.getCardByCardno(dtl.getCardno());
+ if(null!=card){
+ card.setStatus(resp.getCardstatus());
+ card.setTransstatus(resp.getTransstatus());
+ cardService.saveCard(card);
+ }
+ customer.setCheckstatus(RestaurantConstant.STATUS_CHECKSTATUS_NORMAL);
+ customer.setStatus(RestaurantConstant.STATUS_CARD_NORMAL);
+ }else{
+ customer.setCheckstatus(RestaurantConstant.STATUS_CHECKSTATUS_FAIL);
+ customer.setStatus(RestaurantConstant.STATUS_CARD_NORMAL);
+ }
+ customerDao.save(customer);
+
+
+ }
+
+ }
+
+ }
+
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/util/RestaurantConstant.java b/src/main/java/com/supwisdom/dlpay/restaurant/util/RestaurantConstant.java
index c93865e..beb84bc 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/util/RestaurantConstant.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/util/RestaurantConstant.java
@@ -6,6 +6,14 @@
public static final String STATUS_DISCOUNTRULE_CLOSED = "closed"; //无效
public static final String STATUS_DISCOUNTRULE_REJECT = "reject"; //驳回
+ public static final String STATUS_CHECKSTATUS_UNCHECK = "uncheck"; //待审核
+ public static final String STATUS_CHECKSTATUS_NORMAL = "normal"; //有效
+ public static final String STATUS_CHECKSTATUS_FAIL = "fail"; //有效
+
+ public static final String TRANSMODE_CARD = "card"; //卡消费
+ public static final String TRANSMODE_CODE = "code"; //二维码消费
+
+
public static final String STATUS_TRANSDTL_INIT = "init"; //初始化
public static final String STATUS_TRANSDTL_WAIT = "wip"; //提交中
public static final String STATUS_TRANSDTL_SUCCESS = "success"; //已入账
diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql
index 1c184dd..94e2492 100644
--- a/src/main/resources/data.sql
+++ b/src/main/resources/data.sql
@@ -84,7 +84,8 @@
INSERT INTO "tb_dictionary"(dictval,dicttype,dictcaption,dicttypename) VALUES ('revert', 'transtypeList', '冲正', '交易类型');
INSERT INTO "tb_dictionary"(dictval,dicttype,dictcaption,dicttypename) VALUES ('normal', 'transtatusList', '成功', '流水状态');
INSERT INTO "tb_dictionary"(dictval,dicttype,dictcaption,dicttypename) VALUES ('fail', 'transtatusList', '失败', '流水状态');
-INSERT INTO "tb_dictionary"(dictval,dicttype,dictcaption,dicttypename) VALUES ('wit', 'transtatusList', '等待', '流水状态');
+INSERT INTO "tb_dictionary"(dictval,dicttype,dictcaption,dicttypename) VALUES ('wip', 'transtatusList', '等待', '流水状态');
+INSERT INTO "tb_dictionary"(dictval,dicttype,dictcaption,dicttypename) VALUES ('init', 'transtatusList', '初始化', '流水状态');
INSERT INTO "tb_function"(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (3, NULL, 0, NULL, 'layui-icon-set', '#', '系统中心', 2, -1);
@@ -413,7 +414,7 @@
INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('297e0a7e6bd65d7c016bd67401e10087', 29, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('297e0a7e6bd65d7c016bd67401e2008b', 30, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_shopsettlement" (shopsettlementno,operno,shopid,shopname) VALUES ('1', '1234', 3000001, '测试商户');
+INSERT INTO "tb_shopsettlement" (shopsettlementno,operno,shopid,shopname) VALUES ('1', '1234', '2000000012', '测试商户');
INSERT INTO "tb_subject" (subjno,balflag,displayflag,endflag,fsubjno,opendate,subjlevel,subjname,subjtype) VALUES ('1001', 1, 'y', 1, NULL, 20190604, 1, '库存现金', 1);
INSERT INTO "tb_subject" (subjno,balflag,displayflag,endflag,fsubjno,opendate,subjlevel,subjname,subjtype) VALUES ('1002', 1, 'y', 1, NULL, 20190604, 1, '银行存款', 1);
INSERT INTO "tb_subject" (subjno,balflag,displayflag,endflag,fsubjno,opendate,subjlevel,subjname,subjtype) VALUES ('1121', 1, 'y', 0, NULL, 20190604, 1, '应收票据', 1);
diff --git a/src/main/resources/templates/restaurant/transdtl/index.html b/src/main/resources/templates/restaurant/transdtl/index.html
index c60bc72..eada656 100644
--- a/src/main/resources/templates/restaurant/transdtl/index.html
+++ b/src/main/resources/templates/restaurant/transdtl/index.html
@@ -63,8 +63,10 @@
<div class="layui-input-inline">
<select name="status" id="transdtl-status">
<option value="" selected>全部</option>
- <option value="1">已入账</option>
- <option value="0">未入账</option>
+ <option value="normal">成功</option>
+ <option value="fail">失败</option>
+ <option value="init">初始化</option>
+ <option value="wip">等待</option>
</select>
</div>
</div>
@@ -163,7 +165,7 @@
},
{
field: 'transdate',
- title: '记账日期',
+ title: '交易日期',
sort: true,
width:120,
templet: function (item) {
@@ -176,7 +178,7 @@
},
{
field: 'transtime',
- title: '记账时间',
+ title: '交易时间',
sort: true,
width:100,
templet: function (item) {