白名单接口添加,设备审核添加
diff --git a/config/application-devel-pg.properties b/config/application-devel-pg.properties
index 287dde0..2def5f1 100644
--- a/config/application-devel-pg.properties
+++ b/config/application-devel-pg.properties
@@ -8,7 +8,8 @@
#logging.level.org.hibernate.SQL=DEBUG
# Postgresql settings
spring.datasource.platform=postgresql
-spring.datasource.url=jdbc:postgresql://172.28.201.70:15432/restauranttest
+#spring.datasource.url=jdbc:postgresql://172.28.201.70:15432/restauranttest
+spring.datasource.url=jdbc:postgresql://172.28.201.101:25432/restauranttest
spring.datasource.username=payapi
spring.datasource.password=123456
database.dbtype=postgresql
diff --git a/src/main/java/com/supwisdom/dlpay/AppLoginRunner.java b/src/main/java/com/supwisdom/dlpay/AppLoginRunner.java
index 7322f57..dd01d04 100644
--- a/src/main/java/com/supwisdom/dlpay/AppLoginRunner.java
+++ b/src/main/java/com/supwisdom/dlpay/AppLoginRunner.java
@@ -45,9 +45,14 @@
logger.info("业务参数appid或secret未配置");
return;
}
- ApiLoginHelper helper = new ApiLoginHelper(apiLoginProxy);
- helper.login(appid.getParaval(), secret.getParaval());
- logger.info("登录成功");
+ try{
+ ApiLoginHelper helper = new ApiLoginHelper(apiLoginProxy);
+ helper.login(appid.getParaval(), secret.getParaval());
+ logger.info("登录成功");
+ }catch (Exception e){
+ logger.error("登录失败");
+ }
+
}
}
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 c5808eb..fa12126 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
@@ -57,7 +57,7 @@
@Autowired
private BusinessparaDao businessparaDao;
@Autowired
- private DiscountRuleDao discountRuleDao;
+ private WhitelistService whitelistService;
@Autowired
private DeviceDiscountRuleService deviceDiscountRuleService;
@Autowired
@@ -68,6 +68,7 @@
private ConsumePropxy consumePropxy;
+
@Override
public PosPayLoginResp doLogin(PosPayLoginReq req) {
PosPayLoginResp resp = new PosPayLoginResp();
@@ -463,26 +464,22 @@
public PosPayWhitelistResp doGetWhitelist(PosPayWhitelistReq req) {
PosPayWhitelistResp resp = new PosPayWhitelistResp();
TDevice device = deviceService.getDeviceByDevphyid(req.getDevphyid());
- if (null == device) {
- resp.setRetcode(ErrorCode.E_DB_QRY);
- resp.setRetmsg("设备物理ID不存在");
- return resp;
-
- }
- if (device.getState() != 1) {
- resp.setRetcode(ErrorCode.ERRIF_OTHER);
- resp.setRetmsg("设备状态错误");
- return resp;
- }
+ if (checkDevice(resp, device)) return resp;
device.setCardverno(req.getCardverno());
deviceService.saveDevice(device);
-
ArrayList<CardverBean> cardverFlags = new ArrayList<CardverBean>();
String maxCardverno = cardService.getMaxCarcver();
Integer count = req.getMaxcount();
- List<TCardver> blacklistCards = cardService.getCardlistByTCardVer(req.getCardverno());
- System.out.println("blacksize+++" + blacklistCards.size());
- if (null == blacklistCards || blacklistCards.size() < 1) {
+ List<TCardver> whitelistCards ;
+ TWhitelistDevbind bind=whitelistService.getWhitelistDevbindByDeviceId(device.getId());
+
+ if(null!=bind){
+ whitelistCards=whitelistService.getDevBindCardver(device.getId());
+ }else{
+ whitelistCards= cardService.getCardlistByTCardVer(req.getCardverno());
+ }
+
+ if (null == whitelistCards || whitelistCards.size() < 1) {
resp.setCardverno(maxCardverno);
resp.setRetcode(ErrorCode.ERRIF_OK);
resp.setRetmsg("下载成功");
@@ -491,12 +488,11 @@
return resp;
}
- if (blacklistCards.size() < count) {
-
- count = blacklistCards.size();
+ if (whitelistCards.size() < count) {
+ count = whitelistCards.size();
}
for (int i = 0; i < count; i++) {
- TCardver cardver = blacklistCards.get(i);
+ TCardver cardver = whitelistCards.get(i);
CardverBean cardverFlag = new CardverBean();
cardverFlag.setCardno(cardver.getCardno());
cardverFlag.setCardphyid(cardver.getCardphyid());
@@ -514,20 +510,30 @@
return resp;
}
- @Override
- public PosPayHeartBeatResp posHeartBeat(PosPayHeartBeatReq req) {
- PosPayHeartBeatResp resp = new PosPayHeartBeatResp();
- TDevice device = deviceService.getDeviceByDevphyid(req.getDevphyid());
+ private boolean checkDevice(APIResp resp, TDevice device) {
if (null == device) {
resp.setRetcode(ErrorCode.E_DB_QRY);
resp.setRetmsg("设备物理ID不存在");
- return resp;
+ return true;
}
if (device.getState() != 1) {
resp.setRetcode(ErrorCode.ERRIF_OTHER);
resp.setRetmsg("设备状态错误");
- return resp;
+ return true;
}
+ if(!RestaurantConstant.STATUS_CHECKSTATUS_NORMAL.equals(device.getCheckstatus())){
+ resp.setRetcode(ErrorCode.ERRIF_OTHER);
+ resp.setRetmsg("设备审核未通过");
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public PosPayHeartBeatResp posHeartBeat(PosPayHeartBeatReq req) {
+ PosPayHeartBeatResp resp = new PosPayHeartBeatResp();
+ TDevice device = deviceService.getDeviceByDevphyid(req.getDevphyid());
+ if (checkDevice(resp, device)) return resp;
String datetime = DateUtil.getNow("yyyyMMddHHmmss");
device.setCardverno(req.getCardverno());
@@ -556,17 +562,7 @@
public PosPayQuerysalesResp posQuerySales(PosPaySysparaReq req) {
PosPayQuerysalesResp resp=new PosPayQuerysalesResp();
TDevice device = deviceService.getDeviceByDevphyid(req.getDevphyid());
- if (null == device) {
- resp.setRetcode(ErrorCode.E_DB_QRY);
- resp.setRetmsg("设备物理ID不存在");
- return resp;
-
- }
- if (device.getState() != 1) {
- resp.setRetcode(ErrorCode.ERRIF_OTHER);
- resp.setRetmsg("设备状态错误");
- return resp;
- }
+ if (checkDevice(resp, device)) return resp;
SalesAmtBean salesAmtBean=transDtlService.getSalesToday(req.getTermdate(),device.getId());
ManageFeeAmtBean feeAmtBean=transDtlService.getManageFeeToday(req.getTermdate(),device.getId());
@@ -587,17 +583,7 @@
PosPayAccqueryResp resp=new PosPayAccqueryResp();
TDevice device = deviceService.getDeviceByDevphyid(req.getDevphyid());
- if (null == device) {
- resp.setRetcode(ErrorCode.E_DB_QRY);
- resp.setRetmsg("设备物理ID不存在");
- return resp;
-
- }
- if (device.getState() != 1) {
- resp.setRetcode(ErrorCode.ERRIF_OTHER);
- resp.setRetmsg("设备状态错误");
- return resp;
- }
+ if (checkDevice(resp, device)) return resp;
TCard card=cardService.getCardByCardnoAndCardphyid(req.getCardno(),req.getCardphyid());
@@ -759,17 +745,7 @@
public PosPayGolbalParamResp getBusinessParam(PosPayGolbalParamReq req) {
PosPayGolbalParamResp resp=new PosPayGolbalParamResp();
TDevice device = deviceService.getDeviceByDevphyid(req.getDevphyid());
- if (null == device) {
- resp.setRetcode(ErrorCode.E_DB_QRY);
- resp.setRetmsg("设备物理ID不存在");
- return resp;
-
- }
- if (device.getState() != 1) {
- resp.setRetcode(ErrorCode.ERRIF_OTHER);
- resp.setRetmsg("设备状态错误");
- return resp;
- }
+ if (checkDevice(resp, device)) return resp;
TBusinesspara url=businessparaDao.findByParakey("upgrade_url");
TBusinesspara version=businessparaDao.findByParakey("upgrade_version");
if(null==url||null==version){
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/bean/CardverWhitelistBean.java b/src/main/java/com/supwisdom/dlpay/restaurant/bean/CardverWhitelistBean.java
new file mode 100644
index 0000000..7947635
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/bean/CardverWhitelistBean.java
@@ -0,0 +1,24 @@
+package com.supwisdom.dlpay.restaurant.bean;
+
+
+
+public class CardverWhitelistBean {
+ private String cardphyid;
+ private String cardno;
+
+ public String getCardphyid() {
+ return cardphyid;
+ }
+
+ public void setCardphyid(String cardphyid) {
+ this.cardphyid = cardphyid;
+ }
+
+ public String getCardno() {
+ return cardno;
+ }
+
+ public void setCardno(String cardno) {
+ this.cardno = cardno;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/bean/DeviceSearchBean.java b/src/main/java/com/supwisdom/dlpay/restaurant/bean/DeviceSearchBean.java
index d9985c0..99f6d2d 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/bean/DeviceSearchBean.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/bean/DeviceSearchBean.java
@@ -8,6 +8,15 @@
private String factoryid;
private Integer devgroupid;
private String devphyid;
+ private String checkstatus;
+
+ public String getCheckstatus() {
+ return checkstatus;
+ }
+
+ public void setCheckstatus(String checkstatus) {
+ this.checkstatus = checkstatus;
+ }
public String getDevphyid() {
return devphyid;
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/bean/WhitelistBindBean.java b/src/main/java/com/supwisdom/dlpay/restaurant/bean/WhitelistBindBean.java
new file mode 100644
index 0000000..b51a604
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/bean/WhitelistBindBean.java
@@ -0,0 +1,23 @@
+package com.supwisdom.dlpay.restaurant.bean;
+
+public class WhitelistBindBean {
+ private String cardno;
+ private String cardphyid;
+
+
+ public String getCardno() {
+ return cardno;
+ }
+
+ public void setCardno(String cardno) {
+ this.cardno = cardno;
+ }
+
+ public String getCardphyid() {
+ return cardphyid;
+ }
+
+ public void setCardphyid(String cardphyid) {
+ this.cardphyid = cardphyid;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/bean/WhitelistBindShowBean.java b/src/main/java/com/supwisdom/dlpay/restaurant/bean/WhitelistBindShowBean.java
new file mode 100644
index 0000000..e9da88c
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/bean/WhitelistBindShowBean.java
@@ -0,0 +1,77 @@
+package com.supwisdom.dlpay.restaurant.bean;
+
+public class WhitelistBindShowBean {
+ private String id;
+ private Integer deviceid;
+ private String devicename;
+ private String devphyid;
+ private Integer whitelistid;
+ private String listname;
+ private String liststatus;
+ private String createtime;
+
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public Integer getDeviceid() {
+ return deviceid;
+ }
+
+ public void setDeviceid(Integer deviceid) {
+ this.deviceid = deviceid;
+ }
+
+ public String getDevicename() {
+ return devicename;
+ }
+
+ public void setDevicename(String devicename) {
+ this.devicename = devicename;
+ }
+
+ public String getDevphyid() {
+ return devphyid;
+ }
+
+ public void setDevphyid(String devphyid) {
+ this.devphyid = devphyid;
+ }
+
+ public Integer getWhitelistid() {
+ return whitelistid;
+ }
+
+ public void setWhitelistid(Integer whitelistid) {
+ this.whitelistid = whitelistid;
+ }
+
+ public String getListname() {
+ return listname;
+ }
+
+ public void setListname(String listname) {
+ this.listname = listname;
+ }
+
+ public String getListstatus() {
+ return liststatus;
+ }
+
+ public void setListstatus(String liststatus) {
+ this.liststatus = liststatus;
+ }
+
+ public String getCreatetime() {
+ return createtime;
+ }
+
+ public void setCreatetime(String createtime) {
+ this.createtime = createtime;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/bean/WhitelistShowBean.java b/src/main/java/com/supwisdom/dlpay/restaurant/bean/WhitelistShowBean.java
new file mode 100644
index 0000000..581ff0f
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/bean/WhitelistShowBean.java
@@ -0,0 +1,41 @@
+package com.supwisdom.dlpay.restaurant.bean;
+
+public class WhitelistShowBean {
+ private Integer whitelistid;
+ private String listname;
+ private String status;
+ private String remark;
+
+
+ public Integer getWhitelistid() {
+ return whitelistid;
+ }
+
+ public void setWhitelistid(Integer whitelistid) {
+ this.whitelistid = whitelistid;
+ }
+
+ public String getListname() {
+ return listname;
+ }
+
+ public void setListname(String listname) {
+ this.listname = listname;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceCheckController.java b/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceCheckController.java
new file mode 100644
index 0000000..8068f11
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceCheckController.java
@@ -0,0 +1,85 @@
+package com.supwisdom.dlpay.restaurant.controller;
+
+
+import com.supwisdom.dlpay.api.bean.JsonResult;
+import com.supwisdom.dlpay.exception.WebCheckException;
+import com.supwisdom.dlpay.framework.util.PageResult;
+import com.supwisdom.dlpay.framework.util.StringUtil;
+import com.supwisdom.dlpay.framework.util.WebConstant;
+import com.supwisdom.dlpay.restaurant.bean.DeviceSearchBean;
+import com.supwisdom.dlpay.restaurant.domain.TDevice;
+import com.supwisdom.dlpay.restaurant.service.DeviceService;
+import com.supwisdom.dlpay.restaurant.service.ShopSettlementService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.security.core.annotation.AuthenticationPrincipal;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@Controller
+@RequestMapping("/devicecheck")
+public class DeviceCheckController {
+
+ @Autowired
+ private DeviceService deviceService;
+ @Autowired
+ private ShopSettlementService shopSettlementService;
+
+ @RequestMapping("/index")
+ public String indexView(ModelMap model) {
+
+ return "restaurant/devicecheck/index";
+ }
+
+ @RequestMapping("/list")
+ @PreAuthorize("hasPermission('/devicecheck/index','')")
+ @ResponseBody
+ public PageResult<TDevice> getDataList(@RequestParam("page") Integer pageNo,
+ @RequestParam("limit") Integer pageSize,
+ @RequestParam(value = "status", required = false) String status) {
+ try {
+ if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT;
+ if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT;
+ DeviceSearchBean searchBean = new DeviceSearchBean();
+ searchBean.setPageNo(pageNo);
+ searchBean.setCheckstatus(status);
+ searchBean.setPageSize(pageSize);
+ return deviceService.getDeviceByParam(searchBean);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return new PageResult<>(99, "系统查询错误");
+ }
+ }
+
+
+ @PostMapping("/docheckdevice")
+ @PreAuthorize("hasPermission('/devicecheck/docheckdevice','')")
+ @ResponseBody
+ public JsonResult doCheckDevice(@RequestParam("status") String status,
+ @RequestParam("datalist[]") List<Integer> deviceIds,
+ @AuthenticationPrincipal UserDetails operUser ) {
+ if (StringUtil.isEmpty(status)) {
+ return JsonResult.error("参数传递失败");
+ }
+ if(deviceIds.size()<0){
+ return JsonResult.error("设备数量不能小余0");
+ }
+ try {
+ if(deviceService.doCheckdevice(status,deviceIds,operUser)){
+ return JsonResult.ok("审核成功");
+ }else{
+ return JsonResult.error("审核失败");
+ }
+
+ }catch (WebCheckException ex){
+ return JsonResult.error(ex.getMessage());
+ }
+
+ }
+
+
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceController.java b/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceController.java
index 0bcf9dc..6bfbef1 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceController.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceController.java
@@ -3,6 +3,7 @@
import com.supwisdom.dlpay.api.bean.JsonResult;
import com.supwisdom.dlpay.framework.domain.TShopSettlement;
+import com.supwisdom.dlpay.framework.util.DateUtil;
import com.supwisdom.dlpay.restaurant.bean.DeviceSearchBean;
import com.supwisdom.dlpay.restaurant.domain.TDevice;
import com.supwisdom.dlpay.restaurant.service.DeviceService;
@@ -71,6 +72,7 @@
@ResponseBody
public JsonResult add(@RequestBody TDevice device) {
if (device != null) {
+
return deviceService.saveDevice(device);
} else {
return JsonResult.error("添加失败");
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceDiscountRuleController.java b/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceDiscountRuleController.java
index ac610bf..7003cb4 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceDiscountRuleController.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceDiscountRuleController.java
@@ -28,381 +28,380 @@
@Controller
public class DeviceDiscountRuleController {
- @Autowired
- private DeviceDiscountRuleService deviceDiscountRuleService;
- @Autowired
- private DeviceParamService deviceParamService;
+ @Autowired
+ private DeviceDiscountRuleService deviceDiscountRuleService;
+ @Autowired
+ private DeviceParamService deviceParamService;
- @GetMapping("/discountrule/index")
- public String DiscountRuleView() {
- return "restaurant/discountrule/rule";
- }
-
- @GetMapping("/discountrule/rulelist")
- @PreAuthorize("hasPermission('/discountrule/index','')")
- @ResponseBody
- public PageResult<DiscountRuleShowBean> searchDiscountRules(@RequestParam("page") Integer pageNo,
- @RequestParam("limit") Integer pageSize,
- @RequestParam(value = "rulename", required = false) String rulename,
- @RequestParam(value = "ruletype", required = false) String ruletype) {
- try {
- if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT;
- if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT;
- return deviceDiscountRuleService.getDiscountRuleInfos(rulename, ruletype, pageNo, pageSize);
- } catch (Exception e) {
- e.printStackTrace();
- return new PageResult<>(99, "系统查询错误");
- }
- }
-
- @PostMapping("/discountrule/deleterule")
- @PreAuthorize("hasPermission('/discountrule/deleterule','')")
- @ResponseBody
- public JsonResult deleteDiscountRule(@RequestParam("ruleid") Integer ruleid) {
- try {
- if (null == ruleid) {
- return JsonResult.error("参数传递错误");
- }
- if (deviceDiscountRuleService.deleteDiscountRule(ruleid)) {
- return JsonResult.ok("删除成功!");
- } else {
- return JsonResult.error("删除失败!");
- }
- }catch (WebCheckException ex){
- return JsonResult.error(ex.getMessage());
- }catch (Exception e) {
- e.printStackTrace();
- return JsonResult.error("系统处理异常").put("exception", e);
- }
- }
-
- @PostMapping("/discountrule/closerule")
- @PreAuthorize("hasPermission('/discountrule/closerule','')")
- @ResponseBody
- public JsonResult closeDiscountRule(@RequestParam("ruleid") Integer ruleid) {
- try {
- if (null == ruleid) {
- return JsonResult.error("参数传递错误");
- }
- if (deviceDiscountRuleService.closeDiscountRule(ruleid)) {
- return JsonResult.ok("关闭成功!");
- } else {
- return JsonResult.error("关闭失败!");
- }
- } catch (WebCheckException ex) {
- return JsonResult.error(ex.getMessage());
- } catch (Exception e) {
- e.printStackTrace();
- return JsonResult.error("系统处理异常").put("exception", e);
- }
- }
-
-
-
- @GetMapping("/discountrule/load4addrule")
- @PreAuthorize("hasPermission('/discountrule/load4addrule','')")
- public String load4addDiscountRule() {
- return "restaurant/discountrule/ruleform";
- }
-
- @GetMapping("/discountrule/checkrulename")
- @PreAuthorize("hasPermission('/discountrule/load4addrule','')")
- @ResponseBody
- public JsonResult checkRulename(@RequestParam("rulename") String rulename,
- @RequestParam(value = "ruleid", required = false) Integer ruleid) {
- try {
- if (StringUtil.isEmpty(rulename)) {
- return JsonResult.error("餐补规则名称不能为空");
- }
- if (deviceDiscountRuleService.checkDiscountRulenameExist(rulename.trim(), ruleid)) {
- return JsonResult.error("餐补规则名称已存在");
- } else {
- return JsonResult.ok("success");
- }
- } catch (Exception e) {
- e.printStackTrace();
- return JsonResult.error("系统处理异常").put("exception", e);
- }
- }
-
- @PostMapping("/discountrule/addrule")
- @PreAuthorize("hasPermission('/discountrule/addrule','')")
- @ResponseBody
- public JsonResult editDiscountRule(@RequestParam("rulename") String rulename,
- @RequestParam("ruletype") String ruletype,
- @RequestParam("starttime") String starttime,
- @RequestParam("endtime") String endtime,
- @RequestParam("amount") String amount,
- @RequestParam("limitcnt") Integer limitcnt,
- @RequestParam(value = "file", required = false) MultipartFile file,
- @AuthenticationPrincipal UserDetails operUser) {
- try {
- if (StringUtil.isEmpty(rulename)
- || (!RestaurantConstant.RULETYPE_QUOTA.equals(ruletype) && !RestaurantConstant.RULETYPE_REDUCTION.equals(ruletype)&& !RestaurantConstant.RULETYPE_DISCOUNT.equals(ruletype))
- || !DateUtil.checkDatetimeValid(starttime, "HH:mm")
- || !DateUtil.checkDatetimeValid(endtime, "HH:mm")
- || !NumberUtil.isAmount(amount) || null == limitcnt) {
- return JsonResult.error("参数传递错误");
- } else if (DateUtil.compareDatetime(endtime, starttime, "HH:mm") <= 0) {
- return JsonResult.error("时间范围错误,结束时间必须必起始时间大");
- } else if (Double.valueOf(amount) < 0) {
- return JsonResult.error("金额不能为负");
- } else if (limitcnt < 1) {
- return JsonResult.error("使用次数必须大于零");
- } else if(null == file){
- return JsonResult.error("请选择餐补名单");
- }
-
- TOperator oper = (TOperator) operUser;
- if (null == oper || StringUtil.isEmpty(oper.getOperid())) {
- return JsonResult.error("登录过期,请重新登录");
- }
-
- if (deviceDiscountRuleService.saveNewDiscountRule(rulename.trim(), ruletype, DateUtil.unParseToDateFormat(starttime), DateUtil.unParseToDateFormat(endtime), Double.parseDouble(amount), limitcnt, file, oper)) {
- return JsonResult.ok("新增成功");
- } else {
- return JsonResult.error("新增失败");
- }
- } catch (WebCheckException ex) {
- return JsonResult.ok(599, ex.getMessage());
- } catch (Exception e) {
- e.printStackTrace();
- return JsonResult.error("系统处理异常").put("exception", e);
- }
- }
-
-
- @GetMapping("/discountrule/downloadexcel")
- @PreAuthorize("hasPermission('/discountrule/load4addrule','')")
- @ResponseBody
- public void downloadDiscountRuleExcel(HttpServletRequest request, HttpServletResponse response) {
- try {
- String[] title = {"市民卡号", "姓名"}; //表头
- String[][] infos = {{"19045632", "张三"}}; // 示例内容
- ExportExcel.queryexcel("餐补名单模板", title, infos, request, response);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- @GetMapping("/discountrule/load4detail")
- public String load4DiscountRuleDetails(@RequestParam("ruleid") Integer ruleid, Model model) {
- model.addAttribute("detailRuleid", ruleid);
- return "restaurant/discountrule/ruledetail";
- }
-
- @GetMapping("/discountrule/load4detaillist")
- @PreAuthorize("hasPermission('/discountrule/load4detail','')")
- @ResponseBody
- public PageResult<TDiscountDetail> searchDiscountRules(@RequestParam("page") Integer pageNo,
- @RequestParam("limit") Integer pageSize,
- @RequestParam("ruleid") Integer ruleid,
- @RequestParam(value = "searchkey", required = false) String searchkey) {
- try {
- if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT;
- if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT;
- return deviceDiscountRuleService.getDiscountRuleDetails(searchkey, ruleid, pageNo, pageSize);
- } catch (Exception e) {
- e.printStackTrace();
- return new PageResult<>(99, "系统查询错误");
- }
- }
-
-
- /**
- * ====================================================
- * 餐补规则审核
- * ====================================================
- */
- @GetMapping("/discountrule/check")
- public String checkDiscountRulesView() {
- return "restaurant/discountrule/rulecheck";
- }
-
- @GetMapping("/discountrule/checklist")
- @PreAuthorize("hasPermission('/discountrule/check','')")
- @ResponseBody
- public PageResult<DiscountRuleShowBean> searchCheckDiscountRules(@RequestParam("page") Integer pageNo,
- @RequestParam("limit") Integer pageSize,
- @RequestParam(value = "status", required = false) String status) {
- try {
- if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT;
- if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT;
- return deviceDiscountRuleService.getCheckDiscountRuleInfos(status, pageNo, pageSize);
- } catch (Exception e) {
- e.printStackTrace();
- return new PageResult<>(99, "系统查询错误");
- }
- }
-
- @GetMapping("/discountrule/load4checkdetail")
- @PreAuthorize("hasPermission('/discountrule/load4checkdetail','')")
- public String load4DiscountRuleCheckDetails(@RequestParam("ruleid") Integer ruleid, Model model) {
- model.addAttribute("checkDetailRuleid", ruleid);
- return "restaurant/discountrule/checkdetail";
- }
-
- @GetMapping("/discountrule/load4checkdetaillist")
- @PreAuthorize("hasPermission('/discountrule/load4checkdetail','')")
- @ResponseBody
- public PageResult<TDiscountDetail> searchDiscountRulesCheckDetails(@RequestParam("page") Integer pageNo,
- @RequestParam("limit") Integer pageSize,
- @RequestParam("ruleid") Integer ruleid,
- @RequestParam(value = "searchkey", required = false) String searchkey) {
- try {
- if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT;
- if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT;
- return deviceDiscountRuleService.getDiscountRuleDetails(searchkey, ruleid, pageNo, pageSize);
- } catch (Exception e) {
- e.printStackTrace();
- return new PageResult<>(99, "系统查询错误");
- }
- }
-
- @PostMapping("/discountrule/checkruledetail")
- @PreAuthorize("hasPermission('/discountrule/checkruledetail','')")
- @ResponseBody
- public JsonResult editDiscountRule(@RequestParam("ruleid") Integer ruleid,
- @RequestParam("checktype") String checktype,
- @RequestParam("reason") String reason,
- @AuthenticationPrincipal UserDetails operUser) {
- try {
- if (null == ruleid || (!"pass".equals(checktype) && !"reject".equals(checktype))) {
- return JsonResult.error("参数传递错误");
- } else if ("reject".equals(checktype) && StringUtil.isEmpty(reason)) {
- return JsonResult.error("请填写驳回原因");
- }
-
- TOperator oper = (TOperator) operUser;
- if (null == oper || StringUtil.isEmpty(oper.getOperid())) {
- return JsonResult.error("登录过期,请重新登录");
- }
-
- if (deviceDiscountRuleService.doCheckDiscountRule(ruleid, "pass".equals(checktype), reason, oper)) {
- return JsonResult.ok("pass".equals(checktype) ? "审核通过" : "驳回成功");
- } else {
- return JsonResult.error("操作失败");
- }
-
- } catch (WebCheckException ex) {
- return JsonResult.error(ex.getMessage());
- } catch (Exception e) {
- e.printStackTrace();
- return JsonResult.error("系统处理异常").put("exception", e);
+ @GetMapping("/discountrule/index")
+ public String DiscountRuleView() {
+ return "restaurant/discountrule/rule";
}
- }
-
- /**
- * ====================================================
- * 餐补规则绑定设备
- * ====================================================
- */
- @GetMapping("/discountrule/devbind")
- public String bindDiscountRuleView() {
- return "restaurant/discountrule/ruledevbind";
- }
-
- @GetMapping("/discountrule/devbindlist")
- @PreAuthorize("hasPermission('/discountrule/devbind','')")
- @ResponseBody
- public PageResult<DiscountRuleBindShowBean> searchDiscountDevbindInfo(@RequestParam("page") Integer pageNo,
- @RequestParam("limit") Integer pageSize,
- @RequestParam(value = "searchkey", required = false) String searchkey) {
- try {
- if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT;
- if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT;
- return deviceDiscountRuleService.getDiscountRuleDevBindInfo(searchkey, pageNo, pageSize);
- } catch (Exception e) {
- e.printStackTrace();
- return new PageResult<>(99, "系统查询错误");
+ @GetMapping("/discountrule/rulelist")
+ @PreAuthorize("hasPermission('/discountrule/index','')")
+ @ResponseBody
+ public PageResult<DiscountRuleShowBean> searchDiscountRules(@RequestParam("page") Integer pageNo,
+ @RequestParam("limit") Integer pageSize,
+ @RequestParam(value = "rulename", required = false) String rulename,
+ @RequestParam(value = "ruletype", required = false) String ruletype) {
+ try {
+ if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT;
+ if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT;
+ return deviceDiscountRuleService.getDiscountRuleInfos(rulename, ruletype, pageNo, pageSize);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return new PageResult<>(99, "系统查询错误");
+ }
}
- }
- @PostMapping("/discountrule/deletedevbind")
- @PreAuthorize("hasPermission('/discountrule/deletedevbind','')")
- @ResponseBody
- public JsonResult deleteDiscountDevbind(@RequestParam("id") String id) {
- try {
- TDiscountDevbind bind = deviceDiscountRuleService.getDiscountDevbindById(id);
- if (null == bind) {
- return JsonResult.error("绑定关系不存在!");
- }
-
- if (deviceDiscountRuleService.deleteDiscountDevbind(bind)) {
- return JsonResult.ok("删除成功");
- } else {
- return JsonResult.error("删除失败");
- }
- } catch (Exception e) {
- e.printStackTrace();
- return JsonResult.error("系统处理异常").put("exception", e);
+ @PostMapping("/discountrule/deleterule")
+ @PreAuthorize("hasPermission('/discountrule/deleterule','')")
+ @ResponseBody
+ public JsonResult deleteDiscountRule(@RequestParam("ruleid") Integer ruleid) {
+ try {
+ if (null == ruleid) {
+ return JsonResult.error("参数传递错误");
+ }
+ if (deviceDiscountRuleService.deleteDiscountRule(ruleid)) {
+ return JsonResult.ok("删除成功!");
+ } else {
+ return JsonResult.error("删除失败!");
+ }
+ } catch (WebCheckException ex) {
+ return JsonResult.error(ex.getMessage());
+ } catch (Exception e) {
+ e.printStackTrace();
+ return JsonResult.error("系统处理异常").put("exception", e);
+ }
}
- }
- @GetMapping("/discountrule/load4binddev")
- @PreAuthorize("hasPermission('/discountrule/load4binddev','')")
- public String load4RuleBindDevice(Model model) {
- model.addAttribute("rulelist", deviceDiscountRuleService.getNormalDiscountRules());
- return "restaurant/discountrule/rulebind";
- }
-
- @GetMapping("/discountrule/devsearch")
- @PreAuthorize("hasPermission('/discountrule/load4binddev','')")
- @ResponseBody
- public PageResult<DevparaBinddevShowBean> searchRuleBindDevices(@RequestParam(value = "devgroupid", required = false) Integer devgroupid,
- @RequestParam(value = "searchkey", required = false) String searchkey,
- @RequestParam(value = "ruleid", required = false) Integer ruleid){
- try {
- if (null == ruleid && null == devgroupid && StringUtil.isEmpty(searchkey)) {
- return new PageResult<>(99, "请填写条件查询设备");
- }else if(null==ruleid){
- return new PageResult<>(99, "请选择餐补规则");
- }
-
- return deviceDiscountRuleService.searchRuleBindDevices(devgroupid, searchkey, ruleid);
- } catch (Exception e) {
- e.printStackTrace();
- return new PageResult<>(99, "系统查询错误");
+ @PostMapping("/discountrule/closerule")
+ @PreAuthorize("hasPermission('/discountrule/closerule','')")
+ @ResponseBody
+ public JsonResult closeDiscountRule(@RequestParam("ruleid") Integer ruleid) {
+ try {
+ if (null == ruleid) {
+ return JsonResult.error("参数传递错误");
+ }
+ if (deviceDiscountRuleService.closeDiscountRule(ruleid)) {
+ return JsonResult.ok("关闭成功!");
+ } else {
+ return JsonResult.error("关闭失败!");
+ }
+ } catch (WebCheckException ex) {
+ return JsonResult.error(ex.getMessage());
+ } catch (Exception e) {
+ e.printStackTrace();
+ return JsonResult.error("系统处理异常").put("exception", e);
+ }
}
- }
- @GetMapping("/discountrule/devgrouptree")
- @PreAuthorize("hasPermission('/discountrule/load4binddev','')")
- @ResponseBody
- public List<TreeSelectNode> searchDevgroupTree() {
- List<TreeSelectNode> tree = deviceParamService.getDeviceGroupSelectTree();
- return tree;
- }
- @PostMapping("/discountrule/dorulebinddev")
- @PreAuthorize("hasPermission('/discountrule/dorulebinddev','')")
- @ResponseBody
- public JsonResult doBindRuleDevices(@RequestParam("ruleid") Integer ruleid,
- @RequestParam("deviceid[]") List<Integer> deviceIds,
- @AuthenticationPrincipal UserDetails operUser) {
- try {
- if (null == ruleid || StringUtil.isEmpty(deviceIds)) {
- return JsonResult.error("参数传递错误");
- }
-
- TOperator oper = (TOperator) operUser;
- if (null == oper || StringUtil.isEmpty(oper.getOperid())) {
- return JsonResult.error("登录过期,请重新登录");
- }
-
- if (deviceDiscountRuleService.saveRuleBindDevices(ruleid, deviceIds, oper)) {
- return JsonResult.ok("绑定成功");
- } else {
- return JsonResult.error("绑定失败");
- }
- } catch (WebCheckException ex) {
- return JsonResult.error(ex.getMessage());
- } catch (Exception e) {
- e.printStackTrace();
- return JsonResult.error("系统处理异常").put("exception", e);
+ @GetMapping("/discountrule/load4addrule")
+ @PreAuthorize("hasPermission('/discountrule/load4addrule','')")
+ public String load4addDiscountRule() {
+ return "restaurant/discountrule/ruleform";
}
- }
+
+ @GetMapping("/discountrule/checkrulename")
+ @PreAuthorize("hasPermission('/discountrule/load4addrule','')")
+ @ResponseBody
+ public JsonResult checkRulename(@RequestParam("rulename") String rulename,
+ @RequestParam(value = "ruleid", required = false) Integer ruleid) {
+ try {
+ if (StringUtil.isEmpty(rulename)) {
+ return JsonResult.error("餐补规则名称不能为空");
+ }
+ if (deviceDiscountRuleService.checkDiscountRulenameExist(rulename.trim(), ruleid)) {
+ return JsonResult.error("餐补规则名称已存在");
+ } else {
+ return JsonResult.ok("success");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ return JsonResult.error("系统处理异常").put("exception", e);
+ }
+ }
+
+ @PostMapping("/discountrule/addrule")
+ @PreAuthorize("hasPermission('/discountrule/addrule','')")
+ @ResponseBody
+ public JsonResult editDiscountRule(@RequestParam("rulename") String rulename,
+ @RequestParam("ruletype") String ruletype,
+ @RequestParam("starttime") String starttime,
+ @RequestParam("endtime") String endtime,
+ @RequestParam("amount") String amount,
+ @RequestParam("limitcnt") Integer limitcnt,
+ @RequestParam(value = "file", required = false) MultipartFile file,
+ @AuthenticationPrincipal UserDetails operUser) {
+ try {
+ if (StringUtil.isEmpty(rulename)
+ || (!RestaurantConstant.RULETYPE_QUOTA.equals(ruletype) && !RestaurantConstant.RULETYPE_REDUCTION.equals(ruletype) && !RestaurantConstant.RULETYPE_DISCOUNT.equals(ruletype))
+ || !DateUtil.checkDatetimeValid(starttime, "HH:mm")
+ || !DateUtil.checkDatetimeValid(endtime, "HH:mm")
+ || !NumberUtil.isAmount(amount) || null == limitcnt) {
+ return JsonResult.error("参数传递错误");
+ } else if (DateUtil.compareDatetime(endtime, starttime, "HH:mm") <= 0) {
+ return JsonResult.error("时间范围错误,结束时间必须必起始时间大");
+ } else if (Double.valueOf(amount) < 0) {
+ return JsonResult.error("金额不能为负");
+ } else if (limitcnt < 1) {
+ return JsonResult.error("使用次数必须大于零");
+ } else if (null == file) {
+ return JsonResult.error("请选择餐补名单");
+ }
+
+ TOperator oper = (TOperator) operUser;
+ if (null == oper || StringUtil.isEmpty(oper.getOperid())) {
+ return JsonResult.error("登录过期,请重新登录");
+ }
+
+ if (deviceDiscountRuleService.saveNewDiscountRule(rulename.trim(), ruletype, DateUtil.unParseToDateFormat(starttime), DateUtil.unParseToDateFormat(endtime), Double.parseDouble(amount), limitcnt, file, oper)) {
+ return JsonResult.ok("新增成功");
+ } else {
+ return JsonResult.error("新增失败");
+ }
+ } catch (WebCheckException ex) {
+ return JsonResult.ok(599, ex.getMessage());
+ } catch (Exception e) {
+ e.printStackTrace();
+ return JsonResult.error("系统处理异常").put("exception", e);
+ }
+ }
+
+
+ @GetMapping("/discountrule/downloadexcel")
+ @PreAuthorize("hasPermission('/discountrule/load4addrule','')")
+ @ResponseBody
+ public void downloadDiscountRuleExcel(HttpServletRequest request, HttpServletResponse response) {
+ try {
+ String[] title = {"市民卡号", "姓名"}; //表头
+ String[][] infos = {{"19045632", "张三"}}; // 示例内容
+ ExportExcel.queryexcel("导入名单模板", title, infos, request, response);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ @GetMapping("/discountrule/load4detail")
+ public String load4DiscountRuleDetails(@RequestParam("ruleid") Integer ruleid, Model model) {
+ model.addAttribute("detailRuleid", ruleid);
+ return "restaurant/discountrule/ruledetail";
+ }
+
+ @GetMapping("/discountrule/load4detaillist")
+ @PreAuthorize("hasPermission('/discountrule/load4detail','')")
+ @ResponseBody
+ public PageResult<TDiscountDetail> searchDiscountRules(@RequestParam("page") Integer pageNo,
+ @RequestParam("limit") Integer pageSize,
+ @RequestParam("ruleid") Integer ruleid,
+ @RequestParam(value = "searchkey", required = false) String searchkey) {
+ try {
+ if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT;
+ if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT;
+ return deviceDiscountRuleService.getDiscountRuleDetails(searchkey, ruleid, pageNo, pageSize);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return new PageResult<>(99, "系统查询错误");
+ }
+ }
+
+
+ /**
+ * ====================================================
+ * 餐补规则审核
+ * ====================================================
+ */
+ @GetMapping("/discountrule/check")
+ public String checkDiscountRulesView() {
+ return "restaurant/discountrule/rulecheck";
+ }
+
+ @GetMapping("/discountrule/checklist")
+ @PreAuthorize("hasPermission('/discountrule/check','')")
+ @ResponseBody
+ public PageResult<DiscountRuleShowBean> searchCheckDiscountRules(@RequestParam("page") Integer pageNo,
+ @RequestParam("limit") Integer pageSize,
+ @RequestParam(value = "status", required = false) String status) {
+ try {
+ if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT;
+ if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT;
+ return deviceDiscountRuleService.getCheckDiscountRuleInfos(status, pageNo, pageSize);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return new PageResult<>(99, "系统查询错误");
+ }
+ }
+
+ @GetMapping("/discountrule/load4checkdetail")
+ @PreAuthorize("hasPermission('/discountrule/load4checkdetail','')")
+ public String load4DiscountRuleCheckDetails(@RequestParam("ruleid") Integer ruleid, Model model) {
+ model.addAttribute("checkDetailRuleid", ruleid);
+ return "restaurant/discountrule/checkdetail";
+ }
+
+ @GetMapping("/discountrule/load4checkdetaillist")
+ @PreAuthorize("hasPermission('/discountrule/load4checkdetail','')")
+ @ResponseBody
+ public PageResult<TDiscountDetail> searchDiscountRulesCheckDetails(@RequestParam("page") Integer pageNo,
+ @RequestParam("limit") Integer pageSize,
+ @RequestParam("ruleid") Integer ruleid,
+ @RequestParam(value = "searchkey", required = false) String searchkey) {
+ try {
+ if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT;
+ if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT;
+ return deviceDiscountRuleService.getDiscountRuleDetails(searchkey, ruleid, pageNo, pageSize);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return new PageResult<>(99, "系统查询错误");
+ }
+ }
+
+ @PostMapping("/discountrule/checkruledetail")
+ @PreAuthorize("hasPermission('/discountrule/checkruledetail','')")
+ @ResponseBody
+ public JsonResult editDiscountRule(@RequestParam("ruleid") Integer ruleid,
+ @RequestParam("checktype") String checktype,
+ @RequestParam("reason") String reason,
+ @AuthenticationPrincipal UserDetails operUser) {
+ try {
+ if (null == ruleid || (!"pass".equals(checktype) && !"reject".equals(checktype))) {
+ return JsonResult.error("参数传递错误");
+ } else if ("reject".equals(checktype) && StringUtil.isEmpty(reason)) {
+ return JsonResult.error("请填写驳回原因");
+ }
+
+ TOperator oper = (TOperator) operUser;
+ if (null == oper || StringUtil.isEmpty(oper.getOperid())) {
+ return JsonResult.error("登录过期,请重新登录");
+ }
+
+ if (deviceDiscountRuleService.doCheckDiscountRule(ruleid, "pass".equals(checktype), reason, oper)) {
+ return JsonResult.ok("pass".equals(checktype) ? "审核通过" : "驳回成功");
+ } else {
+ return JsonResult.error("操作失败");
+ }
+
+ } catch (WebCheckException ex) {
+ return JsonResult.error(ex.getMessage());
+ } catch (Exception e) {
+ e.printStackTrace();
+ return JsonResult.error("系统处理异常").put("exception", e);
+ }
+
+ }
+
+ /**
+ * ====================================================
+ * 餐补规则绑定设备
+ * ====================================================
+ */
+ @GetMapping("/discountrule/devbind")
+ public String bindDiscountRuleView() {
+ return "restaurant/discountrule/ruledevbind";
+ }
+
+ @GetMapping("/discountrule/devbindlist")
+ @PreAuthorize("hasPermission('/discountrule/devbind','')")
+ @ResponseBody
+ public PageResult<DiscountRuleBindShowBean> searchDiscountDevbindInfo(@RequestParam("page") Integer pageNo,
+ @RequestParam("limit") Integer pageSize,
+ @RequestParam(value = "searchkey", required = false) String searchkey) {
+ try {
+ if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT;
+ if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT;
+ return deviceDiscountRuleService.getDiscountRuleDevBindInfo(searchkey, pageNo, pageSize);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return new PageResult<>(99, "系统查询错误");
+ }
+ }
+
+ @PostMapping("/discountrule/deletedevbind")
+ @PreAuthorize("hasPermission('/discountrule/deletedevbind','')")
+ @ResponseBody
+ public JsonResult deleteDiscountDevbind(@RequestParam("id") String id) {
+ try {
+ TDiscountDevbind bind = deviceDiscountRuleService.getDiscountDevbindById(id);
+ if (null == bind) {
+ return JsonResult.error("绑定关系不存在!");
+ }
+
+ if (deviceDiscountRuleService.deleteDiscountDevbind(bind)) {
+ return JsonResult.ok("删除成功");
+ } else {
+ return JsonResult.error("删除失败");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ return JsonResult.error("系统处理异常").put("exception", e);
+ }
+ }
+
+ @GetMapping("/discountrule/load4binddev")
+ @PreAuthorize("hasPermission('/discountrule/load4binddev','')")
+ public String load4RuleBindDevice(Model model) {
+ model.addAttribute("rulelist", deviceDiscountRuleService.getNormalDiscountRules());
+ return "restaurant/discountrule/rulebind";
+ }
+
+ @GetMapping("/discountrule/devsearch")
+ @PreAuthorize("hasPermission('/discountrule/load4binddev','')")
+ @ResponseBody
+ public PageResult<DevparaBinddevShowBean> searchRuleBindDevices(@RequestParam(value = "devgroupid", required = false) Integer devgroupid,
+ @RequestParam(value = "searchkey", required = false) String searchkey,
+ @RequestParam(value = "ruleid", required = false) Integer ruleid) {
+ try {
+ if (null == ruleid && null == devgroupid && StringUtil.isEmpty(searchkey)) {
+ return new PageResult<>(99, "请填写条件查询设备");
+ } else if (null == ruleid) {
+ return new PageResult<>(99, "请选择餐补规则");
+ }
+
+ return deviceDiscountRuleService.searchRuleBindDevices(devgroupid, searchkey, ruleid);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return new PageResult<>(99, "系统查询错误");
+ }
+ }
+
+ @GetMapping("/discountrule/devgrouptree")
+ @PreAuthorize("hasPermission('/discountrule/load4binddev','')")
+ @ResponseBody
+ public List<TreeSelectNode> searchDevgroupTree() {
+ List<TreeSelectNode> tree = deviceParamService.getDeviceGroupSelectTree();
+ return tree;
+ }
+
+ @PostMapping("/discountrule/dorulebinddev")
+ @PreAuthorize("hasPermission('/discountrule/dorulebinddev','')")
+ @ResponseBody
+ public JsonResult doBindRuleDevices(@RequestParam("ruleid") Integer ruleid,
+ @RequestParam("deviceid[]") List<Integer> deviceIds,
+ @AuthenticationPrincipal UserDetails operUser) {
+ try {
+ if (null == ruleid || StringUtil.isEmpty(deviceIds)) {
+ return JsonResult.error("参数传递错误");
+ }
+
+ TOperator oper = (TOperator) operUser;
+ if (null == oper || StringUtil.isEmpty(oper.getOperid())) {
+ return JsonResult.error("登录过期,请重新登录");
+ }
+
+ if (deviceDiscountRuleService.saveRuleBindDevices(ruleid, deviceIds, oper)) {
+ return JsonResult.ok("绑定成功");
+ } else {
+ return JsonResult.error("绑定失败");
+ }
+ } catch (WebCheckException ex) {
+ return JsonResult.error(ex.getMessage());
+ } catch (Exception e) {
+ e.printStackTrace();
+ return JsonResult.error("系统处理异常").put("exception", e);
+ }
+ }
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceManageController.java b/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceManageController.java
index 1c39779..426c60e 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceManageController.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceManageController.java
@@ -10,6 +10,7 @@
import com.supwisdom.dlpay.restaurant.service.DeviceService;
import com.supwisdom.dlpay.framework.util.ExportExcel;import com.supwisdom.dlpay.framework.util.PageResult;
import com.supwisdom.dlpay.framework.util.WebConstant;
+import com.supwisdom.dlpay.restaurant.util.RestaurantConstant;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Controller;
@@ -67,6 +68,7 @@
searchBean.setDevicename(devicename);
searchBean.setFactoryid(factoryid);
searchBean.setPageSize(pageSize);
+ searchBean.setCheckstatus(RestaurantConstant.STATUS_CHECKSTATUS_NORMAL);
return deviceService.getDeviceByParam(searchBean);
} catch (Exception e) {
e.printStackTrace();
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/controller/WhitelistController.java b/src/main/java/com/supwisdom/dlpay/restaurant/controller/WhitelistController.java
new file mode 100644
index 0000000..7325df8
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/controller/WhitelistController.java
@@ -0,0 +1,358 @@
+package com.supwisdom.dlpay.restaurant.controller;
+
+import com.supwisdom.dlpay.api.bean.JsonResult;
+import com.supwisdom.dlpay.exception.WebCheckException;
+import com.supwisdom.dlpay.framework.domain.TOperator;
+import com.supwisdom.dlpay.framework.util.*;
+import com.supwisdom.dlpay.restaurant.bean.WhitelistBindShowBean;
+import com.supwisdom.dlpay.restaurant.bean.DevparaBinddevShowBean;
+import com.supwisdom.dlpay.restaurant.domain.TWhitelist;
+import com.supwisdom.dlpay.restaurant.domain.TWhitelistDetail;
+import com.supwisdom.dlpay.restaurant.domain.TWhitelistDevbind;
+import com.supwisdom.dlpay.restaurant.service.WhitelistService;
+import com.supwisdom.dlpay.restaurant.service.DeviceParamService;
+import com.supwisdom.dlpay.system.bean.TreeSelectNode;
+import com.supwisdom.dlpay.system.service.ParamService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.security.core.annotation.AuthenticationPrincipal;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+@Controller
+public class WhitelistController {
+ @Autowired
+ private WhitelistService whitelistService;
+ @Autowired
+ private DeviceParamService deviceParamService;
+
+
+ @GetMapping("/whitelist/index")
+ public String whitelistView() {
+ return "restaurant/whitelist/whitelist";
+ }
+
+ @GetMapping("/whitelist/list")
+ @PreAuthorize("hasPermission('/whitelist/index','')")
+ @ResponseBody
+ public PageResult<TWhitelist> searchwhitelists(@RequestParam("page") Integer pageNo,
+ @RequestParam("limit") Integer pageSize,
+ @RequestParam(value = "listname", required = false) String listname) {
+ try {
+ if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT;
+ if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT;
+ return whitelistService.getWhitelist(listname, pageNo, pageSize);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return new PageResult<>(99, "系统查询错误");
+ }
+ }
+
+ @PostMapping("/whitelist/deletelist")
+ @ResponseBody
+ public JsonResult deletewhitelist(@RequestParam("whitelistid") Integer whitelistid) {
+ try {
+ if (null == whitelistid) {
+ return JsonResult.error("参数传递错误");
+ }
+ if (whitelistService.deleteWhitelist(whitelistid)) {
+ return JsonResult.ok("删除成功!");
+ } else {
+ return JsonResult.error("删除失败!");
+ }
+ } catch (WebCheckException ex) {
+ return JsonResult.error(ex.getMessage());
+ } catch (Exception e) {
+ e.printStackTrace();
+ return JsonResult.error("系统处理异常").put("exception", e);
+ }
+ }
+
+ @GetMapping("/whitelist/load4addwhitelist")
+ public String load4addwhitelist() {
+ return "restaurant/whitelist/whitelistform";
+ }
+
+
+
+ @PostMapping("/whitelist/addwhitelist")
+ @PreAuthorize("hasPermission('/whitelist/addwhitelist','')")
+ @ResponseBody
+ public JsonResult editwhitelist(@RequestParam("listname") String listname,
+ @RequestParam(value = "file", required = false) MultipartFile file,
+ @AuthenticationPrincipal UserDetails operUser) {
+ try {
+ if (StringUtil.isEmpty(listname)){
+ return JsonResult.error("参数传递错误");
+ }
+ if (null == file) {
+ return JsonResult.error("请选择餐补名单");
+ }
+
+
+ TOperator oper = (TOperator) operUser;
+ if (null == oper || StringUtil.isEmpty(oper.getOperid())) {
+ return JsonResult.error("登录过期,请重新登录");
+ }
+
+ if (whitelistService.saveWhitelist(listname.trim(), file, oper)) {
+ return JsonResult.ok("新增成功");
+ } else {
+ return JsonResult.error("新增失败");
+ }
+ } catch (WebCheckException ex) {
+ return JsonResult.ok(599, ex.getMessage());
+ } catch (Exception e) {
+ e.printStackTrace();
+ return JsonResult.error("系统处理异常").put("exception", e);
+ }
+ }
+
+ @GetMapping("/whitelist/load4detail")
+ public String load4whitelistDetails(@RequestParam("whitelistid") Integer whitelistid, Model model) {
+ model.addAttribute("whitelistDetailid", whitelistid);
+ return "restaurant/whitelist/whitelistdetail";
+ }
+
+ @GetMapping("/whitelist/load4detaillist")
+ @ResponseBody
+ public PageResult<TWhitelistDetail> searchwhitelists(@RequestParam("page") Integer pageNo,
+ @RequestParam("limit") Integer pageSize,
+ @RequestParam("whitelistid") Integer whitelistid,
+ @RequestParam(value = "searchkey", required = false) String searchkey) {
+ try {
+ if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT;
+ if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT;
+ return whitelistService.getWhitelistDetails(searchkey, whitelistid, pageNo, pageSize);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return new PageResult<>(99, "系统查询错误");
+ }
+ }
+
+
+ @PostMapping("/whitelist/closelist")
+ @ResponseBody
+ public JsonResult closewhitelist(@RequestParam("whitelistid") Integer whitelistid) {
+ try {
+ if (null == whitelistid) {
+ return JsonResult.error("参数传递错误");
+ }
+ if (whitelistService.closeWhitelist(whitelistid)) {
+ return JsonResult.ok("关闭成功!");
+ } else {
+ return JsonResult.error("关闭失败!");
+ }
+ } catch (WebCheckException ex) {
+ return JsonResult.error(ex.getMessage());
+ } catch (Exception e) {
+ e.printStackTrace();
+ return JsonResult.error("系统处理异常").put("exception", e);
+ }
+ }
+
+
+
+
+ /**
+ * ====================================================
+ * 白名單审核
+ * ====================================================
+ */
+ @GetMapping("/whitelistcheck/index")
+ public String checkwhitelistView() {
+ return "restaurant/whitelist/whitelistcheck";
+ }
+
+ @GetMapping("/whitelistcheck/checklist")
+ @PreAuthorize("hasPermission('/whitelistcheck/checklist','')")
+ @ResponseBody
+ public PageResult<TWhitelist> searchCheckwhitelists(@RequestParam("page") Integer pageNo,
+ @RequestParam("limit") Integer pageSize,
+ @RequestParam(value = "status", required = false) String status) {
+ try {
+ if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT;
+ if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT;
+ return whitelistService.getCheckWhitelist(status, pageNo, pageSize);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return new PageResult<>(99, "系统查询错误");
+ }
+ }
+
+ @GetMapping("/whitelistcheck/load4checkdetail")
+ public String load4whitelistCheckDetails(@RequestParam("whitelistid") Integer whitelistid, Model model) {
+ model.addAttribute("checkDetailwhitelistid", whitelistid);
+ return "restaurant/whitelist/checkdetail";
+ }
+
+ @GetMapping("/whitelistcheck/load4checkdetaillist")
+ @PreAuthorize("hasPermission('/whitelistcheck/load4checkdetail','')")
+ @ResponseBody
+ public PageResult<TWhitelistDetail> searchwhitelistsCheckDetails(@RequestParam("page") Integer pageNo,
+ @RequestParam("limit") Integer pageSize,
+ @RequestParam("whitelistid") Integer whitelistid,
+ @RequestParam(value = "searchkey", required = false) String searchkey) {
+ try {
+ if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT;
+ if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT;
+ return whitelistService.getWhitelistDetails(searchkey, whitelistid, pageNo, pageSize);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return new PageResult<>(99, "系统查询错误");
+ }
+ }
+
+ @PostMapping("/whitelistcheck/checkdetail")
+ @ResponseBody
+ public JsonResult editwhitelist(@RequestParam("whitelistid") Integer whitelistid,
+ @RequestParam("checktype") String checktype,
+ @RequestParam("reason") String reason,
+ @AuthenticationPrincipal UserDetails operUser) {
+ try {
+ if (null == whitelistid || (!"pass".equals(checktype) && !"reject".equals(checktype))) {
+ return JsonResult.error("参数传递错误");
+ } else if ("reject".equals(checktype) && StringUtil.isEmpty(reason)) {
+ return JsonResult.error("请填写驳回原因");
+ }
+
+ TOperator oper = (TOperator) operUser;
+ if (null == oper || StringUtil.isEmpty(oper.getOperid())) {
+ return JsonResult.error("登录过期,请重新登录");
+ }
+
+ if (whitelistService.doCheckWhitelist(whitelistid, "pass".equals(checktype), reason, oper)) {
+ return JsonResult.ok("pass".equals(checktype) ? "审核通过" : "驳回成功");
+ } else {
+ return JsonResult.error("操作失败");
+ }
+
+ } catch (WebCheckException ex) {
+ return JsonResult.error(ex.getMessage());
+ } catch (Exception e) {
+ e.printStackTrace();
+ return JsonResult.error("系统处理异常").put("exception", e);
+ }
+
+ }
+
+
+ /**
+ * ====================================================
+ * 白名单绑定设备
+ * ====================================================
+ */
+ @GetMapping("/whitelistbind/devbind")
+ public String bindwhitelistbindView() {
+ return "restaurant/whitelist/devbind";
+ }
+
+ @GetMapping("/whitelistbind/devbindlist")
+ @PreAuthorize("hasPermission('/whitelistbind/devbind','')")
+ @ResponseBody
+ public PageResult<WhitelistBindShowBean> searchwhitelistDevbindInfo(@RequestParam("page") Integer pageNo,
+ @RequestParam("limit") Integer pageSize,
+ @RequestParam(value = "searchkey", required = false) String searchkey) {
+ try {
+ if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT;
+ if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT;
+ return whitelistService.getWhitelistDevBindInfo(searchkey, pageNo, pageSize);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return new PageResult<>(99, "系统查询错误");
+ }
+ }
+
+ @PostMapping("/whitelistbind/deletedevbind")
+ @ResponseBody
+ public JsonResult deletewhitelistDevbind(@RequestParam("id") String id) {
+ try {
+ TWhitelistDevbind bind = whitelistService.getWhitelistDevbindById(id);
+ if (null == bind) {
+ return JsonResult.error("绑定关系不存在!");
+ }
+
+ if (whitelistService.deleteWhitelistDevbind(bind)) {
+ return JsonResult.ok("删除成功");
+ } else {
+ return JsonResult.error("删除失败");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ return JsonResult.error("系统处理异常").put("exception", e);
+ }
+ }
+
+ @GetMapping("/whitelistbind/load4binddev")
+ public String load4RuleBindDevice(Model model) {
+ model.addAttribute("whitelists", whitelistService.getNormalWhitelists());
+ return "restaurant/whitelist/whitelistbind";
+ }
+
+ @GetMapping("/whitelistbind/devsearch")
+ @ResponseBody
+ public PageResult<DevparaBinddevShowBean> searchwhitelistBindDevices(@RequestParam(value = "devgroupid", required = false) Integer devgroupid,
+ @RequestParam(value = "searchkey", required = false) String searchkey,
+ @RequestParam(value = "whitelistid", required = false) Integer whitelistid) {
+ try {
+ if (null == whitelistid && null == devgroupid && StringUtil.isEmpty(searchkey)) {
+ return new PageResult<>(99, "请填写条件查询设备");
+ } else if (null == whitelistid) {
+ return new PageResult<>(99, "请选择白名单");
+ }
+
+ return whitelistService.searchWhitelistBindDevices(devgroupid, searchkey, whitelistid);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return new PageResult<>(99, "系统查询错误");
+ }
+ }
+
+ @GetMapping("/whitelistbind/devgrouptree")
+ @ResponseBody
+ public List<TreeSelectNode> searchDevgroupTree() {
+ List<TreeSelectNode> tree = deviceParamService.getDeviceGroupSelectTree();
+ return tree;
+ }
+
+ @PostMapping("/whitelistbind/dobinddev")
+ @PreAuthorize("hasPermission('/whitelistbind/dobinddev','')")
+ @ResponseBody
+ public JsonResult doBindRuleDevices(@RequestParam("whitelistid") Integer whitelistid,
+ @RequestParam("deviceid[]") List<Integer> deviceIds,
+ @AuthenticationPrincipal UserDetails operUser) {
+ try {
+ if (null == whitelistid || StringUtil.isEmpty(deviceIds)) {
+ return JsonResult.error("参数传递错误");
+ }
+
+ TOperator oper = (TOperator) operUser;
+ if (null == oper || StringUtil.isEmpty(oper.getOperid())) {
+ return JsonResult.error("登录过期,请重新登录");
+ }
+
+
+ if (whitelistService.saveWhitelistBindDevices(whitelistid, deviceIds, oper)) {
+ return JsonResult.ok("绑定成功");
+ } else {
+ return JsonResult.error("绑定失败");
+ }
+ } catch (WebCheckException ex) {
+ return JsonResult.error(ex.getMessage());
+ } catch (Exception e) {
+ e.printStackTrace();
+ return JsonResult.error("系统处理异常").put("exception", e);
+ }
+ }
+
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/dao/WhitelistDao.java b/src/main/java/com/supwisdom/dlpay/restaurant/dao/WhitelistDao.java
new file mode 100644
index 0000000..34b9c1e
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/dao/WhitelistDao.java
@@ -0,0 +1,25 @@
+package com.supwisdom.dlpay.restaurant.dao;
+
+
+import com.supwisdom.dlpay.restaurant.domain.TWhitelist;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface WhitelistDao extends JpaRepository<TWhitelist, Integer> {
+
+
+ Page<TWhitelist> findAllByListnameContaining(String name, Pageable pageable);
+
+ @Query("select count(t.whitelistid) from TWhitelist t where t.listname=?1 ")
+ long checkListnameExists(String listname);
+
+ Page<TWhitelist> findAllByStatus(String status, Pageable pageable);
+
+ List<TWhitelist> findAllByStatus(String status);
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/dao/WhitelistDetailDao.java b/src/main/java/com/supwisdom/dlpay/restaurant/dao/WhitelistDetailDao.java
new file mode 100644
index 0000000..a710163
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/dao/WhitelistDetailDao.java
@@ -0,0 +1,21 @@
+package com.supwisdom.dlpay.restaurant.dao;
+
+import com.supwisdom.dlpay.restaurant.domain.TWhitelistDetail;
+import com.supwisdom.dlpay.restaurant.domain.TDiscountDetail;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Modifying;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface WhitelistDetailDao extends JpaRepository<TWhitelistDetail, String>, JpaSpecificationExecutor<TDiscountDetail> {
+
+ @Modifying
+ @Query("delete from TWhitelistDetail where whitelistid=?1 ")
+ void deleteWhitelistDetailByWhitelistid(int Whitelistid);
+
+ @Modifying
+ @Query("update TWhitelistDetail t set t.status=?1 where t.whitelistid=?2 ")
+ void updateWhitelistDetailStatusByWhitelistid(String status, int Whitelistid);
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/dao/WhitelistDevbindDao.java b/src/main/java/com/supwisdom/dlpay/restaurant/dao/WhitelistDevbindDao.java
new file mode 100644
index 0000000..e695e5f
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/dao/WhitelistDevbindDao.java
@@ -0,0 +1,25 @@
+package com.supwisdom.dlpay.restaurant.dao;
+
+import com.supwisdom.dlpay.restaurant.domain.TWhitelistDevbind;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Modifying;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface WhitelistDevbindDao extends JpaRepository<TWhitelistDevbind, String> {
+
+ @Query("select count(t.id) from TWhitelistDevbind t where t.whitelistid=?1 ")
+ long getBindcntByWhitelistid(int whitelistid);
+
+
+ @Modifying
+ @Query("delete from TWhitelistDevbind where whitelistid=?1 ")
+ void deleteBindByWhitelistid(int whitelistid);
+
+ @Query("from TWhitelistDevbind where id=?1")
+ TWhitelistDevbind getWhitelistDevbindById(String id);
+
+ @Query("from TWhitelistDevbind where deviceid=?1")
+ TWhitelistDevbind findByDeviceid(Integer deviceid);
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TDevice.java b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TDevice.java
index 63d2ef4..ae2242e 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TDevice.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TDevice.java
@@ -20,7 +20,8 @@
private Integer runstatus;
private String lastlogintime;
private String lastbeattime;
-
+ private String checkstatus;
+ private String checkername;
@Id
@@ -158,6 +159,27 @@
}
public void setLastbeattime(String lastbeattime) {
+
this.lastbeattime = lastbeattime;
}
+
+ @Column(name = "checkstatus", length = 14)
+ public String getCheckstatus() {
+ return checkstatus;
+ }
+
+ public void setCheckstatus(String checkstatus) {
+
+ this.checkstatus = checkstatus;
+ }
+
+
+ @Column(name = "checkername", length = 20)
+ public String getCheckername() {
+ return checkername;
+ }
+
+ public void setCheckername(String checkername) {
+ this.checkername = checkername;
+ }
}
\ No newline at end of file
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TWhitelist.java b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TWhitelist.java
new file mode 100644
index 0000000..01797fb
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TWhitelist.java
@@ -0,0 +1,102 @@
+package com.supwisdom.dlpay.restaurant.domain;
+
+import javax.persistence.*;
+
+@Entity
+@Table(name = "TB_whiteLIST")
+public class TWhitelist {
+ @Id
+ @SequenceGenerator(name = "whitelist_id", sequenceName = "SEQ_whiteLISTID", allocationSize = 1)
+ @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "whitelist_id")
+ @Column(name="whitelistid", nullable = false, precision = 9)
+ private Integer whitelistid;
+
+ @Column(name = "listname", nullable = false, length = 200)
+ private String listname;
+
+
+ @Column(name = "STATUS", nullable = false, length = 10)
+ private String status;
+
+
+ @Column(name = "CREATE_OPERID", length = 32)
+ private String createOperid;
+
+ @Column(name = "CHECK_OPERID", length = 32)
+ private String checkOperid;
+
+ @Column(name = "CREATETIME", length = 14)
+ private String createtime;
+
+ @Column(name = "LASTSAVED", length = 14)
+ private String lastsaved;
+
+ @Column(name = "REMARK", length = 600)
+ private String remark;
+
+ public Integer getWhitelistid() {
+ return whitelistid;
+ }
+
+ public void setWhitelistid(Integer whitelistid) {
+ this.whitelistid = whitelistid;
+ }
+
+ public String getListname() {
+ return listname;
+ }
+
+ public void setListname(String listname) {
+ this.listname = listname;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getCreateOperid() {
+ return createOperid;
+ }
+
+ public void setCreateOperid(String createOperid) {
+ this.createOperid = createOperid;
+ }
+
+ public String getCheckOperid() {
+ return checkOperid;
+ }
+
+ public void setCheckOperid(String checkOperid) {
+ this.checkOperid = checkOperid;
+ }
+
+ public String getCreatetime() {
+ return createtime;
+ }
+
+ public void setCreatetime(String createtime) {
+ this.createtime = createtime;
+ }
+
+ public String getLastsaved() {
+ return lastsaved;
+ }
+
+ public void setLastsaved(String lastsaved) {
+ this.lastsaved = lastsaved;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TWhitelistDetail.java b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TWhitelistDetail.java
new file mode 100644
index 0000000..aba06a1
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TWhitelistDetail.java
@@ -0,0 +1,101 @@
+package com.supwisdom.dlpay.restaurant.domain;
+
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.*;
+
+@Entity
+@Table(name = "TB_WHITELIST_DETAIL")
+public class TWhitelistDetail {
+ @Id
+ @GenericGenerator(name = "idGenerator", strategy = "uuid")
+ @GeneratedValue(generator = "idGenerator")
+ @Column(name = "ID", nullable = false, length = 32)
+ private String id;
+
+ @Column(name="CARDNO", length = 20)
+ private String cardno;
+
+ @Column(name="USERNAME", length = 60)
+ private String username;
+
+ @Column(name="USERID", length = 32)
+ private String userid;
+
+ @Column(name="STATUS", length = 32)
+ private String status;
+
+ @Column(name="CARDPHYID", length = 20)
+ private String cardphyid;
+
+ @Column(name="WHITELISTID", nullable = false, length = 10)
+ private Integer whitelistid;
+
+ @Column(name="LASTSAVED", length = 14)
+ private String lastsaved;
+
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getCardno() {
+ return cardno;
+ }
+
+ public void setCardno(String cardno) {
+ this.cardno = cardno;
+ }
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ public String getUserid() {
+ return userid;
+ }
+
+ public void setUserid(String userid) {
+ this.userid = userid;
+ }
+
+ public Integer getWhitelistid() {
+ return whitelistid;
+ }
+
+ public void setWhitelistid(Integer whitelistid) {
+ this.whitelistid = whitelistid;
+ }
+
+ public String getLastsaved() {
+ return lastsaved;
+ }
+
+ public void setLastsaved(String lastsaved) {
+ this.lastsaved = lastsaved;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getCardphyid() {
+ return cardphyid;
+ }
+
+ public void setCardphyid(String cardphyid) {
+ this.cardphyid = cardphyid;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TWhitelistDevbind.java b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TWhitelistDevbind.java
new file mode 100644
index 0000000..3cb6a54
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TWhitelistDevbind.java
@@ -0,0 +1,68 @@
+package com.supwisdom.dlpay.restaurant.domain;
+
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.*;
+
+@Entity
+@Table(name = "TB_whiteLIST_DEVBIND",
+ indexes = {@Index(name = "whitelistid_devbind_uk", unique = true, columnList = "deviceid,whitelistid")})
+public class TWhitelistDevbind {
+ @Id
+ @GenericGenerator(name = "idGenerator", strategy = "uuid")
+ @GeneratedValue(generator = "idGenerator")
+ @Column(name = "ID", nullable = false, length = 32)
+ private String id;
+
+ @Column(name = "DEVICEID", nullable = false, precision = 9)
+ private Integer deviceid;
+
+ @Column(name = "WHITELISTID", nullable = false, precision = 9)
+ private Integer whitelistid;
+
+ @Column(name = "CREATE_OPERID", length = 32)
+ private String createOperid;
+
+ @Column(name = "CREATETIME", length = 14)
+ private String createtime;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public Integer getDeviceid() {
+ return deviceid;
+ }
+
+ public void setDeviceid(Integer deviceid) {
+ this.deviceid = deviceid;
+ }
+
+ public Integer getWhitelistid() {
+ return whitelistid;
+ }
+
+ public void setWhitelistid(Integer whitelistid) {
+ this.whitelistid = whitelistid;
+ }
+
+ public String getCreateOperid() {
+ return createOperid;
+ }
+
+ public void setCreateOperid(String createOperid) {
+ this.createOperid = createOperid;
+ }
+
+ public String getCreatetime() {
+ return createtime;
+ }
+
+ public void setCreatetime(String createtime) {
+ this.createtime = createtime;
+ }
+}
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 a1197e1..25e1cab 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/CustomerService.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/CustomerService.java
@@ -2,10 +2,12 @@
import com.supwisdom.dlpay.api.bean.JsonResult;
import com.supwisdom.dlpay.framework.util.PageResult;
+import com.supwisdom.dlpay.framework.util.StringUtil;
import com.supwisdom.dlpay.restaurant.bean.CustomerSaveBean;
import com.supwisdom.dlpay.restaurant.bean.CustomerSearchBean;
import com.supwisdom.dlpay.restaurant.bean.CustomerShowBean;
import com.supwisdom.dlpay.restaurant.bean.DeviceSearchBean;
+import com.supwisdom.dlpay.restaurant.domain.TCard;
import com.supwisdom.dlpay.restaurant.domain.TCustomer;
import com.supwisdom.dlpay.restaurant.domain.TDevice;
import org.springframework.transaction.annotation.Propagation;
@@ -15,6 +17,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
+import java.util.Optional;
public interface CustomerService {
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
@@ -38,5 +41,6 @@
JsonResult export( HttpServletRequest request, HttpServletResponse response);
+ TCustomer getCustomerByCardno(String cardno) ;
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/DeviceService.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/DeviceService.java
index 302f677..dd9bc16 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/DeviceService.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/DeviceService.java
@@ -5,6 +5,7 @@
import com.supwisdom.dlpay.restaurant.bean.DeviceSearchBean;
import com.supwisdom.dlpay.restaurant.domain.TDevice;
import com.supwisdom.dlpay.framework.util.PageResult;
+import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
@@ -16,6 +17,8 @@
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
PageResult<TDevice> getDeviceByKey(DeviceSearchBean param);
+
+
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
PageResult<TDevice> getDeviceByDevicename(String devicename);
@@ -38,6 +41,10 @@
JsonResult saveDevice(TDevice device);
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+ Boolean doCheckdevice(String status, List<Integer> deviceIds, UserDetails operUser ) throws WebCheckException;
+
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
JsonResult deleteGroup(Integer id);
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/WhitelistService.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/WhitelistService.java
new file mode 100644
index 0000000..639b108
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/WhitelistService.java
@@ -0,0 +1,67 @@
+package com.supwisdom.dlpay.restaurant.service;
+
+import com.supwisdom.dlpay.exception.WebCheckException;
+import com.supwisdom.dlpay.framework.domain.TOperator;
+import com.supwisdom.dlpay.framework.util.PageResult;
+import com.supwisdom.dlpay.restaurant.bean.CardverWhitelistBean;
+import com.supwisdom.dlpay.restaurant.bean.WhitelistBindShowBean;
+import com.supwisdom.dlpay.restaurant.bean.DevparaBinddevShowBean;
+import com.supwisdom.dlpay.restaurant.domain.TCardver;
+import com.supwisdom.dlpay.restaurant.domain.TWhitelist;
+import com.supwisdom.dlpay.restaurant.domain.TWhitelistDetail;
+import com.supwisdom.dlpay.restaurant.domain.TWhitelistDevbind;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+public interface WhitelistService {
+ @Transactional(rollbackFor = Exception.class, readOnly = true)
+ PageResult<TWhitelist> getWhitelist(String listname, int pageNo, int pageSize);
+
+ @Transactional(rollbackFor = Exception.class)
+ boolean saveWhitelist(String listname, MultipartFile file, TOperator oper) throws Exception;
+
+ @Transactional(rollbackFor = Exception.class, readOnly = true)
+ PageResult<TWhitelistDetail> getWhitelistDetails(String searchkey, int ruleid, int pageNo, int pageSize);
+
+ @Transactional(rollbackFor = Exception.class)
+ boolean closeWhitelist(int ruleid) throws WebCheckException;
+
+ @Transactional(rollbackFor = Exception.class)
+ boolean deleteWhitelist(int whitelistid) throws WebCheckException;
+
+ @Transactional(rollbackFor = Exception.class, readOnly = true)
+ PageResult<TWhitelist> getCheckWhitelist(String status, int pageNo, int pageSize);
+
+ @Transactional(rollbackFor = Exception.class)
+ boolean doCheckWhitelist(int whitelistid, boolean passflag, String reason, TOperator oper) throws Exception;
+
+ @Transactional(rollbackFor = Exception.class, readOnly = true)
+ PageResult<WhitelistBindShowBean> getWhitelistDevBindInfo(String searchkey, int pageNo, int pageSize);
+
+ @Transactional(rollbackFor = Exception.class, readOnly = true)
+ TWhitelistDevbind getWhitelistDevbindById(String id);
+
+ @Transactional(rollbackFor = Exception.class, readOnly = true)
+ TWhitelistDevbind getWhitelistDevbindByDeviceId(Integer id);
+
+
+ @Transactional(rollbackFor = Exception.class)
+ boolean deleteWhitelistDevbind(TWhitelistDevbind bind);
+
+ @Transactional(rollbackFor = Exception.class, readOnly = true)
+ PageResult<DevparaBinddevShowBean> searchWhitelistBindDevices(Integer devgroupid, String searchkey, int whitelistid);
+
+ @Transactional(rollbackFor = Exception.class)
+ boolean saveWhitelistBindDevices(int whitelistid, List<Integer> deviceIds, TOperator oper) throws WebCheckException;
+
+
+ @Transactional(rollbackFor = Exception.class, readOnly = true)
+ List<TWhitelist> getNormalWhitelists();
+
+
+ @Transactional(rollbackFor = Exception.class,readOnly = true)
+ List<TCardver> getDevBindCardver(Integer deviceid) ;
+
+}
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 b5cd08d..ca3c217 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
@@ -282,4 +282,19 @@
return list;
}
+ public TCustomer getCustomerByCardno(String cardno) {
+ if (!StringUtil.isEmpty(cardno)) {
+ List<TCard> clst=cardDao.findAllByCardnoAndStatus(cardno,"normal");
+ if(clst.size()<=0){
+ return null;
+ }
+
+ Optional<TCustomer> list = customerDao.findById(clst.get(0).getCustid());
+ if (list.isPresent()) {
+ return list.get();
+ }
+ }
+ return null;
+ }
+
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceDiscountRuleServiceImpl.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceDiscountRuleServiceImpl.java
index 7e069e2..ae15d55 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceDiscountRuleServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceDiscountRuleServiceImpl.java
@@ -9,6 +9,7 @@
import com.supwisdom.dlpay.restaurant.bean.*;
import com.supwisdom.dlpay.restaurant.dao.*;
import com.supwisdom.dlpay.restaurant.domain.*;
+import com.supwisdom.dlpay.restaurant.service.CustomerService;
import com.supwisdom.dlpay.restaurant.service.DeviceDiscountRuleService;
import com.supwisdom.dlpay.restaurant.util.RestaurantConstant;
import org.apache.commons.lang3.StringUtils;
@@ -52,6 +53,9 @@
@Autowired
private CardDao cardDao;
+ @Autowired
+ private CustomerService customerService;
+
@PersistenceContext
private EntityManager entityManager;
@@ -150,16 +154,7 @@
return false;
}
- private TCustomer getCustomerByCardno(String cardno) {
- if (!StringUtil.isEmpty(cardno)) {
- TCard clst=cardDao.findAllByCardnoAndStatus(cardno,"normal").get(0);
- Optional<TCustomer> list = customerDao.findById(clst.getCustid());
- if (list.isPresent()) {
- return list.get();
- }
- }
- return null;
- }
+
private boolean checkRuleTimeError(String starttime, String endtime, String cardno, String custid) {
Query query = entityManager.createNativeQuery("select count(a.id) from tb_discount_detail a, tb_discount_rule b where a.ruleid=b.ruleid and (b.status='uncheck' or b.status='normal') " +
@@ -247,7 +242,7 @@
if (StringUtil.isEmpty(name)) {
msg += ",姓名为空";
}
- TCustomer customer = getCustomerByCardno(cardno);
+ TCustomer customer = customerService.getCustomerByCardno(cardno);
if (!StringUtil.isEmpty(cardno)) {
if (null == customer) {
msg += ",市民卡用户不存在";
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceServiceImpl.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceServiceImpl.java
index 9a4685d..fe65a84 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceServiceImpl.java
@@ -2,6 +2,7 @@
import com.supwisdom.dlpay.api.bean.JsonResult;
import com.supwisdom.dlpay.exception.WebCheckException;
+import com.supwisdom.dlpay.framework.util.DateUtil;
import com.supwisdom.dlpay.restaurant.bean.DeviceSearchBean;
import com.supwisdom.dlpay.restaurant.dao.DeviceDao;
import com.supwisdom.dlpay.restaurant.dao.DeviceGroupDao;
@@ -15,6 +16,7 @@
import com.supwisdom.dlpay.framework.util.ImportExcelUtil;
import com.supwisdom.dlpay.framework.util.PageResult;
import com.supwisdom.dlpay.framework.util.StringUtil;
+import com.supwisdom.dlpay.restaurant.util.RestaurantConstant;
import org.apache.commons.lang3.StringUtils;
import org.hibernate.query.internal.NativeQueryImpl;
import org.hibernate.transform.Transformers;
@@ -22,6 +24,7 @@
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.domain.Specification;
+import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.multipart.MultipartFile;
@@ -70,6 +73,9 @@
if (!StringUtil.isEmpty(param.getFactoryid())) {
list.add(cb.equal(root.get("factoryid").as(String.class), param.getFactoryid()));
}
+ if (!StringUtil.isEmpty(param.getCheckstatus())) {
+ list.add(cb.equal(root.get("checkstatus").as(String.class), param.getCheckstatus()));
+ }
if (null!=param.getId()) {
list.add(cb.like(root.get("id").as(String.class), param.getId().toString()));
}
@@ -144,7 +150,8 @@
String operid=OperUtil.getCurrentOperid();
device.setOperid(operid);
device.setDevicename(device.getDevphyid());
-
+ device.setLastsaved(DateUtil.getNow());
+ device.setCheckstatus(RestaurantConstant.STATUS_CHECKSTATUS_UNCHECK);
/* TDevice d = deviceDao.save(device);
TShopDevice shopDevice = new TShopDevice();
shopDevice.setDeviceid(d.getId());
@@ -156,6 +163,20 @@
}
@Override
+ public Boolean doCheckdevice(String status, List<Integer> deviceIds, UserDetails operUser) throws WebCheckException {
+ for(Integer id:deviceIds){
+ TDevice device = deviceDao.findTDeviceById(id);
+ if(null==device){
+ throw new WebCheckException(device.getDevicename()+"设备不存在");
+ }
+ device.setCheckstatus(status);
+ device.setOperid(operUser.getUsername());
+ deviceDao.save(device);
+ }
+ return true;
+ }
+
+ @Override
public JsonResult updateDevice(TDevice device) {
TDevice d = deviceDao.findTDeviceById(device.getId());
d.setDevicename(device.getDevicename());
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/WhitelistServiceImpl.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/WhitelistServiceImpl.java
new file mode 100644
index 0000000..03c7ab7
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/WhitelistServiceImpl.java
@@ -0,0 +1,418 @@
+package com.supwisdom.dlpay.restaurant.service.impl;
+
+import com.supwisdom.dlpay.exception.WebCheckException;
+import com.supwisdom.dlpay.framework.domain.TOperator;
+import com.supwisdom.dlpay.framework.service.SystemUtilService;
+import com.supwisdom.dlpay.framework.util.ImportExcelUtil;
+import com.supwisdom.dlpay.framework.util.PageResult;
+import com.supwisdom.dlpay.framework.util.StringUtil;
+import com.supwisdom.dlpay.restaurant.bean.CardverWhitelistBean;
+import com.supwisdom.dlpay.restaurant.bean.WhitelistBindShowBean;
+import com.supwisdom.dlpay.restaurant.bean.DevparaBinddevShowBean;
+import com.supwisdom.dlpay.restaurant.dao.*;
+import com.supwisdom.dlpay.restaurant.domain.*;
+import com.supwisdom.dlpay.restaurant.service.WhitelistService;
+import com.supwisdom.dlpay.restaurant.service.CardService;
+import com.supwisdom.dlpay.restaurant.service.CustomerService;
+import com.supwisdom.dlpay.restaurant.util.RestaurantConstant;
+import org.apache.commons.lang3.StringUtils;
+import org.hibernate.query.internal.NativeQueryImpl;
+import org.hibernate.transform.Transformers;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.domain.Sort;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+
+
+@Service
+public class WhitelistServiceImpl implements WhitelistService {
+
+ @Autowired
+ private WhitelistDao WhitelistDao;
+ @Autowired
+ private CardService cardService;
+ @Autowired
+ private SystemUtilService systemUtilService;
+ @Autowired
+ private CustomerService customerService;
+ @Autowired
+ private WhitelistDetailDao WhitelistDetailDao;
+ @Autowired
+ private WhitelistDevbindDao WhitelistDevbindDao;
+ @Autowired
+ private DeviceDao deviceDao;
+
+ @PersistenceContext
+ private EntityManager entityManager;
+
+ @Override
+ public PageResult<TWhitelist> getWhitelist(String listname, int pageNo, int pageSize) {
+ Pageable pageable = PageRequest.of(pageNo - 1, pageSize
+ , Sort.by("Whitelistid"));
+ if (!StringUtil.isEmpty(listname)) {
+ return new PageResult<>(WhitelistDao.findAllByListnameContaining(listname, pageable));
+ }
+ return new PageResult<>(WhitelistDao.findAll(pageable));
+ }
+
+ @Override
+ public boolean saveWhitelist(String listname, MultipartFile file, TOperator oper) throws Exception {
+ TWhitelist list = new TWhitelist();
+ if (WhitelistDao.checkListnameExists(listname) > 0) {
+ throw new WebCheckException("白名单名称已经存在!");
+ }
+ list.setListname(listname);
+ list.setStatus(RestaurantConstant.STATUS_DISCOUNTRULE_UNCHECK);
+ list.setCreateOperid(oper.getOperid());
+ String systime = systemUtilService.getSysdatetime().getHostdatetime();
+ list.setCreatetime(systime);
+ list.setLastsaved(systime);
+ WhitelistDao.save(list);
+
+ String filename = file.getOriginalFilename();
+ if (!filename.endsWith(".xls") && !filename.endsWith(".xlsx")) {
+ throw new WebCheckException("文件格式错误,请选择excel文件");
+ }
+
+ List<Object[][]> excelData = null;
+ try {
+ if (filename.endsWith(".xls")) {
+ excelData = ImportExcelUtil.getIntegralData(file.getInputStream());//2003版本
+ } else {
+ excelData = ImportExcelUtil.getIntegralData07(file.getInputStream());//2007版本以上
+ }
+ if (null == excelData || excelData.size() < 1) {
+ throw new WebCheckException("excel文件解析错误");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new WebCheckException("模板格式错误,请重新下载模板");
+ }
+
+ int index_cardno = -1;
+ int index_name = -1;
+ Object[] titleRow = excelData.get(0)[0]; //sheet1表头
+ for (int i = 0; i < titleRow.length; i++) {
+ if ("市民卡号".equals(titleRow[i])) {
+ index_cardno = i;
+ continue;
+ } else if ("姓名".equals(titleRow[i])) {
+ index_name = i;
+ continue;
+ }
+ }
+ if (index_cardno == -1 || index_name == -1 || excelData.get(0).length < 2) {
+ throw new WebCheckException("名单模板表头不能修改,且必须包含数据!");
+ }
+
+ List<String> successCardnos = new ArrayList<>(0);
+ List<String> errmsgList = new ArrayList<>(0);
+
+ try {
+ for (int n = 1; n < excelData.get(0).length; n++) {
+ String msg = "";
+ Object[] row = excelData.get(0)[n];
+ String cardno = row[index_cardno] == null ? null : row[index_cardno].toString().trim();
+ String name = row[index_name] == null ? null : row[index_name].toString().trim();
+ if (StringUtil.isEmpty(cardno)) {
+ msg += ",市民卡号为空";
+ }
+ if (StringUtil.isEmpty(name)) {
+ msg += ",姓名为空";
+ }
+ TCustomer customer = customerService.getCustomerByCardno(cardno);
+ if (!StringUtil.isEmpty(cardno)) {
+ if (null == customer) {
+ msg += ",市民卡用户不存在";
+ } else if (!customer.getCustname().equals(name)) {
+ msg += ",市民卡号与姓名不匹配!";
+ }
+ }
+ if (!StringUtil.isEmpty(cardno) && successCardnos.contains(cardno)) {
+ msg += ",市民卡号重复!";
+ }
+
+ TCard card = cardService.getCardByCardno(cardno);
+
+ if (!StringUtil.isEmpty(msg)) {
+ errmsgList.add("第" + (n + 1) + "行数据错误" + msg);
+ } else {
+ TWhitelistDetail detail = new TWhitelistDetail();
+ detail.setWhitelistid(list.getWhitelistid());
+ detail.setCardno(cardno);
+ detail.setUsername(name);
+ detail.setUserid(customer.getCustid() + "");
+ detail.setStatus("uncheck");
+ detail.setCardphyid(card.getCardphyid());
+ detail.setLastsaved(systime);
+ WhitelistDetailDao.save(detail); //保存明细
+
+ successCardnos.add(cardno);
+ }
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new WebCheckException("模板格式有误,请确保卡号为文本格式");
+ }
+
+ if (!StringUtil.isEmpty(errmsgList)) {
+ StringBuffer errmsg = new StringBuffer("导入失败,名单存在错误!");
+ for (int j = 0; j < errmsgList.size(); j++) {
+ errmsg.append("<br/>" + errmsgList.get(j));
+ if (j > 10) {
+ errmsg.append("<br/>错误太多,请仔细核对名单后再上传!");
+ }
+ }
+ throw new WebCheckException(errmsg.toString());
+ }
+ return true;
+ }
+
+ @Override
+ public PageResult<TWhitelistDetail> getWhitelistDetails(String searchkey, int Whitelistid, int pageNo, int pageSize) {
+ StringBuffer querySql = new StringBuffer("from TWhitelistDetail t where t.Whitelistid=:Whitelistid ");
+ StringBuffer countSql = new StringBuffer("select count(t.id) as cnt from TWhitelistDetail t where t.Whitelistid=:Whitelistid ");
+ if (!StringUtil.isEmpty(searchkey)) {
+ querySql.append(" and (t.cardno like :str or t.username like :str) ");
+ countSql.append(" and (t.cardno like :str or t.username like :str) ");
+ }
+ querySql.append(" order by t.cardno ");
+ Query query = entityManager.createQuery(querySql.toString());
+ Query countQuery = entityManager.createQuery(countSql.toString());
+ query.setParameter("Whitelistid", Whitelistid);
+ countQuery.setParameter("Whitelistid", Whitelistid);
+ if (!StringUtil.isEmpty(searchkey)) {
+ query.setParameter("str", "%" + searchkey.trim() + "%");
+ countQuery.setParameter("str", "%" + searchkey.trim() + "%");
+ }
+ query.setFirstResult((pageNo - 1) * pageSize);
+ query.setMaxResults(pageSize); //分页显示
+ List<TWhitelistDetail> list = query.getResultList();
+ Long count = (Long) countQuery.getSingleResult();
+ return new PageResult<>(count.longValue(), list);
+ }
+
+ @Override
+ public boolean closeWhitelist(int Whitelistid) throws WebCheckException {
+ Optional<TWhitelist> olist = WhitelistDao.findById(Whitelistid);
+ if (!olist.isPresent()) {
+ throw new WebCheckException("白名单不存在!");
+ }
+ TWhitelist list = olist.get();
+ if (RestaurantConstant.STATUS_DISCOUNTRULE_CLOSED.equals(list.getStatus())) {
+ throw new WebCheckException("白名单已经失效!");
+ } else if (!RestaurantConstant.STATUS_DISCOUNTRULE_NORMAL.equals(list.getStatus())) {
+ throw new WebCheckException("白名单未审核通过,不能关闭");
+ }
+
+
+ list.setStatus(RestaurantConstant.STATUS_DISCOUNTRULE_CLOSED);
+ list.setLastsaved(systemUtilService.getSysdatetime().getHostdatetime());
+ WhitelistDao.save(list);
+ return true;
+ }
+
+
+ @Override
+ public boolean deleteWhitelist(int Whitelistid) throws WebCheckException {
+ Optional<TWhitelist> list = WhitelistDao.findById(Whitelistid);
+ if (!list.isPresent()) {
+ throw new WebCheckException("白名单不存在!");
+ }
+ TWhitelist tWhitelist = list.get();
+ if (!RestaurantConstant.STATUS_DISCOUNTRULE_UNCHECK.equals(tWhitelist.getStatus()) && !RestaurantConstant.STATUS_DISCOUNTRULE_REJECT.equals(tWhitelist.getStatus())) {
+ throw new WebCheckException("待审核或驳回的白名单才能删除!");
+ }
+
+ WhitelistDetailDao.deleteWhitelistDetailByWhitelistid(Whitelistid); //名单
+ WhitelistDevbindDao.deleteBindByWhitelistid(Whitelistid); //绑定设备
+ WhitelistDao.delete(tWhitelist);
+ return true;
+ }
+
+ @Override
+ public PageResult<TWhitelist> getCheckWhitelist(String status, int pageNo, int pageSize) {
+ Pageable pageable = PageRequest.of(pageNo - 1, pageSize, Sort.by(Sort.Direction.DESC, "Whitelistid"));
+ if (StringUtil.isEmpty(status)) {
+ return new PageResult<>(WhitelistDao.findAll());
+ }
+ return new PageResult<>(WhitelistDao.findAllByStatus(status, pageable));
+
+ }
+
+ @Override
+ public boolean doCheckWhitelist(int Whitelistid, boolean passflag, String reason, TOperator oper) throws Exception {
+ Optional<TWhitelist> list = WhitelistDao.findById(Whitelistid);
+ if (!list.isPresent()) {
+ throw new WebCheckException("白名单不存在!");
+ }
+ TWhitelist tWhitelist = list.get();
+ if (!RestaurantConstant.STATUS_DISCOUNTRULE_UNCHECK.equals(tWhitelist.getStatus()) && !RestaurantConstant.STATUS_DISCOUNTRULE_REJECT.equals(tWhitelist.getStatus())) {
+ throw new WebCheckException("白名单非审核状态!");
+ }
+
+ tWhitelist.setCheckOperid(oper.getOperid());
+ tWhitelist.setLastsaved(systemUtilService.getSysdatetime().getHostdatetime());
+ if (passflag) {
+ tWhitelist.setStatus(RestaurantConstant.STATUS_DISCOUNTRULE_NORMAL);
+ tWhitelist.setRemark(null);
+ } else {
+ tWhitelist.setStatus(RestaurantConstant.STATUS_DISCOUNTRULE_REJECT);
+ tWhitelist.setRemark(reason);
+ }
+ WhitelistDao.save(tWhitelist);
+ WhitelistDetailDao.updateWhitelistDetailStatusByWhitelistid(tWhitelist.getStatus(), tWhitelist.getWhitelistid());
+ return true;
+ }
+
+
+ @Override
+ public PageResult<WhitelistBindShowBean> getWhitelistDevBindInfo(String searchkey, int pageNo, int pageSize) {
+ StringBuffer querySql = new StringBuffer("select t.id,t.deviceid,b.devicename,b.devphyid,t.Whitelistid,a.listname,a.status as liststatus,t.createtime " +
+ " from TB_WhiteLIST_DEVBIND t left join TB_WhiteLIST a on t.Whitelistid=a.Whitelistid left join TB_DEVICE b on t.deviceid=b.id where 1=1 ");
+ StringBuffer countSql = new StringBuffer("select count(t.id) as cnt " +
+ " from TB_WhiteLIST_DEVBIND t left join TB_WhiteLIST a on t.Whitelistid=a.Whitelistid left join TB_DEVICE b on t.deviceid=b.id where 1=1 ");
+ if (!StringUtil.isEmpty(searchkey)) {
+ querySql.append(" and (a.listname like :str or b.devicename like :str or b.devphyid like :str) ");
+ countSql.append(" and (a.listname like :str or b.devicename like :str or b.devphyid like :str) ");
+ }
+ querySql.append(" order by t.createtime desc ");
+ Query query = entityManager.createNativeQuery(querySql.toString());
+ Query countQuery = entityManager.createNativeQuery(countSql.toString());
+ if (!StringUtil.isEmpty(searchkey)) {
+ query.setParameter("str", "%" + searchkey.trim() + "%");
+ countQuery.setParameter("str", "%" + searchkey.trim() + "%");
+ }
+ query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.aliasToBean(WhitelistBindShowBean.class));
+ query.setFirstResult((pageNo - 1) * pageSize);
+ query.setMaxResults(pageSize); //分页显示
+ List<WhitelistBindShowBean> list = query.getResultList();
+ BigInteger count = (BigInteger) countQuery.getSingleResult();
+ return new PageResult<>(count.longValue(), list);
+ }
+
+ @Override
+ public TWhitelistDevbind getWhitelistDevbindById(String id) {
+ if (!StringUtil.isEmpty(id)) {
+ return WhitelistDevbindDao.getWhitelistDevbindById(id.trim());
+ }
+ return null;
+ }
+
+ @Override
+ public TWhitelistDevbind getWhitelistDevbindByDeviceId(Integer id) {
+ if (null != id) {
+ return WhitelistDevbindDao.findByDeviceid(id);
+ }
+ return null;
+ }
+
+ @Override
+ public boolean deleteWhitelistDevbind(TWhitelistDevbind bind) {
+ if (null != bind) {
+ WhitelistDevbindDao.delete(bind);
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public PageResult<DevparaBinddevShowBean> searchWhitelistBindDevices(Integer devgroupid, String searchkey, int Whitelistid) {
+ List<Integer> chirdGroupids = null;
+ if (null != devgroupid) {
+ Query chirdGroupQuery = entityManager.createNativeQuery(" WITH RECURSIVE r AS ( " +
+ " SELECT * FROM tb_devicegroup WHERE devgroupid = :gid " +
+ " union ALL " +
+ " SELECT a.* FROM tb_devicegroup a, r WHERE a.pid = r.devgroupid ) " +
+ " SELECT devgroupid FROM r ORDER BY devgroupid ");
+ chirdGroupQuery.setParameter("gid", devgroupid.intValue());
+ chirdGroupids = chirdGroupQuery.getResultList(); //递归查询所有的子节点
+ }
+
+ StringBuffer sql = new StringBuffer("select t.id as deviceid,t.devicename,t.devphyid,t.devgroupid,a.groupname as devgroupname " +
+ " from TB_DEVICE t left join TB_DEVICEGROUP a on t.devgroupid=a.devgroupid " +
+ " left join TB_WhiteLIST_DEVBIND b on t.id=b.deviceid and b.Whitelistid=:lid where b.id is null and t.state=1 ");
+ if (!StringUtil.isEmpty(chirdGroupids)) {
+ sql.append(" and t.devgroupid in (" + StringUtils.join(chirdGroupids.toArray(), ",") + ") ");
+ }
+ if (!StringUtil.isEmpty(searchkey)) {
+ sql.append(" and (t.devicename like :str or t.devphyid like :str) ");
+ }
+ sql.append(" order by t.id ");
+ Query query = entityManager.createNativeQuery(sql.toString());
+ if (!StringUtil.isEmpty(searchkey)) {
+ query.setParameter("str", "%" + searchkey.trim() + "%");
+ }
+ query.setParameter("lid", Whitelistid);
+ query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.aliasToBean(DevparaBinddevShowBean.class));
+ List<DevparaBinddevShowBean> list = query.getResultList();
+ return new PageResult<>(list);
+ }
+
+ @Override
+ public boolean saveWhitelistBindDevices(int Whitelistid, List<Integer> deviceIds, TOperator oper) throws WebCheckException {
+ Optional<TWhitelist> olist = WhitelistDao.findById(Whitelistid);
+ if (!olist.isPresent()) {
+ throw new WebCheckException("所选白名单不存在");
+ }
+ TWhitelist list = olist.get();
+ if (!RestaurantConstant.STATUS_DISCOUNTRULE_NORMAL.equals(list.getStatus())) {
+ throw new WebCheckException("所选白名单状态异常");
+ }
+
+ for (Integer id : deviceIds) {
+ TDevice device = deviceDao.findTDeviceById(id);
+ if (null == device) {
+ throw new WebCheckException("终端编号为[" + id + "]的设备不存在");
+ } else if (1 != device.getState()) {
+ throw new WebCheckException("终端编号为[" + id + "]的设备状态异常");
+ }
+ TWhitelistDevbind obind = WhitelistDevbindDao.findByDeviceid(id);
+ if (null != obind) {
+ throw new WebCheckException("终端编号为[" + id + "]的设备已有绑定关系");
+ }
+
+ TWhitelistDevbind bind = new TWhitelistDevbind();
+ bind.setWhitelistid(list.getWhitelistid());
+ bind.setDeviceid(device.getId());
+ bind.setCreateOperid(oper == null ? null : oper.getOperid());
+ bind.setCreatetime(systemUtilService.getSysdatetime().getHostdatetime());
+ WhitelistDevbindDao.save(bind);
+ }
+ return true;
+ }
+
+ @Override
+ public List<TWhitelist> getNormalWhitelists() {
+ List<TWhitelist> lists = WhitelistDao.findAllByStatus(RestaurantConstant.STATUS_DISCOUNTRULE_NORMAL);
+ if (lists.size() > 0) {
+ return lists;
+ }
+ return new ArrayList<>(0);
+ }
+
+ @Override
+ public List<TCardver> getDevBindCardver(Integer deviceid) {
+ StringBuffer sql = new StringBuffer("SELECT t.cardno,t.cardphyid FROM tb_whitelist_detail w " +
+ "left join tb_cardver t on t.cardno=w.cardno " +
+ "left join tb_whitelist_devbind d on d.whitelistid=w.whitelistid " +
+ "where d.deviceid=:id");
+ Query query = entityManager.createNativeQuery(sql.toString());
+ query.setParameter("str", deviceid);
+ query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.aliasToBean(TCardver.class));
+ List<TCardver> list = query.getResultList();
+ return list;
+ }
+
+}
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 beb84bc..a28c797 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/util/RestaurantConstant.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/util/RestaurantConstant.java
@@ -8,7 +8,8 @@
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 STATUS_CHECKSTATUS_FAIL = "fail"; //无效
+ public static final String STATUS_CHECKSTATUS_REJECT = "reject"; //驳回
public static final String TRANSMODE_CARD = "card"; //卡消费
public static final String TRANSMODE_CODE = "code"; //二维码消费
diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql
index 94e2492..e53e5c2 100644
--- a/src/main/resources/data.sql
+++ b/src/main/resources/data.sql
@@ -115,6 +115,14 @@
INSERT INTO "tb_function" (id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (17, NULL, 1, NULL, 'layui-icon-util', '/param/apiclientpara', '应用参数配置', 3, 10);
--INSERT INTO "tb_function" (id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (2, NULL, 1, NULL, '', '/custmeallist/index', '就餐名单管理', 3, 22);
--INSERT INTO "tb_function" (id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (7, NULL, 1, NULL, '', '/custmealcheck/index', '就餐名单审核', 4, 22);
+INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (8, NULL, 1, NULL, '', '/devicecheck/index', '设备审核', 2, 14);
+INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (13, NULL, 1, NULL, '', '/whitelist/index', '就餐白名单维护', 1, 11);
+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_mealtype" (mealtype,endtime,lastsaved,mealname) VALUES ('dinner', '200000', '20190709102922', '晚餐');
@@ -129,163 +137,167 @@
INSERT INTO "tb_paytype_config" (paytype,configid,config_name,config_value) VALUES ('yktpay', 'orderurl', NULL, 'http://172.28.201.101:9116/epayapi/services/thirdparty/common/pay');
INSERT INTO "tb_paytype_config" (paytype,configid,config_name,config_value) VALUES ('yktpay', 'reverseurl', NULL, 'http://172.28.201.101:9116/epayapi/services/thirdparty/common/payreverse');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0b30009', 16, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0b3000a', 17, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0b3000b', 19, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0b4000c', 20, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0b4000d', 21, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0b4000f', 6, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0b40010', 7, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0b50011', 8, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0b50012', 9, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0b50013', 22, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0bd0015', 4, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0bd0016', 5, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0be0017', 10, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0be0018', 11, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0be0019', 12, NULL, '402890866be40f77016be4c848b9002f');
-
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0bf001a', 13, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0bf001b', 14, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0bf001c', 15, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0bf001e', 24, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0c00021', 23, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0c00022', 25, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0c00023', 31, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0c10024', 38, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0c10025', 42, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0c10026', 44, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0c10027', 86, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0c20029', 45, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0c2002a', 46, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0c2002b', 47, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0c3002c', 48, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0e3002d', 49, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0e3002f', 50, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0e30030', 52, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0e30031', 53, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c0e40033', 54, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c1030034', 55, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c1030035', 56, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c1040036', 57, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c1040038', 58, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c1040039', 59, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c104003a', 60, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c105003b', 65, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c105003e', 61, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c105003f', 62, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c1060040', 63, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c1060041', 64, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c1060042', 66, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c1060043', 67, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c1060044', 68, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c1070047', 71, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c1070048', 80, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c1070049', 81, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c108004b', 70, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c108004c', 74, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c109004d', 75, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c109004e', 76, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c109004f', 77, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c1090050', 78, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c1090052', 69, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c10a0053', 82, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c10a0054', 83, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c10a0055', 84, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c10a0058', 79, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c10b0059', 85, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c10b005a', 87, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c10b005c', 88, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c10b005d', 89, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c10c005e', 90, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c10c005f', 1, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c10c0060', 2, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c10c0061', 3, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('402890866bf9ea0d016bfde2c10c0062', 18, NULL, '402890866be40f77016be4c848b9002f');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('ff8080816aaf2ec3016aaf4edaac009f', 27, NULL, '2c9cab836a8af5d5016a8af6ece20000');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f56001d', 16, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f57001e', 17, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f57001f', 19, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f570020', 20, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f570021', 21, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f580023', 6, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f580024', 7, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f580025', 8, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f580026', 9, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f590027', 22, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f590029', 4, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f59002a', 5, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f59002b', 10, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f59002c', 11, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f5a002d', 12, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f5a002e', 13, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f5b002f', 14, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f5b0030', 15, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f5b0032', 24, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f5f0044', 23, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f5f0045', 25, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f5f0046', 31, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f5f0047', 38, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f5f0048', 42, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f600049', 44, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f60004a', 86, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f60004c', 45, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f60004d', 46, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f60004e', 47, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f61004f', 48, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f610050', 49, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f610052', 50, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f610053', 52, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f610054', 53, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f620056', 55, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f620057', 54, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f620058', 57, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f630059', 56, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f63005b', 59, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f63005c', 58, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f64005d', 60, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f64005e', 65, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f660066', 61, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f660067', 62, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f660068', 63, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f670069', 64, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f68006a', 66, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f68006b', 67, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f68006c', 68, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f68006e', 27, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f69006f', 32, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f690070', 28, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f690071', 29, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f690072', 30, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f6c007e', 71, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f6c007f', 80, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f6c0080', 81, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f6d0082', 77, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f6d0083', 78, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f6d0084', 76, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f6e0085', 74, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f6e0086', 70, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f6e0087', 75, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f6f0089', 82, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f6f008a', 83, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f70008b', 69, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f70008c', 84, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f720095', 85, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f720096', 79, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f720097', 87, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f720099', 89, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f72009a', 90, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f73009b', 88, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-
-INSERT INTO "tb_permission" (id,resid,role_func_id,roleid) VALUES ('297e0a7e6cbc8fa4016cbc91eb14005f', 33, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" (id,resid,role_func_id,roleid) VALUES ('297e0a7e6cbc8fa4016cbc91eb150061', 39, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" (id,resid,role_func_id,roleid) VALUES ('297e0a7e6cbc8fa4016cbc91eb150062', 34, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" (id,resid,role_func_id,roleid) VALUES ('297e0a7e6cbc8fa4016cbc91eb150063', 40, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" (id,resid,role_func_id,roleid) VALUES ('297e0a7e6cbc8fa4016cbc91eb150064', 37, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" (id,resid,role_func_id,roleid) VALUES ('297e0a7e6cbc8fa4016cbc91eb150065', 36, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" (id,resid,role_func_id,roleid) VALUES ('297e0a7e6cbc8fa4016cbc91eb150066', 35, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission" (id,resid,role_func_id,roleid) VALUES ('297e0a7e6cbca060016cbca3a983006a', 27, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0b30009', 16, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0b3000a', 17, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0b3000b', 19, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0b4000c', 20, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0b4000d', 21, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0b4000f', 6, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0b40010', 7, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0b50011', 8, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0b50012', 9, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0b50013', 22, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0bd0015', 4, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0bd0016', 5, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0be0017', 10, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0be0018', 11, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0be0019', 12, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0bf001a', 13, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0bf001b', 14, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0bf001c', 15, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0bf001e', 24, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0c00021', 23, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0c00022', 25, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0c00023', 31, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0c10024', 38, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0c10025', 42, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0c10026', 44, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0c10027', 86, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0c20029', 45, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0c2002a', 46, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0c2002b', 47, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0c3002c', 48, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0e3002d', 49, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0e3002f', 50, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0e30030', 52, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0e30031', 53, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c0e40033', 54, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c1030034', 55, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c1030035', 56, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c1040036', 57, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c1040038', 58, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c1040039', 59, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c104003a', 60, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c105003b', 65, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c105003e', 61, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c105003f', 62, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c1060040', 63, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c1060041', 64, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c1060042', 66, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c1060043', 67, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c1060044', 68, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c1070047', 71, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c1070048', 80, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c1070049', 81, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c108004b', 70, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c108004c', 74, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c109004d', 75, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c109004e', 76, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c109004f', 77, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c1090050', 78, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c1090052', 69, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c10a0053', 82, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c10a0054', 83, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c10a0055', 84, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c10a0058', 79, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c10b0059', 85, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c10b005a', 87, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c10b005c', 88, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c10b005d', 89, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c10c005e', 90, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c10c005f', 1, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c10c0060', 2, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c10c0061', 3, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('402890866bf9ea0d016bfde2c10c0062', 18, NULL, '402890866be40f77016be4c848b9002f');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('ff8080816aaf2ec3016aaf4edaac009f', 27, NULL, '2c9cab836a8af5d5016a8af6ece20000');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a330002', 16, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a330003', 17, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a340004', 19, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a340005', 20, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a340006', 21, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a340008', 6, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a350009', 7, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a35000a', 8, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a36000b', 9, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a36000c', 22, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a36000e', 4, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a37000f', 5, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a370010', 10, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a370011', 11, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a370012', 12, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a370013', 13, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a380014', 14, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a380015', 15, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a380017', 24, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a39001a', 23, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a39001b', 25, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a39001c', 31, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a39001d', 38, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a39001e', 42, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a39001f', 44, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a390020', 86, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3a0022', 45, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3a0023', 46, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3a0024', 47, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3a0025', 48, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3a0026', 49, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3b0028', 50, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3b0029', 52, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3b002a', 53, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3b002c', 54, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3b002d', 55, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3b002e', 56, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3c002f', 57, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3c0031', 58, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3c0032', 59, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3c0033', 60, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3c0034', 65, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3d0036', 1, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3d0037', 2, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3d003a', 91, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3e003c', 61, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3e003d', 62, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3e003e', 63, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3e003f', 64, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3e0040', 66, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3e0041', 67, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3f0042', 68, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a3f0045', 80, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a400046', 81, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a400047', 71, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a400049', 70, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a40004a', 74, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a41004b', 75, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a41004c', 76, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a41004d', 77, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a41004e', 78, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a410050', 82, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a410051', 83, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a420052', 84, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a420053', 69, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a420056', 79, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a420057', 85, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a420058', 87, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a43005a', 88, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a43005b', 89, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a43005c', 90, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a44005f', 28, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a440060', 29, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a440061', 30, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a450062', 32, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a460063', 33, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a460065', 34, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a460066', 35, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a460067', 36, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a460068', 37, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a470069', 39, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a47006a', 40, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a47006d', 51, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a47006e', 72, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a470070', 41, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a480071', 43, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a480073', 3, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ee5316d240e8e016d24101a480074', 18, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
@@ -311,8 +323,8 @@
INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (23, '', 15, '查询', '/device/index');
INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (25, '', 15, '添加页面', '/device/loadadd');
INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (31, '', 15, '添加', '/device/add');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (26, '', 11, '修改', '/param/sysparaupdate');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (27, '', 11, '查询', '/param/syspara');
+--INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (26, '', 11, '修改', '/param/sysparaupdate');
+--INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (27, '', 11, '查询', '/param/syspara');
INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (28, '', 12, '查询', '/param/businesspara');
INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (29, '', 12, '删除', '/param/deletebusinesspara');
INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (30, '', 12, '修改', '/param/businessparaupdate');
@@ -374,6 +386,17 @@
--INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (92, '', 1, '添加', '/custtype/add');
--INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (93, '', 1, '修改', '/custtype/update');
--INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (94, '', 1, '删除', '/custtype/delete');
+INSERT INTO "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (1, '', 8, '查询', '/devicecheck/index');
+INSERT INTO "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (2, '', 8, '审核', '/devicecheck/docheckdevice');
+INSERT INTO "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (3, '', 13, '查询', '/whitelist/index');
+INSERT INTO "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (18, '', 13, '添加', '/whitelist/addwhitelist');
+INSERT INTO "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (41, '', 18, '查询', '/whitelistcheck/checklist');
+INSERT INTO "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (43, '', 18, '审核', '/whitelistcheck/load4checkdetail');
+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_role" (roleid,createtime,editflag,lastsaved,rolecode,roledesc,rolename) VALUES ('d1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '20190101000000', 0, '', 'ROLE_ADMIN', '超级管理员', '超级管理员');
INSERT INTO "tb_role" (roleid,createtime,editflag,lastsaved,rolecode,roledesc,rolename) VALUES ('2c9cab836a8af5d5016a8af6ece20000', '20190506102639', 1, '', 'ROLE_ADMIN', '系统管理员', '系统管理员');
@@ -413,6 +436,13 @@
INSERT INTO "tb_role_function" (id,functionid,permissions,roleid) VALUES ('297e0a7e6bd65d7c016bd67401e10086', 28, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
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_role_function"("id", "functionid", "permissions", "roleid") VALUES ('297ee5316d2438ba016d243a95b400d6', 13, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('297ee5316d2438ba016d243a95b500d9', 18, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('297ee5316d2438ba016d243a95b600dc', 31, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('297ee5316d2446b3016d2447fc74006a', 11, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('297ee5316d24bd0e016d24c02e250039', 8, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+
+
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);
diff --git a/src/main/resources/templates/restaurant/device/index.html b/src/main/resources/templates/restaurant/device/index.html
index a63f279..ed3ff48 100644
--- a/src/main/resources/templates/restaurant/device/index.html
+++ b/src/main/resources/templates/restaurant/device/index.html
@@ -46,6 +46,27 @@
{field: 'factoryid', sort: true, width: 200, title: '设备厂商'},
{field: 'state', title: '状态', sort: true, width: 100, templet: '#device-dev-tpl-state'},
{
+ field: 'checkstatus',
+ title: '审核状态',
+ align: 'center',
+ width: 120,
+ sort: true,
+ templet: function (d) {
+ if ('uncheck' == d.checkstatus) {
+ return '<span class="layui-badge layui-bg-orange">待审核</span>'
+ } else if ('normal' == d.checkstatus) {
+ return '<span class="layui-badge layui-bg-green">有效</span>';
+ } else if ('fail' == d.checkstatus) {
+ return '<span class="layui-badge layui-bg-gray">无效</span>';
+ } else if ('reject' == d.checkstatus) {
+ return '<span class="layui-badge">驳回</span>';
+ } else {
+ return d.status;
+ }
+ }
+ },
+
+ {
field: 'id', align: 'center', title: '操作', fixed: 'right', templet: function (item) {
return ' <a class="layui-btn layui-btn-xs" lay-event="device-edit"><i class="layui-icon layui-icon-edit"></i>编辑</a> ';
}
diff --git a/src/main/resources/templates/restaurant/devicecheck/index.html b/src/main/resources/templates/restaurant/devicecheck/index.html
new file mode 100644
index 0000000..76ba2b0
--- /dev/null
+++ b/src/main/resources/templates/restaurant/devicecheck/index.html
@@ -0,0 +1,152 @@
+<div class="layui-card">
+ <div class="layui-card-header">
+ <h2 class="header-title">设备审核</h2>
+ <span class="layui-breadcrumb pull-right">
+ <a href="#">设备管理</a>
+ <a><cite>设备审核</cite></a>
+ </span>
+ </div>
+ <div class="layui-card-body">
+ <div class="layui-form toolbar">
+ 搜索:
+ <select id="search-devicecheck-check-status">
+ <option value=""> 选择设备审核状态</option>
+ <option value="uncheck" selected> 待审核</option>
+ <option value="normal"> 有效</option>
+ <option value="fail"> 无效</option>
+ <option value="reject"> 驳回</option>
+ </select> 
+ <button id="btn-search-devicecheck-check" class="layui-btn icon-btn" data-type="search"><i
+ class="layui-icon"></i>搜索
+ </button>
+ </div>
+ <table class="layui-table" id="devicecheckTable" lay-filter="devicecheckTable-filter"></table>
+ </div>
+</div>
+
+
+<!-- 表格操作列 -->
+<script type="text/html" id="deviceCheckToolbar">
+ <div class="layui-btn-container">
+ <button class="layui-btn layui-btn-sm" lay-event="doChecked">审核通过</button>
+ <button class="layui-btn layui-btn-sm" lay-event="doReject">审核驳回</button>
+ </div>
+</script>
+
+<script>
+ layui.use(['form', 'table', 'layer', 'admin', 'element'], function () {
+ var form = layui.form;
+ var table = layui.table;
+ var admin = layui.admin;
+
+ form.render("select");
+
+ table.render({
+ elem: '#devicecheckTable',
+ url: '[[@{/devicecheck/list}]]',
+ page: true,
+ toolbar:'#deviceCheckToolbar',
+ where:{
+ status:'uncheck'
+ },
+ cols: [
+ [
+ {type:'checkbox'},
+ {field: 'id', title: '终端编号', sort: true},
+ {field: 'devphyid', sort: true, width: 200, title: '设备物理id'},
+ {field: 'shopid', sort: true, width: 200, title: '商户id'},
+ {field: 'factoryid', sort: true, width: 200, title: '设备厂商'},
+ {field: 'state', title: '状态', sort: true, width: 100, templet: '#device-dev-tpl-state'},
+ {
+ field: 'checkstatus',
+ title: '审核状态',
+ align: 'center',
+ width: 120,
+ sort: true,
+ templet: function (d) {
+ if ('uncheck' == d.checkstatus) {
+ return '<span class="layui-badge layui-bg-orange">待审核</span>'
+ } else if ('normal' == d.checkstatus) {
+ return '<span class="layui-badge layui-bg-green">有效</span>';
+ } else if ('fail' == d.checkstatus) {
+ return '<span class="layui-badge layui-bg-gray">无效</span>';
+ } else if ('reject' == d.checkstatus) {
+ return '<span class="layui-badge">驳回</span>';
+ } else {
+ return d.status;
+ }
+ }
+ },
+ ]
+ ]
+ });
+
+ // 搜索按钮点击事件
+ $('#btn-search-devicecheck-check').click(function () {
+ var state = $("#search-devicecheck-check-status").val();
+ table.reload('devicecheckTable', {where: {status: state}, page: {curr: 1}});
+ });
+
+ table.on('toolbar(devicecheckTable-filter)', function(obj){
+ var checkStatus = table.checkStatus(obj.config.id);
+ var data = checkStatus.data;
+ if(data.length<=0){
+ layer.msg("请选择需要审核的设备", {icon: 2});
+ return;
+ }
+ var status;
+ switch(obj.event){
+ case 'doChecked':
+ status='normal';
+ break;
+ case 'doReject':
+ status='reject';
+ break;
+ };
+ doDeviceCheck(data,status);
+ });
+ function doDeviceCheck(data,status){
+ layer.load(2);
+ var token = $("meta[name='_csrf_token']").attr("value");
+ var deviceids = [];
+ for (var i = 0; i < data.length; i++) {
+ deviceids.push(data[i].id);
+ }
+ console.log(status);
+ console.log(deviceids);
+ // debugger
+ $.ajax({
+ type: "POST",
+ dataType: "json",
+ url: '[[@{/devicecheck/docheckdevice}]]',
+ data: {
+ "status": status,
+ "datalist[]": deviceids,
+ "_csrf": token
+ },
+ success: function (result) {
+ layer.closeAll('loading');
+ if (result.code == 200) {
+ layer.msg(result.msg, {icon: 1});
+ table.reload('devicecheckTable'); //刷新表格
+ admin.finishPopupCenter();
+ } else if (result.code == 401) {
+ layer.msg(result.msg, {icon: 2, time: 1500}, function () {
+ location.replace('[[@{/login}]]');
+ }, 1000);
+ return;
+ } else {
+ console.log('err:' + result.code);
+ layer.msg(result.msg, {icon: 2});
+ }
+ },
+ error: function (err) {
+ admin.errorBack(err);
+ }
+ });
+
+ }
+
+
+ });
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/restaurant/whitelist/checkdetail.html b/src/main/resources/templates/restaurant/whitelist/checkdetail.html
new file mode 100644
index 0000000..368ec94
--- /dev/null
+++ b/src/main/resources/templates/restaurant/whitelist/checkdetail.html
@@ -0,0 +1,94 @@
+<div id="whitelist-checkdetail-form" lay-filter="whitelist-checkdetail-form-filter" class="layui-form model-form" style="padding: 10px 25px;">
+ <input type="hidden" name="whitelistid" id="search-form-whitelist-checkdetail-whitelistid" th:value="${checkDetailwhitelistid}" />
+ <div class="layui-form-item">
+ <label class="layui-form-label" style="color: red;">审核意见</label>
+ <div class="layui-input-block">
+ <input type="radio" name="checktype" id="form-whitelist-checkdetail-pass" lay-filter="whitelist-checkdetail-filter" value="pass" title="通过" checked/>
+ <input type="radio" name="checktype" id="form-whitelist-checkdetail-reject" lay-filter="whitelist-checkdetail-filter" value="reject" title="驳回"/>
+ </div>
+ </div>
+
+ <div class="layui-form-item" id="form-whitelist-checkdetail-reason-div" style="display: none;">
+ <label class="layui-form-label">驳回原因</label>
+ <div class="layui-input-block">
+ <textarea name="reason" id="form-whitelist-checkdetail-reason" placeholder="请输入内容" class="layui-textarea"></textarea>
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <table class="layui-table" id="whitelistCheckdetailTable" lay-filter="whitelistCheckdetailTable-filter"></table>
+ </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" lay-filter="whitelist-checkdetail-form-submit" lay-submit>确认</button>
+ </div>
+</div>
+
+<script>
+ layui.use(['layer', 'admin', 'form', 'table'], function () {
+ var layer = layui.layer;
+ var admin = layui.admin;
+ var form = layui.form;
+ var table = layui.table;
+
+ // 表单提交事件
+ form.render("radio");
+ form.on('radio(whitelist-checkdetail-filter)', function (data) {
+ if ('pass' == data.value) {
+ $("#form-whitelist-checkdetail-reason-div").hide();
+ } else {
+ $("#form-whitelist-checkdetail-reason").val('');
+ $("#form-whitelist-checkdetail-reason-div").show();
+ }
+ });
+
+ // 渲染表格
+ var renderDetailTable = function (obj) {
+ table.render({
+ elem: '#whitelistCheckdetailTable',
+ url: '[[@{whitelistcheck/load4checkdetaillist}]]',
+ where: obj,
+ page: true,
+ size: 'sm',
+ height: 384,
+ cols: [
+ [
+ {field: 'cardno', title: '市民卡号', align: 'center'},
+ {field: 'username', title: '姓名', align: 'center'}
+ ]
+ ]
+ });
+ }
+ renderDetailTable({whitelistid: $("#search-form-whitelist-checkdetail-whitelistid").val()});
+
+ form.on('submit(whitelist-checkdetail-form-submit)', function (data) {
+ var vdata = data.field;
+ console.log(vdata);
+ if ('reject' == vdata.checktype) {
+ if (undefined == vdata.reason || "" == vdata.reason || "" == $.trim(vdata.reason)) {
+ layer.msg("请填写驳回原因", {icon: 2, time: 1500});
+ return;
+ }
+ }
+ vdata["_csrf"] = $("meta[name='_csrf_token']").attr("value");
+ admin.go('[[@{/whitelistcheck/checkdetail}]]', vdata, function (result) {
+ layer.closeAll('loading');
+ if (result.code == 200) {
+ layer.msg(result.msg, {icon: 1});
+ admin.finishPopupCenter();
+ } else if (result.code == 401) {
+ layer.msg(result.msg, {icon: 2, time: 1500}, function () {
+ location.replace('[[@{/login}]]');
+ }, 1000);
+ return;
+ } else {
+ console.log('err:' + result.code);
+ layer.msg(result.msg, {icon: 2});
+ }
+ }, function (err) {
+ admin.errorBack(err);
+ })
+ });
+ });
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/restaurant/whitelist/devbind.html b/src/main/resources/templates/restaurant/whitelist/devbind.html
new file mode 100644
index 0000000..3d8e000
--- /dev/null
+++ b/src/main/resources/templates/restaurant/whitelist/devbind.html
@@ -0,0 +1,120 @@
+<div class="layui-card">
+ <div class="layui-card-header">
+ <h2 class="header-title">白名单设备绑定</h2>
+ <span class="layui-breadcrumb pull-right">
+ <a href="#">白名单管理</a>
+ <a><cite>白名单设备绑定</cite></a>
+ </span>
+ </div>
+ <div class="layui-card-body">
+ <div class="layui-form toolbar">
+ 搜索:
+ <input id="search-whitelist-devbind-searchkey" class="layui-input search-input" maxlength="20" type="text" style="width: 300px;" placeholder="输入名称、设备名称或设备物理ID"/> 
+ <button id="btn-whitelist-devbind-search" class="layui-btn icon-btn" data-type="search"><i class="layui-icon"></i>搜索
+ </button>
+ <button id="btn-whitelist-devbind-add" class="layui-btn icon-btn" data-type="add"><i class="layui-icon"></i>新 增</button>
+ </div>
+ <table class="layui-table" id="whitelist-devbind-table" lay-filter="whitelist-devbind-table-filter"></table>
+ </div>
+</div>
+
+
+<!-- 表格操作列 -->
+<script type="text/html" id="whitelist-devbind-table-bar">
+ <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
+</script>
+
+<script>
+ layui.use(['form', 'table', 'layer', 'admin', 'element'], function () {
+ var form = layui.form;
+ var table = layui.table;
+ var admin = layui.admin;
+ // 渲染表格
+ table.render({
+ elem: '#whitelist-devbind-table',
+ url: '[[@{/whitelistbind/devbindlist}]]',
+ page: true,
+ cols: [
+ [
+ {field: 'deviceid', title: '设备编号', align: 'center', fixed: 'left', sort: true},
+ {field: 'devicename', title: '设备名称', align: 'center', fixed: 'left'},
+ {field: 'devphyid', title: '设备物理ID', align: 'center'},
+ {field: 'listname', title: '白名单名称', align: 'center', sort: true},
+ {
+ field: 'liststatus', title: '白名单状态', align: 'center', templet: function (d) {
+ if ('uncheck' == d.liststatus) {
+ return '<span class="layui-badge layui-bg-orange">待审核</span>'
+ } else if ('normal' == d.liststatus) {
+ return '<span class="layui-badge layui-bg-green">有效</span>';
+ } else if ('closed' == d.liststatus) {
+ return '<span class="layui-badge layui-bg-gray">无效</span>';
+ } else if ('reject' == d.liststatus) {
+ return '<span class="layui-badge">驳回</span>';
+ } else {
+ return d.liststatus;
+ }
+ }
+ },
+ {
+ field: 'createtime', title: '绑定时间', align: 'center', templet: function (d) {
+ return admin.formatDate(d.createtime);
+ }
+ },
+ {align: 'center', title: '操作', width: 100, toolbar: '#whitelist-devbind-table-bar', fixed: 'right'}
+ ]
+ ]
+ });
+
+ // 搜索按钮点击事件
+ $('#btn-whitelist-devbind-search').click(function () {
+ var searchkey = $("#search-whitelist-devbind-searchkey").val();
+ table.reload('whitelist-devbind-table', {where: {searchkey: searchkey}, page: {curr: 1}});
+ });
+
+ $('#btn-whitelist-devbind-add').click(function () {
+ admin.popupCenter({
+ title: "新增白名单绑定关系",
+ path: '[[@{/whitelistbind/load4binddev}]]',
+ area: '900px',
+ finish: function () {
+ table.reload('whitelist-devbind-table');
+ }
+ });
+ });
+
+ //监听单元格
+ table.on('tool(whitelist-devbind-table-filter)', function (obj) {
+ var data = obj.data;
+
+ if('del' == obj.event){
+ layer.confirm('确定要删除设备绑定的白名单【'+data.listname+'】吗?', {
+ btn: ['确定', '取消']
+ },function(){
+ layer.closeAll('dialog');
+ layer.load(2);
+ admin.go('[[@{/whitelistbind/deletedevbind}]]', {
+ id: data.id,
+ _csrf: $("meta[name='_csrf_token']").attr("value")
+ }, function (data) {
+ console.log(data.code);
+ layer.closeAll('loading');
+ if (data.code == 200) {
+ layer.msg(data.msg, {icon: 1});
+ } else if (data.code == 401) {
+ layer.msg(data.msg, {icon: 2, time: 1500}, function () {
+ location.replace('[[@{/login}]]');
+ }, 1000);
+ return;
+ } else {
+ layer.msg(data.msg, {icon: 2});
+ }
+ table.reload('whitelist-devbind-table');
+ }, function (err) {
+ admin.errorBack(err);
+ });
+ });
+ }
+ });
+
+ });
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/restaurant/whitelist/whitelist.html b/src/main/resources/templates/restaurant/whitelist/whitelist.html
new file mode 100644
index 0000000..1e07511
--- /dev/null
+++ b/src/main/resources/templates/restaurant/whitelist/whitelist.html
@@ -0,0 +1,156 @@
+<div class="layui-card">
+ <div class="layui-card-header">
+ <h2 class="header-title">就餐白名单维护</h2>
+ <span class="layui-breadcrumb pull-right">
+ <a href="#">就餐白名单管理</a>
+ <a><cite>就餐白名单维护</cite></a>
+ </span>
+ </div>
+ <div class="layui-card-body">
+ <div class="layui-form toolbar">
+ 搜索:
+ <input id="search-whitelist-listname" class="layui-input search-input" maxlength="20" type="text" placeholder="输入名称查询"/> 
+ <button id="btn-search-whitelist" class="layui-btn icon-btn" data-type="search"><i class="layui-icon"></i>搜索
+ </button>
+ <button id="btn-whitelist-add" class="layui-btn icon-btn" data-type="add"><i class="layui-icon"></i>新 增</button>
+ </div>
+ <table class="layui-table" id="whitelistTable" lay-filter="whitelistTable-filter"></table>
+ </div>
+</div>
+
+
+<!-- 表格操作列 -->
+<script type="text/html" id="whitelist-table-bar">
+ <a class="layui-btn layui-btn layui-btn-xs" lay-event="detail">查看名单</a>
+ {{# if(d.status=='uncheck' || d.status=='reject'){ }}
+ <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
+ {{# } else if(d.status=='normal'){ }}
+ <a class="layui-btn layui-btn-warm layui-btn-xs" lay-event="closed">关闭</a>
+ {{# } }}
+</script>
+
+<script>
+ layui.use(['form', 'table', 'layer', 'admin', 'element'], function () {
+ var form = layui.form;
+ var table = layui.table;
+ var admin = layui.admin;
+ var element = layui.element;
+
+ form.render("select");
+ // 渲染表格
+ table.render({
+ elem: '#whitelistTable',
+ url: '[[@{/whitelist/list}]]',
+ page: true,
+ cols: [
+ [
+ {field: 'listname', title: '白名单名称', align: 'center', fixed: 'left' },
+ {
+ field: 'status', title: '状态', align: 'center', width: 120, sort: true, templet: function (d) {
+ if ('uncheck' == d.status) {
+ return '<span class="layui-badge layui-bg-orange">待审核</span>'
+ } else if ('normal' == d.status) {
+ return '<span class="layui-badge layui-bg-green">有效</span>';
+ } else if ('closed' == d.status) {
+ return '<span class="layui-badge layui-bg-gray">无效</span>';
+ } else if ('reject' == d.status) {
+ return '<span class="layui-badge">驳回</span>';
+ } else {
+ return d.status;
+ }
+ }
+ },
+ {field: 'remark', title: '备注', align: 'center'},
+ {align: 'center', title: '操作', width: 250, toolbar: '#whitelist-table-bar', fixed: 'right'}
+ ]
+ ]
+ });
+
+ // 搜索按钮点击事件
+ $('#btn-search-whitelist').click(function () {
+ var listname = $("#search-whitelist-listname").val();
+ table.reload('whitelistTable', {where: { listname: listname}, page: {curr: 1}});
+ });
+
+ $('#btn-whitelist-add').click(function () {
+ admin.popupCenter({
+ title: "新增就餐白名单",
+ path: '[[@{/whitelist/load4addwhitelist}]]',
+ area: '500px',
+ finish: function () {
+ table.reload('whitelistTable');
+ }
+ });
+ });
+
+ //监听单元格
+ table.on('tool(whitelistTable-filter)', function (obj) {
+ var data = obj.data;
+ if('del' == obj.event){
+ layer.confirm('确定直接删除就餐白名单【'+data.listname+'】吗?', {
+ btn: ['确定', '取消']
+ },function(){
+ layer.load(2);
+ admin.go('[[@{/whitelist/deletelist}]]', {
+ whitelistid: data.whitelistid,
+ _csrf: $("meta[name='_csrf_token']").attr("value")
+ }, function (data) {
+ console.log(data.code);
+ layer.closeAll('loading');
+ if (data.code == 200) {
+ layer.msg(data.msg, {icon: 1});
+ } else if (data.code == 401) {
+ layer.msg(data.msg, {icon: 2, time: 1500}, function () {
+ location.replace('[[@{/login}]]');
+ }, 1000);
+ return;
+ } else {
+ layer.msg(data.msg, {icon: 2});
+ }
+ table.reload('whitelistTable');
+ }, function (err) {
+ admin.errorBack(err)
+ });
+ });
+
+ }else if('closed' == obj.event){
+ layer.confirm('确定关闭就餐白名单【'+data.listname+'】吗?', {
+ btn: ['确定', '取消']
+ },function(){
+ layer.load(2);
+ admin.go('[[@{/whitelist/closelist}]]', {
+ whitelistid: data.whitelistid,
+ _csrf: $("meta[name='_csrf_token']").attr("value")
+ }, function (data) {
+ console.log(data.code);
+ layer.closeAll('loading');
+ if (data.code == 200) {
+ layer.msg(data.msg, {icon: 1});
+ } else if (data.code == 401) {
+ layer.msg(data.msg, {icon: 2, time: 1500}, function () {
+ location.replace('[[@{/login}]]');
+ }, 1000);
+ return;
+ } else {
+ layer.msg(data.msg, {icon: 2});
+ }
+ table.reload('whitelistTable');
+ }, function (err) {
+ admin.errorBack(err)
+ });
+ });
+
+ }else if('detail' == obj.event){
+ admin.popupCenter({
+ title: "查看名单",
+ path: '[[@{/whitelist/load4detail}]]?whitelistid=' + data.whitelistid,
+ area: '600px',
+ finish: function () {
+ table.reload('whitelistTable');
+ }
+ });
+ }
+ });
+
+ });
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/restaurant/whitelist/whitelistbind.html b/src/main/resources/templates/restaurant/whitelist/whitelistbind.html
new file mode 100644
index 0000000..54caad0
--- /dev/null
+++ b/src/main/resources/templates/restaurant/whitelist/whitelistbind.html
@@ -0,0 +1,178 @@
+<div id="whitelist-devbind-form" lay-filter="whitelist-devbind-filter" class="layui-form model-form"
+ style="padding: 30px 25px 10px 25px;">
+ <div class="layui-form-item">
+ <div class="layui-input-inline" style="width: 450px;">
+ <label class="layui-form-label">白名单</label>
+ <div class="layui-input-block">
+ <select lay-verify="required" class="layui-select" id="whitelist-devbind-form-select-whitelistid">
+ <option th:each="rl:${whitelists}" th:value="${rl.whitelistid}"
+ th:text="${rl.listname}"></option>
+ </select> 
+ </div>
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label class="layui-form-label">选择设备</label>
+ <div class="layui-input-block" style="border: 1px solid #ddd;border-radius: 4px;padding: 10px;">
+ <div class="layui-card-body">
+ <div class="layui-form toolbar">
+ <div class="layui-input-inline">
+ <input id="search-whitelist-devbind-form-devgroupid" type="text"
+ lay-filter="search-whitelist-devbind-form-devgroupid-filter" autocomplete="off"
+ class="layui-input"/>
+ </div>
+ 设备:
+ <input id="search-whitelist-devbind-form-searchkey" type="text" class="layui-input search-input"
+ maxlength="20" style="width: 200px;" placeholder="输入设备名称或设备物理ID"/> 
+ <button id="btn-search-whitelist-devbind-form" class="layui-btn icon-btn"><i
+ class="layui-icon"></i>搜索
+ </button>
+ <button id="btn-reset-whitelist-devbind-form" class="layui-btn layui-btn-primary"><i
+ class="layui-icon"></i>清空
+ </button>
+
+ <table class="layui-table" id="whitelist-devbind-form-table"
+ lay-filter="whitelist-devbind-form-table-filter"></table>
+ </div>
+ </div>
+ </div>
+ </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" lay-filter="whitelist-devbind-form-submit" lay-submit id="submitbtn">保存</button>
+ </div>
+</div>
+
+<style type="text/css" id="whitelist-devbind-form-css">
+ .layui-form-item .layui-form-checkbox[lay-skin=primary] {
+ margin-top: 0;
+ }
+</style>
+
+<script>
+ layui.use(['layer', 'table', 'admin', 'form', 'treeSelect'], function () {
+ var layer = layui.layer;
+ var admin = layui.admin;
+ var form = layui.form;
+ var table = layui.table;
+ var treeSelect = layui.treeSelect;
+ var $ = layui.$
+
+ form.render("select");
+ treeSelect.render({
+ elem: '#search-whitelist-devbind-form-devgroupid',
+ data: '[[@{/whitelistbind/devgrouptree}]]',
+ type: 'get',
+ placeholder: '选择设备组',
+ search: false,
+ style: {
+ folder: {
+ enable: false
+ },
+ line: {
+ enable: true
+ }
+ },
+ // 点击回调
+ click: function (d) {
+ var treeNode = d.current;
+ console.log(treeNode);
+ return true;
+ },
+ success: function (d) {
+ console.log(d); // 加载完成后的回调函数
+ }
+ });
+
+ // 渲染表格
+ table.render({
+ elem: '#whitelist-devbind-form-table',
+ url: '[[@{/whitelistbind/devsearch}]]',
+ size: 'sm',
+ height: 350,
+ page: false,
+ cols: [
+ [
+ {type: 'checkbox', style: "#whitelist-devbind-form-css", fixed: 'left'},
+ {field: 'deviceid', title: '设备编号', align: 'center'},
+ {field: 'devicename', title: '设备名称', align: 'center'},
+ {field: 'devphyid', title: '设备物理ID', align: 'center'},
+ {field: 'devgroupname', title: '设备组', align: 'center'}
+ ]
+ ]
+ });
+
+ // 搜索按钮点击事件
+ $('#btn-search-whitelist-devbind-form').click(function () {
+ var whitelistid = $("#whitelist-devbind-form-select-whitelistid").val();
+ var devgroupid = $("#search-whitelist-devbind-form-devgroupid").val();
+ var searchkey = $("#search-whitelist-devbind-form-searchkey").val();
+ table.reload('whitelist-devbind-form-table', {
+ where: {
+ devgroupid: devgroupid,
+ searchkey: searchkey,
+ whitelistid: whitelistid
+ }
+ });
+ });
+
+ $("#btn-reset-whitelist-devbind-form").click(function () {
+ $("#search-whitelist-devbind-form-devgroupid").val("");
+ $("#search-whitelist-devbind-form-searchkey").val("");
+ treeSelect.revokeNode('search-whitelist-devbind-form-devgroupid-filter');
+ });
+
+ form.on('submit(whitelist-devbind-form-submit)', function (el) {
+ var whitelistid = $("#whitelist-devbind-form-select-whitelistid").val();
+ var checkStatus = table.checkStatus('whitelist-devbind-form-table');
+ var data = checkStatus.data;
+ var deviceids = [];
+ if ("" == whitelistid) {
+ layer.msg("请选择白名单", {icon: 2, time: 1500});
+ return;
+ }
+ for (var i = 0; i < data.length; i++) {
+ deviceids.push(data[i].deviceid);
+ }
+ if (deviceids.length < 1) {
+ layer.msg("请选择设备", {icon: 2, time: 1500});
+ return;
+ }
+ debugger
+ console.log(whitelistid, deviceids);
+ layer.load(2);
+ var token = $("meta[name='_csrf_token']").attr("value");
+ $.ajax({
+ type: "POST",
+ dataType: "json",
+ url: '[[@{/whitelistbind/dobinddev}]]',
+ data: {
+ "whitelistid": whitelistid,
+ "deviceid[]": deviceids,
+ "_csrf": token
+ },
+ success: function (result) {
+ layer.closeAll('loading');
+ if (result.code == 200) {
+ layer.msg(result.msg, {icon: 1});
+ table.reload('whitelist-devbind-form-table'); //刷新表格
+ admin.finishPopupCenter();
+ } else if (result.code == 401) {
+ layer.msg(result.msg, {icon: 2, time: 1500}, function () {
+ location.replace('[[@{/login}]]');
+ }, 1000);
+ return;
+ } else {
+ console.log('err:' + result.code);
+ layer.msg(result.msg, {icon: 2});
+ }
+ },
+ error: function (err) {
+ admin.errorBack(err);
+ }
+ });
+ });
+ });
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/restaurant/whitelist/whitelistcheck.html b/src/main/resources/templates/restaurant/whitelist/whitelistcheck.html
new file mode 100644
index 0000000..d0136ed
--- /dev/null
+++ b/src/main/resources/templates/restaurant/whitelist/whitelistcheck.html
@@ -0,0 +1,111 @@
+<div class="layui-card">
+ <div class="layui-card-header">
+ <h2 class="header-title">就餐白名单审核</h2>
+ <span class="layui-breadcrumb pull-right">
+ <a href="#">就餐白名单管理</a>
+ <a><cite>就餐白名单审核</cite></a>
+ </span>
+ </div>
+ <div class="layui-card-body">
+ <div class="layui-form toolbar">
+ 搜索:
+ <select id="search-whitelist-check-status">
+ <option value=""> 选择就餐白名单状态</option>
+ <option value="uncheck" selected> 待审核</option>
+ <option value="normal"> 有效</option>
+ <option value="closed"> 无效</option>
+ <option value="reject"> 驳回</option>
+ </select> 
+ <button id="btn-search-whitelist-check" class="layui-btn icon-btn" data-type="search"><i
+ class="layui-icon"></i>搜索
+ </button>
+ </div>
+ <table class="layui-table" id="whitelistcheckTable" lay-filter="whitelistcheckTable-filter"></table>
+ </div>
+</div>
+
+
+<!-- 表格操作列 -->
+<script type="text/html" id="whitelist-check-table-bar">
+ {{# if(d.status =='uncheck'){ }}
+ <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="check">审核</a>
+ {{# } else { }}
+ <a class="layui-btn layui-btn-disabled layui-btn-xs">审核</a>
+ {{# } }}
+</script>
+
+<script>
+ layui.use(['form', 'table', 'layer', 'admin', 'element'], function () {
+ var form = layui.form;
+ var table = layui.table;
+ var admin = layui.admin;
+
+ form.render("select");
+
+ var renderCheckRuleTable = function(obj){
+ table.render({
+ elem: '#whitelistcheckTable',
+ url: '[[@{/whitelistcheck/checklist}]]',
+ where: obj,
+ page: true,
+ cols: [
+ [
+ {field: 'listname', title: '餐白名單名称', align: 'center', fixed: 'left'},
+ {
+ field: 'status',
+ title: '状态',
+ align: 'center',
+ width: 120,
+ sort: true,
+ templet: function (d) {
+ if ('uncheck' == d.status) {
+ return '<span class="layui-badge layui-bg-orange">待审核</span>'
+ } else if ('normal' == d.status) {
+ return '<span class="layui-badge layui-bg-green">有效</span>';
+ } else if ('closed' == d.status) {
+ return '<span class="layui-badge layui-bg-gray">无效</span>';
+ } else if ('reject' == d.status) {
+ return '<span class="layui-badge">驳回</span>';
+ } else {
+ return d.status;
+ }
+ }
+ },
+ {
+ align: 'center',
+ title: '操作',
+ width: 250,
+ toolbar: '#whitelist-check-table-bar',
+ fixed: 'right'
+ }
+ ]
+ ]
+ });
+ }
+ renderCheckRuleTable({status: "uncheck"});
+
+ // 搜索按钮点击事件
+ $('#btn-search-whitelist-check').click(function () {
+ var state = $("#search-whitelist-check-status").val();
+ table.reload('whitelistcheckTable', {where: {status: state}, page: {curr: 1}});
+ });
+
+ //监听单元格
+ table.on('tool(whitelistcheckTable-filter)', function (obj) {
+ var data = obj.data;
+
+ if('check' == obj.event){
+ admin.popupCenter({
+ title: "查看名单",
+ path: '[[@{/whitelistcheck/load4checkdetail}]]?whitelistid=' + data.whitelistid,
+ area: '600px',
+ finish: function () {
+ table.reload('whitelistcheckTable', {where: {status: ""}, page: {curr: 1}});
+ }
+ });
+
+ }
+ });
+
+ });
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/restaurant/whitelist/whitelistdetail.html b/src/main/resources/templates/restaurant/whitelist/whitelistdetail.html
new file mode 100644
index 0000000..ad45b92
--- /dev/null
+++ b/src/main/resources/templates/restaurant/whitelist/whitelistdetail.html
@@ -0,0 +1,48 @@
+<div class="layui-card">
+ <div class="layui-card-body">
+ <div class="layui-form toolbar">
+ 搜索:
+ <input type="hidden" id="search-whitelist-detail-whitelistid" th:value="${whitelistDetailid}" />
+ <input id="search-whitelist-detail-searchkey" class="layui-input search-input" maxlength="20" type="text" style="width: 200px;"
+ placeholder="输入市民卡号或姓名查询"/> 
+ <button id="btn-search-whitelist-detail" class="layui-btn icon-btn" data-type="search"><i
+ class="layui-icon"></i>搜索
+ </button>
+ </div>
+ <table class="layui-table" id="whitelistDetailTable" lay-filter="whitelistDetailTable-filter"></table>
+ </div>
+</div>
+<script>
+ layui.use(['form', 'table', 'layer', 'admin', 'element'], function () {
+ var form = layui.form;
+ var table = layui.table;
+ var admin = layui.admin;
+ var element = layui.element;
+
+ // 渲染表格
+ var renderDetailTable = function (obj) {
+ table.render({
+ elem: '#whitelistDetailTable',
+ url: '[[@{/whitelist/load4detaillist}]]',
+ where: obj,
+ page: true,
+ height: 472,
+ cols: [
+ [
+ {field: 'cardno', title: '市民卡号', align: 'center'},
+ {field: 'username', title: '姓名', align: 'center'}
+ ]
+ ]
+ });
+ }
+ renderDetailTable({whitelistid: $("#search-whitelist-detail-whitelistid").val()});
+
+ // 搜索按钮点击事件
+ $('#btn-search-whitelist-detail').click(function () {
+ var whitelistid = $("#search-whitelist-detail-whitelistid").val();
+ var searchkey = $("#search-whitelist-detail-searchkey").val();
+ table.reload('whitelistDetailTable', {where: {whitelistid: whitelistid, searchkey: searchkey}, page: {curr: 1}});
+ });
+
+ });
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/restaurant/whitelist/whitelistform.html b/src/main/resources/templates/restaurant/whitelist/whitelistform.html
new file mode 100644
index 0000000..23e4133
--- /dev/null
+++ b/src/main/resources/templates/restaurant/whitelist/whitelistform.html
@@ -0,0 +1,136 @@
+<div id="whitelist-form" lay-filter="whitelist-form-filter" class="layui-form model-form" style="padding: 10px 25px;">
+
+ <div class="layui-form-item">
+ <label class="layui-form-label"><span style="color: red">* </span>白名单名称</label>
+ <div class="layui-input-block">
+ <input type="text" class="layui-input" name="listname" id="form-whitelist-listname" maxlength="20" style="width: 90%;"
+ autocomplete="off" lay-verify="required|listname"/>
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label class="layui-form-label"><span style="color: red">* </span>白名单对象</label>
+ <div class="layui-input-inline" style="width: auto;">
+ <button type="button" class="layui-btn upoadfile-btn" >
+ <i class="layui-icon"></i>上传名单
+ <input type="file" name="file" id="form-whitelist-records" style="width:auto;"/>
+ </button>
+ </div>
+ <div class="layui-input-inline" style="padding-top: 15px;">
+ <a th:href="@{/discountrule/downloadexcel}" style="color: blue;text-decoration: none;cursor: pointer;">下载名单模板</a>
+ </div>
+ </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" lay-filter="whitelist-form-submit" lay-submit id="submitbtn">保存</button>
+ </div>
+</div>
+
+<script>
+ layui.use(['layer', 'admin', 'form', 'laydate', 'upload'], function () {
+ var layer = layui.layer;
+ var admin = layui.admin;
+ var form = layui.form;
+ var laydate = layui.laydate;
+ var upload = layui.upload;
+
+
+ // 表单提交事件
+ form.verify({
+ "listname": function (e) {
+ if(""==e|| ""==$.trim(e)){
+ return "白名单名称不能为空";
+ }
+/*
+ var msg = "";
+ $.ajax({
+ type: "GET",
+ url: '[[@{/whitelist/checklistname}]]',
+ async: false, //同步提交。不设置则默认异步,异步的话,最后执行ajax
+ data: {
+ listname: e,
+ ruleid: $("#form-whitelist-ruleid").val()
+ },
+ success: function (result) {
+ if (result.code != 200) {
+ msg = result.msg;
+ }
+ },
+ error: function (error) {
+ msg = "请求服务器校验账号失败";
+ }
+ });
+ if (msg != "") {
+ return msg;
+ }*/
+ }
+ });
+
+ form.on('submit(whitelist-form-submit)', function (data) {
+ debugger
+ var token = $("meta[name='_csrf_token']").attr("value");
+ var vdata = data.field;
+
+ var formData = new FormData();
+ formData.append("listname", vdata.listname);
+
+ var flag = false;
+ var files = $('#form-whitelist-records').prop('files');
+ for (var i = 0; i < files.length; i++) {
+ var filename = files[i].name;
+ var suffix = filename.substr(filename.lastIndexOf("."));
+ if ('.xls' != suffix && '.xlsx' != suffix) {
+ layer.msg("请选择excel文件", {icon: 2, time: 1500});
+ return;
+ }
+ formData.append('file', files[i]);
+ flag = true;
+ }
+ if (!flag) {
+ layer.msg("请选择名单", {icon: 2, time: 1500});
+ return;
+ }
+ layer.load(2);
+ $.ajax({
+ type: "POST",
+ url: '[[@{/whitelist/addwhitelist}]]',
+ dataType: 'json',
+ processData:false,
+ contentType: false,
+ data: formData,
+ headers: {
+ 'Accept': 'application/json',
+ 'X-CSRF-TOKEN': token,
+ },
+ success: function (result) {
+ layer.closeAll('loading');
+ if (result.code == 200) {
+ layer.msg(result.msg, {icon: 1, time: 1500});
+ admin.finishPopupCenter();
+ } else if (result.code == 401) {
+ layer.msg(result.msg, {icon: 2, time: 1500}, function () {
+ location.replace('[[@{/login}]]');
+ }, 1000);
+ return;
+ } else if(result.code == 599){
+ //自定义错误
+ layer.open({
+ type: 0,
+ title: "错误信息",
+ icon: 2,
+ area: ['600px', '400px'],
+ content: result.msg
+ });
+
+ } else {
+ layer.msg(result.msg, {icon: 2, time: 1500});
+ }
+ },
+ error: function (err) {
+ admin.errorBack(err);
+ }
+ });
+ });
+ });
+</script>
\ No newline at end of file