交易逻辑更新,离线交易逻辑更新,前台交易流水查询修改
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) {