客户导入功能修改
diff --git a/config/application-devel-pg.properties b/config/application-devel-pg.properties
index 476c4a4..0a33918 100644
--- a/config/application-devel-pg.properties
+++ b/config/application-devel-pg.properties
@@ -30,4 +30,4 @@
 payapi.appid=200001
 
 cron.offlinedtl= 0 0/5 * * * ?
-payapi.logintime= 0 0/20 * * * ? 
\ No newline at end of file
+payapi.logintime= 0 0/5 * * * ? 
\ No newline at end of file
diff --git a/src/main/java/com/supwisdom/dlpay/AppLoginRunner.java b/src/main/java/com/supwisdom/dlpay/AppLoginRunner.java
index dd01d04..e9b9f49 100644
--- a/src/main/java/com/supwisdom/dlpay/AppLoginRunner.java
+++ b/src/main/java/com/supwisdom/dlpay/AppLoginRunner.java
@@ -35,9 +35,6 @@
         logger.info("登录核心平台");
         doLogin();
     }
-
-
-    @Scheduled(cron = "${payapi.logintime}")
     private void doLogin() {
         TBusinesspara appid=businessparaDao.findByParakey("payapi.appid");
         TBusinesspara secret=businessparaDao.findByParakey("payapi.secret");
@@ -55,4 +52,17 @@
 
     }
 
+    @Scheduled(cron = "0 0/5 * * * ?")
+    private void doRefresh() {
+        try{
+            ApiLoginHelper helper = new ApiLoginHelper(apiLoginProxy);
+            helper.refresh();
+            logger.info("刷新成功");
+        }catch (Exception e){
+            logger.error("刷新成功");
+        }
+
+    }
+
+
 }
diff --git a/src/main/java/com/supwisdom/dlpay/api/controller/PosPayController.java b/src/main/java/com/supwisdom/dlpay/api/controller/PosPayController.java
index 1c75722..863e8ad 100644
--- a/src/main/java/com/supwisdom/dlpay/api/controller/PosPayController.java
+++ b/src/main/java/com/supwisdom/dlpay/api/controller/PosPayController.java
@@ -90,14 +90,14 @@
 
     @RequestMapping(value = "/accquery", method = RequestMethod.POST)
     @ResponseBody
-    public PosPayAccqueryResp querysales(@ModelAttribute PosPayAccqueryReq req) {
+    public PosPayAccqueryResp accquery(@ModelAttribute PosPayAccqueryReq req) {
         PosPayAccqueryResp resp = posPayService.AccountQuery(req);
         return resp;
     }
 
     @RequestMapping(value = "/offlinetransdtl", method = RequestMethod.POST)
     @ResponseBody
-    public PosPayOfflineDtlResp querysales(@ModelAttribute PosPayOfflineDtlReq req) {
+    public PosPayOfflineDtlResp offlinetransdtl(@ModelAttribute PosPayOfflineDtlReq req) {
         PosPayOfflineDtlResp resp = posPayService.saveOfflineDtl(req);
         return resp;
     }
@@ -105,7 +105,7 @@
 
     @RequestMapping(value = "/globalparam", method = RequestMethod.POST)
     @ResponseBody
-    public PosPayGolbalParamResp querysales(@ModelAttribute PosPayGolbalParamReq req) {
+    public PosPayGolbalParamResp globalparam(@ModelAttribute PosPayGolbalParamReq req) {
         PosPayGolbalParamResp resp = posPayService.getBusinessParam(req);
         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 b0aa58b..22db50d 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
@@ -160,7 +160,7 @@
             cardphyid = req.getCardphyid();
         }
 
-        TCard tCard = cardService.getCardByCardnoAndCardphyid(cardno, cardphyid);
+        TCard tCard = cardService.getCardByCardno(cardno);
         if (null == tCard) {
             resp.setRetcode(ErrorCode.ERRIF_CARD_NOTEXIST);
             resp.setRetmsg("卡号[" + req.getCardno() + "]不存在");
@@ -662,7 +662,7 @@
             return resp;
         }
 
-        TCard card = cardService.getCardByCardnoAndCardphyid(req.getCardno(), req.getCardphyid());
+        TCard card = cardService.getCardByCardno(req.getCardno());
 
         if (null == card) {
             resp.setRetcode(ErrorCode.ERRIF_CARD_NOTEXIST);
@@ -742,7 +742,7 @@
             cardphyid = req.getCardphyid();
         }
 
-        TCard tCard = cardService.getCardByCardnoAndCardphyid(cardno, cardphyid);
+        TCard tCard = cardService.getCardByCardno(cardno);
         if (null == tCard) {
             err += "卡号[" + req.getCardno() + "]不存在;";
         } else {
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/bean/CustomerSaveBean.java b/src/main/java/com/supwisdom/dlpay/restaurant/bean/CustomerSaveBean.java
index 8a5c01a..6d50341 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/bean/CustomerSaveBean.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/bean/CustomerSaveBean.java
@@ -16,6 +16,7 @@
     private String cardno;
     private String cardphyid;
     private String bankcardno;
+    private Integer savecardflag;
 
     public String getCustid() {
         return custid;
@@ -122,6 +123,14 @@
         this.bankcardno = bankcardno;
     }
 
+    public Integer getSavecardflag() {
+        return savecardflag;
+    }
+
+    public void setSavecardflag(Integer savecardflag) {
+        this.savecardflag = savecardflag;
+    }
+
     @Override
     public String toString() {
         return "CustomerSaveBean{" +
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 b1be118..8497b6f 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/controller/CustomerController.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/controller/CustomerController.java
@@ -87,6 +87,7 @@
     @ResponseBody
     public JsonResult add(@RequestBody CustomerSaveBean customer) {
         if (customer != null) {
+            customer.setSavecardflag(0);
             return customerService.saveCustomer(customer);
         } else {
             return JsonResult.error("添加失败");
@@ -114,9 +115,9 @@
     @PreAuthorize("hasPermission('/customer/download','')")
     @ResponseBody
     public JsonResult downloadfile(HttpServletRequest request, HttpServletResponse response) throws Exception{
-        String[] titles0 = {"姓名",	"市名卡号",	"市名卡银行卡号","人员类别号","物理卡号","手机(选填)"
+        String[] titles0 = {"姓名",	"市名卡号",	"市名卡银行卡号","人员类别号","手机(选填)"
         }; //表头
-        String[][] info0 = {{"张三",	"123456",	"3000000","1","12345678","12341234123"
+        String[][] info0 = {{"张三",	"123456",	"3000000","1","12341234123"
         }}; // 示例内容
         String fileName0 = "客户导入模板";// 保存数据
 
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/dao/CardDao.java b/src/main/java/com/supwisdom/dlpay/restaurant/dao/CardDao.java
index 088564c..1f672d8 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/dao/CardDao.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/dao/CardDao.java
@@ -25,5 +25,7 @@
 
     Integer countByCardno(String cardno);
 
+    Integer countByBankcardno(String bankcardno);
+
     List<TCard>  findAllByCardnoAndCardphyidAndStatus(String cardno,String cardphyid,String status);
 }
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/dao/CustomerDao.java b/src/main/java/com/supwisdom/dlpay/restaurant/dao/CustomerDao.java
index 40e6f99..4b7e1f4 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/dao/CustomerDao.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/dao/CustomerDao.java
@@ -15,4 +15,6 @@
 
     Page<TCustomer> findAllByCustnameContaining(String custname, Pageable pageable);
 
+    Integer countByCustname(String custname);
+
 }
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 7c1e5d3..05ebb8b 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
@@ -59,7 +59,7 @@
             querySql.append(" and  c.checkstatus = :checkstatus ");
             countSql.append(" and  c.checkstatus = :checkstatus ");
         }
-        querySql.append("and t.status='normal' order by t.cardno ");
+        querySql.append(" order by t.cardno ");
         Query query = entityManager.createNativeQuery(querySql.toString());
         Query countQuery = entityManager.createNativeQuery(countSql.toString());
         if (!StringUtil.isEmpty(param.getCustname())) {
@@ -105,34 +105,37 @@
         cus.setCustname(customer.getCustname());
         cus.setIdno(customer.getIdno());
         cus.setIdtype(customer.getIdtype());
+        cus.setBatchno(customer.getBatchno());
         cus.setStatus(RestaurantConstant.STATUS_CARD_NORMAL);
         cus.setCheckstatus(RestaurantConstant.STATUS_CHECKSTATUS_UNCHECK);
         cus = customerDao.save(cus);
         if (null != cus) {
-
-            String date = DateUtil.getNow("yyyyMMdd");
-            List<TCard> cardlist = cardDao.findAllByCustidAndStatus(customer.getCustid(),RestaurantConstant.STATUS_CARD_NORMAL);
-            if (cardlist.size() > 0) {
-                TCard ocard = cardlist.get(0);
-                String cardverno=systemUtilService.getCardverno();
-                ocard.setStatus(RestaurantConstant.STATUS_CARD_LOGOUT);
-                cardDao.save(ocard);
-                saveCardver(cardverno, date, ocard, ocard.getStatus(), ocard.getStatus(), 1);
+            if(0==customer.getSavecardflag()){
+                String date = DateUtil.getNow("yyyyMMdd");
+                List<TCard> cardlist = cardDao.findAllByCustidAndStatus(customer.getCustid(),RestaurantConstant.STATUS_CARD_NORMAL);
+                if (cardlist.size() > 0) {
+                    TCard ocard = cardlist.get(0);
+                    String cardverno=systemUtilService.getCardverno();
+                    ocard.setStatus(RestaurantConstant.STATUS_CARD_LOGOUT);
+                    cardDao.save(ocard);
+                    saveCardver(cardverno, date, ocard, ocard.getStatus(), ocard.getStatus(), 1);
+                    return JsonResult.ok("成功");
+                }
+                TCard card = new TCard();
+                String cardverno = systemUtilService.getCardverno();
+                card.setCardno(customer.getCardno());
+                card.setOpendate(date);
+                card.setCustid(cus.getCustid());
+                card.setStatus(RestaurantConstant.STATUS_CARD_NORMAL);
+                card.setTransstatus(RestaurantConstant.STATUS_CARD_NORMAL);
+                //       card.setCardphyid(customer.getCardphyid());
+                card.setCardverno(cardverno);
+                card.setBankcardno(customer.getBankcardno());
+                card.setExpiredate("");
+                card = cardDao.save(card);
+                //       saveCardver(cardverno, date, card, card.getStatus(), RestaurantConstant.STATUS_CARD_NORMAL, 1);
             }
-            TCard card = new TCard();
-            String cardverno = systemUtilService.getCardverno();
-            card.setCardno(customer.getCardno());
-            card.setOpendate(date);
-            card.setCustid(cus.getCustid());
-            card.setStatus(RestaurantConstant.STATUS_CARD_NORMAL);
-            card.setTransstatus(RestaurantConstant.STATUS_CARD_NORMAL);
-            //       card.setCardphyid(customer.getCardphyid());
-            card.setCardverno(cardverno);
-            card.setBankcardno(customer.getBankcardno());
-            card.setExpiredate("");
-            card = cardDao.save(card);
-     //       saveCardver(cardverno, date, card, card.getStatus(), RestaurantConstant.STATUS_CARD_NORMAL, 1);
-        }
+      }
 
         return JsonResult.ok("成功");
     }
@@ -159,9 +162,7 @@
         String cardverno = systemUtilService.getCardverno();
         List<TCard> card = cardDao.findAllByCustid(custid);
         for (TCard c : card) {
-            c.setStatus(RestaurantConstant.STATUS_CARD_LOGOUT);
-            c.setCardverno(cardverno);
-            cardDao.save(c);
+            cardDao.deleteById(c.getCardno());
             String date = DateUtil.getNow("yyyyMMdd");
             saveCardver(cardverno, date, c, c.getStatus(), RestaurantConstant.STATUS_CARD_LOGOUT, 0);
         }
@@ -180,7 +181,6 @@
             return JsonResult.error("文件格式错误,请选择excel文件格式(.xls/.xlsx)");
         }
 
-        List<CustomerSaveBean> sList = new ArrayList<>();
 //    InputStream excelstream = new FileInputStream(savePath+"/"+fname);
         InputStream excelstream = file.getInputStream();
         List<Object[][]> oList = null;
@@ -198,28 +198,38 @@
         String msg = "";
         Integer successCnt = 0;
         Integer failCnt = 0;
+        String batchno = DateUtil.getNow("yyyyMMddHHmmss");
         for (Object[][] data : oList) {
             for (int i = 1; i < data.length; i++) {
+                String custname=(String) data[i][0];
+                String bankcardno=(String) data[i][2];
 
                 if (StringUtil.isEmpty((String) data[i][0]) || StringUtil.isEmpty((String) data[i][1]) || StringUtil.isEmpty((String) data[i][2])) {
                     msg = msg + "第" + i + "行,关键字段缺失。<br/>";
                     failCnt += 1;
-                } else if (cardDao.countByCardno((String) data[i][1]) > 0) {
-                    msg = msg + "第" + i + "行,该市名卡已存在。<br/>";
+                } else if (customerDao.countByCustname(custname) > 0&&cardDao.countByBankcardno(bankcardno)>0&&cardDao.countByCardno((String) data[i][1]) > 0) {
+                    msg = msg + "第" + i + "行,该客户在系统中已存在。<br/>";
                     failCnt += 1;
                 } else {
                     CustomerSaveBean d = new CustomerSaveBean();
-                    d.setCustname((String) data[i][0]);
+                    d.setCustname(custname);
                     String cardno = (String) data[i][1];
                     d.setCardno(cardno);
-                    d.setBankcardno((String) data[i][2]);
+                    d.setBankcardno(bankcardno);
                     String custtype = (String) data[i][3];
                     d.setCusttype(Integer.parseInt(custtype));
-                    //                  d.setCardphyid((String) data[i][4]);
-                    if (null != data[i][5]) {
-                        d.setPhone((String) data[i][5]);
+                    if (null != data[i][4]) {
+                        d.setPhone((String) data[i][4]);
                     }
-                    sList.add(d);
+                    if(cardDao.countByCardno((String) data[i][1]) > 0){
+                        d.setSavecardflag(1);
+                        msg = msg + "第" + i+1 + "行,卡号已存在,请手动添加市名卡号和银行卡号。<br/>";
+                    }else{
+                        d.setSavecardflag(0);
+                    }
+                    d.setBatchno(batchno);
+
+                    saveCustomer(d);
                     successCnt += 1;
                 }
             }
@@ -228,14 +238,10 @@
         // resp.setMsg("成功导入了"+sList.size()+"条信息");
         resp.setMsg(String.format(Locale.CHINESE, msg));
         return resp;*/
-        String batchno = DateUtil.getNow("yyyyMMddHHmmss");
-        if (StringUtil.isEmpty(msg)) {
-            for (CustomerSaveBean d : sList) {
-                d.setBatchno(batchno);
-                saveCustomer(d);
-            }
 
-            return JsonResult.ok("成功导入" + sList.size() + "条信息");
+
+        if (StringUtil.isEmpty(msg)) {
+            return JsonResult.ok("成功导入" + oList.size() + "条信息");
         }
         msg = "导入成功" + successCnt + "条,导入失败" + failCnt + "条<br/>" + msg;
 
diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql
index 44cc25b..8c00c84 100644
--- a/src/main/resources/data.sql
+++ b/src/main/resources/data.sql
@@ -121,14 +121,14 @@
 INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (18, NULL, 1, NULL, '', '/whitelistcheck/index', '就餐白名单审核', 2, 11);
 INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (31, NULL, 1, NULL, '', '/whitelistbind/devbind', '就餐白名单设备绑定', 3, 11);
 INSERT INTO "tb_function" (id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (11, NULL, 0, NULL, 'layui-icon-util', '#', '就餐白名单管理', 7, -1);
-INSERT INTO  tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (32, NULL, 1, NULL, '', '/shopsettlement/index', '商户管理', 2, 22);
+INSERT INTO  tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (32, NULL, 1, NULL, '', '/shopsettlement/index', '商户管理', 2, 10);
 
 
 
 
-INSERT INTO "tb_mealtype" (mealtype,endtime,lastsaved,mealname) VALUES ('dinner', '200000', '20190709102922', '晚餐');
-INSERT INTO "tb_mealtype" (mealtype,endtime,lastsaved,mealname) VALUES ('lunch', '140000', '20190709102922', '中午');
-INSERT INTO "tb_mealtype" (mealtype,endtime,lastsaved,mealname) VALUES ('breakfast', '100000', '20190709102803', '早餐');
+INSERT INTO "tb_mealtype" (mealtype,endtime,lastsaved,mealname) VALUES ('dinner', '235959', '20190709102922', '晚餐');
+INSERT INTO "tb_mealtype" (mealtype,endtime,lastsaved,mealname) VALUES ('lunch', '160000', '20190709102922', '中午');
+INSERT INTO "tb_mealtype" (mealtype,endtime,lastsaved,mealname) VALUES ('breakfast', '110000', '20190709102803', '早餐');
 INSERT INTO "tb_oper_role" (id,operid,roleid) VALUES ('2c9cab836a90185f016a901b005f001b', '402882816a8fe884016a8fe8c0530000', '2c9cab836a8af5d5016a8af6ece20000');
 INSERT INTO "tb_oper_role" (id,operid,roleid) VALUES ('ff8080816aaf2ec3016aaf30c1b60007', 'LOR2IwRkbOjp+sVG9KR2BpHZbwGKepS4', 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
 INSERT INTO "tb_oper_role" (id,operid,roleid) VALUES ('ff8080816ab96daf016ab9743dc60050', '2c9cab836a9666e0016a96694bbb0004', 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
@@ -400,6 +400,10 @@
 INSERT INTO  "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (51, '', 31, '查询', '/whitelistbind/devbind');
 INSERT INTO  "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (72, '', 31, '绑定', '/whitelistbind/dobinddev');
 
+INSERT INTO "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (73, '''', 32, ''查询'', ''/shopsettlement/index'');
+INSERT INTO "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (92, '''', 32, ''添加'', ''/shopsettlement/loadadd'');
+INSERT INTO "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (93, '''', 32, ''删除'', ''/shopsettlement/delete'');
+
 
 
 
diff --git a/src/main/resources/templates/restaurant/customer/import.html b/src/main/resources/templates/restaurant/customer/import.html
index 2d3d730..9b6ddaa 100644
--- a/src/main/resources/templates/restaurant/customer/import.html
+++ b/src/main/resources/templates/restaurant/customer/import.html
@@ -18,7 +18,7 @@
     </div>
 
     <div class="layui-form-item model-form-footer">
-        <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
+        <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">关闭</button>
         <button class="layui-btn" lay-filter="customer-form-import" lay-submit id="importbtn">保存</button>
     </div>
 </form>
diff --git a/src/main/resources/templates/restaurant/customer/index.html b/src/main/resources/templates/restaurant/customer/index.html
index 085f88e..4ac3c6c 100644
--- a/src/main/resources/templates/restaurant/customer/index.html
+++ b/src/main/resources/templates/restaurant/customer/index.html
@@ -42,7 +42,6 @@
                 [
                     {field: 'custname', sort: true, width: 120, title: '客户姓名'},
                     {field: 'cardno', sort: true,width: 120, title: '市名卡号'},
-                    {field: 'cardphyid', sort: true, title: '物理卡号'},
                     {field: 'phone',  title: '联系电话'},
                     {field: 'bankcardno', sort: true, width: 200, title: '银行卡号'},
                     {
@@ -58,19 +57,7 @@
                             }
                         }
                     },
-                    {
-                        field: 'status', title: '卡状态', align: 'center', width: 120, sort: true, templet: function (d) {
-                            if ('normal' == d.status) {
-                                return '<span class="layui-badge layui-bg-green">正常</span>';
-                            } else if ('logout' == d.status) {
-                                return '<span class="layui-badge layui-bg-gray">注销</span>';
-                            } else if ('fail' == d.status) {
-                                return '<span class="layui-badge layui-bg-gray">失败</span>';
-                            } else {
-                                return d.status;
-                            }
-                        }
-                    },
+
                     {
                         field: 'custtype', width:100, title: '人员类别', templet: function (item) {
                             if(item.custtype==null){
diff --git a/src/main/resources/templates/restaurant/shopsettlement/index.html b/src/main/resources/templates/restaurant/shopsettlement/index.html
index 80cf02e..140ab53 100644
--- a/src/main/resources/templates/restaurant/shopsettlement/index.html
+++ b/src/main/resources/templates/restaurant/shopsettlement/index.html
@@ -9,7 +9,7 @@
     <div class="layui-card-body">
         <div class="layui-form toolbar">
             搜索:
-            <input id="shopsettle-search-value" class="layui-input search-input" type="text" placeholder="输入功能名称"/>&emsp;
+            <input id="shopsettle-search-value" class="layui-input search-input" type="text" placeholder="输入商户名称"/>&emsp;
             <button id="shopsettle-btn-search" class="layui-btn icon-btn" data-type="search"><i class="layui-icon">&#xe615;</i>搜索
             </button>
             <button id="shopsettle-btn-add" class="layui-btn icon-btn" data-type="add"><i class="layui-icon"></i>添加商户</button>