餐补人员添加方式修改,由外部创建名单
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 22db50d..f05e285 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
@@ -2,27 +2,27 @@
import com.supwisdom.dlpay.api.bean.*;
import com.supwisdom.dlpay.api.service.PosPayService;
+import com.supwisdom.dlpay.api.util.ErrorCode;
import com.supwisdom.dlpay.framework.dao.BusinessparaDao;
import com.supwisdom.dlpay.framework.domain.TBusinesspara;
import com.supwisdom.dlpay.framework.domain.TShopSettlement;
-import com.supwisdom.dlpay.framework.util.DateUtil;
-import com.supwisdom.dlpay.api.util.ErrorCode;
import com.supwisdom.dlpay.framework.service.SystemUtilService;
+import com.supwisdom.dlpay.framework.util.DateUtil;
import com.supwisdom.dlpay.framework.util.MoneyUtil;
import com.supwisdom.dlpay.framework.util.StringUtil;
import com.supwisdom.dlpay.paysdk.proxy.CitizenCardPayProxy;
import com.supwisdom.dlpay.paysdk.proxy.ConsumePropxy;
import com.supwisdom.dlpay.paysdk.proxy.TransactionProxy;
+import com.supwisdom.dlpay.paysdk.proxy.UserProxy;
import com.supwisdom.dlpay.restaurant.bean.DiscountBean;
import com.supwisdom.dlpay.restaurant.bean.ManageFeeAmtBean;
import com.supwisdom.dlpay.restaurant.bean.SalesAmtBean;
-import com.supwisdom.dlpay.restaurant.dao.DevparaBindDao;
-import com.supwisdom.dlpay.restaurant.dao.DiscountDetailDao;
-import com.supwisdom.dlpay.restaurant.dao.DiscountRuleDao;
-import com.supwisdom.dlpay.restaurant.dao.MealTypeDao;
+import com.supwisdom.dlpay.restaurant.dao.*;
import com.supwisdom.dlpay.restaurant.domain.*;
import com.supwisdom.dlpay.restaurant.service.*;
import com.supwisdom.dlpay.restaurant.util.RestaurantConstant;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -33,6 +33,9 @@
@Service
public class PosPayServiceImpl implements PosPayService {
+ private static final Logger logger = LoggerFactory.getLogger(PosPayServiceImpl.class);
+
+
@Autowired
private DeviceService deviceService;
@Autowired
@@ -65,6 +68,14 @@
private TransactionProxy transactionProxy;
@Autowired
private ConsumePropxy consumePropxy;
+ @Autowired
+ private UserProxy userProxy;
+ @Autowired
+ private CustomerDao customerDao;
+ @Autowired
+ private CardDao cardDao;
+ @Autowired
+ private CardverDao cardverDao;
@Override
@@ -140,8 +151,10 @@
resp.setRetmsg(apiResp.getRetmsg());
return resp;
}
+
String cardno;
- String cardphyid;
+ TCustomer customer;
+ TCard tCard;
if (RestaurantConstant.TRANSMODE_CODE.equals(req.getTranstype())) {
DoorQRCodeParam qrparam = new DoorQRCodeParam();
@@ -149,39 +162,118 @@
DoorQrcodeResponse qrcoderesp = consumePropxy.qrcodequery(qrparam);
if (qrcoderesp.getRetcode() == 0) {
cardno = qrcoderesp.getCitycardno();
- cardphyid = qrcoderesp.getCardphyid();
} else {
- resp.setRetcode(qrcoderesp.getRetcode().toString());
- resp.setRetmsg(qrcoderesp.getRetmsg());
+ resp.setRetcode(ErrorCode.ERRIF_CARD_NOTEXIST);
+ resp.setRetmsg("解析二维码失败");
return resp;
}
} else {
cardno = req.getCardno();
- cardphyid = req.getCardphyid();
}
- TCard tCard = cardService.getCardByCardno(cardno);
- if (null == tCard) {
- resp.setRetcode(ErrorCode.ERRIF_CARD_NOTEXIST);
- resp.setRetmsg("卡号[" + req.getCardno() + "]不存在");
- return resp;
- }
- if (!RestaurantConstant.STATUS_CARD_NORMAL.equals(tCard.getStatus())) {
+ TBusinesspara ignoreflag=businessparaDao.findByParakey("customer.ignore");
+ if(null!=(ignoreflag)&&"true".equalsIgnoreCase(ignoreflag.getParaval())){
+ tCard = cardService.getCardByCardno(cardno);
+ customer=customerService.getCustomerByCardno(cardno);
+ if(null==tCard||null==customer){
+ logger.info("用户未在用户表中");
+ QueryUserParam param=new QueryUserParam();
+ param.setCitizencardno(cardno);
+ UserInforResponse usrresp=userProxy.querybycardno(param);
+
+ logger.info(usrresp.getRetcode()+"|||"+usrresp.getRetmsg());
+ if(usrresp.getRetcode()==0){
+
+ /*CustomerSaveBean customer=new CustomerSaveBean();
+ customer.setCusttype(2);
+ customer.setCardno(usrresp.getCardno());
+ customer.setCardphyid(usrresp.getCardphyid());
+ customer.setBankcardno(usrresp.getBankcardno());
+ customer.setPhone(usrresp.getPhone());
+ customer.setCustname(usrresp.getUsername());
+ customer.setIdno(usrresp.getIdno());
+ customer.setIdtype(usrresp.getIdtype());
+ customer.setSavecardflag(0);
+ customer.setStatus(RestaurantConstant.STATUS_CARD_NORMAL);
+ customer.setCheckstatus(RestaurantConstant.STATUS_CHECKSTATUS_NORMAL);
+ customerService.saveCustomer(customer);*/
+ customer=new TCustomer();
+ customer.setCusttype(2);
+ customer.setLastsaved(DateUtil.getNow("yyyyMMddHHmmss"));
+ customer.setPhone(usrresp.getPhone());
+ customer.setCustname(usrresp.getUsername());
+ customer.setIdno(usrresp.getIdno());
+ customer.setIdtype(usrresp.getIdtype());
+ customer.setStatus(RestaurantConstant.STATUS_CARD_NORMAL);
+ customer.setCheckstatus(RestaurantConstant.STATUS_CHECKSTATUS_NORMAL);
+
+ customer = customerDao.save(customer);
+ if(null!=customer){
+ String cardverno = systemUtilService.getCardverno();
+ tCard=new TCard();
+ tCard.setCardno(cardno);
+ tCard.setOpendate(DateUtil.getNow("yyyyMMdd"));
+ tCard.setCustid(customer.getCustid());
+ tCard.setStatus(RestaurantConstant.STATUS_CARD_NORMAL);
+ tCard.setTransstatus(RestaurantConstant.STATUS_CARD_NORMAL);
+ if(null!=usrresp.getCardphyid()){
+ tCard.setCardphyid(usrresp.getCardphyid());
+ }
+ tCard.setCardverno(cardverno);
+ tCard.setBankcardno(usrresp.getBankcardno());
+ tCard.setExpiredate(usrresp.getExpiredate());
+ tCard = cardDao.save(tCard);
+
+ TCardver tCardver = new TCardver();
+ tCardver.setAccdate(DateUtil.getNow("yyyyMMdd"));
+ tCardver.setCardno(tCard.getCardno());
+ tCardver.setCardphyid(tCard.getCardphyid());
+ tCardver.setAdderflag(1);
+ tCardver.setOptype(RestaurantConstant.OPTYPE_CARD_OPEN);
+ tCardver.setStatus(RestaurantConstant.STATUS_CARD_NORMAL);
+ tCardver.setCustid(tCard.getCustid());
+ tCardver.setCreatetime(DateUtil.getNow("yyyyMMddHHmmss"));
+ tCardver.setCardverno(cardverno);
+ cardverDao.save(tCardver);
+ }else{
+ resp.setRetcode(ErrorCode.ERRIF_CARD_NOTEXIST);
+ resp.setRetmsg("保存客户出错");
+ return resp;
+ }
+
+ }else{
+ resp.setRetcode(ErrorCode.ERRIF_CARD_NOTEXIST);
+ resp.setRetmsg("卡号[" + cardno + "]未在核心平台查询到");
+ return resp;
+ }
+ }
+ }else{
+
+ tCard = cardService.getCardByCardno(cardno);
+ if (null == tCard) {
+ resp.setRetcode(ErrorCode.ERRIF_CARD_NOTEXIST);
+ resp.setRetmsg("卡号[" + cardno + "]不存在");
+ return resp;
+ }
+ /* if (!RestaurantConstant.STATUS_CARD_NORMAL.equals(tCard.getStatus())) {
resp.setRetcode(ErrorCode.ERRIF_CARD_DISABLED);
resp.setRetmsg("卡号[" + req.getCardno() + "]已注销");
return resp;
+ }*/
+ if (!RestaurantConstant.STATUS_CARD_NORMAL.equals(tCard.getTransstatus())) {
+ resp.setRetmsg("卡号[" + cardno + "]状态异常;");
+ resp.setRetcode(ErrorCode.ERRIF_CARD_DISABLED);
+ return resp;
+ }
+ customer = customerService.getCustomerByCustid(tCard.getCustid());
+ if (null == customer) {
+ resp.setRetcode(ErrorCode.ERRIF_POSDTL_NOTEXIST);
+ resp.setRetmsg("卡对应客户不存在");
+ return resp;
+ }
+
}
- if (!RestaurantConstant.STATUS_CARD_NORMAL.equals(tCard.getTransstatus())) {
- resp.setRetmsg("卡号[" + req.getCardno() + "]状态异常;");
- resp.setRetcode(ErrorCode.ERRIF_CARD_DISABLED);
- return resp;
- }
- TCustomer customer = customerService.getCustomerByCustid(tCard.getCustid());
- if (null == customer) {
- resp.setRetcode(ErrorCode.ERRIF_POSDTL_NOTEXIST);
- resp.setRetmsg("卡对应客户不存在");
- return resp;
- }
+
Double managefee = 0.0;
TTransDtl odtl = transDtlService.getPosTransdtl(tDevice.getId(), req.getTermseqno(), req.getTermdate());
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TBusinesspara.java b/src/main/java/com/supwisdom/dlpay/framework/domain/TBusinesspara.java
index 6c6691e..6602f8a 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/domain/TBusinesspara.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/domain/TBusinesspara.java
@@ -9,7 +9,7 @@
@Table(name = "TB_BUSINESSPARA")
public class TBusinesspara {
@Id
- @Column(name="PARAKEY", nullable = false, length = 60)
+ @Column(name="PARAKEY", nullable = false, length = 200)
private String parakey;
@Column(name="PARAVAL", length = 1000)
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/bean/CustomerListSearchBean.java b/src/main/java/com/supwisdom/dlpay/restaurant/bean/CustomerListSearchBean.java
new file mode 100644
index 0000000..eb7b167
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/bean/CustomerListSearchBean.java
@@ -0,0 +1,24 @@
+package com.supwisdom.dlpay.restaurant.bean;
+
+import com.supwisdom.dlpay.system.bean.PageBean;
+
+public class CustomerListSearchBean extends PageBean {
+ private String listname;
+ private String listid;
+
+ public String getListname() {
+ return listname;
+ }
+
+ public void setListname(String listname) {
+ this.listname = listname;
+ }
+
+ public String getListid() {
+ return listid;
+ }
+
+ public void setListid(String listid) {
+ this.listid = listid;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/bean/CustomerListSelectBean.java b/src/main/java/com/supwisdom/dlpay/restaurant/bean/CustomerListSelectBean.java
new file mode 100644
index 0000000..b71ad09
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/bean/CustomerListSelectBean.java
@@ -0,0 +1,22 @@
+package com.supwisdom.dlpay.restaurant.bean;
+
+public class CustomerListSelectBean {
+ private String listid;
+ private String listname;
+
+ public String getListid() {
+ return listid;
+ }
+
+ public void setListid(String listid) {
+ this.listid = listid;
+ }
+
+ public String getListname() {
+ return listname;
+ }
+
+ public void setListname(String listname) {
+ this.listname = listname;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/bean/CustomerSaveBean.java b/src/main/java/com/supwisdom/dlpay/restaurant/bean/CustomerSaveBean.java
index 6d50341..d4d4f97 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/bean/CustomerSaveBean.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/bean/CustomerSaveBean.java
@@ -16,6 +16,7 @@
private String cardno;
private String cardphyid;
private String bankcardno;
+ private String checkstatus;
private Integer savecardflag;
public String getCustid() {
@@ -131,6 +132,14 @@
this.savecardflag = savecardflag;
}
+ public String getCheckstatus() {
+ return checkstatus;
+ }
+
+ public void setCheckstatus(String checkstatus) {
+ this.checkstatus = checkstatus;
+ }
+
@Override
public String toString() {
return "CustomerSaveBean{" +
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/controller/CustomerController.java b/src/main/java/com/supwisdom/dlpay/restaurant/controller/CustomerController.java
index 8497b6f..42cc705 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/controller/CustomerController.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/controller/CustomerController.java
@@ -13,6 +13,7 @@
import com.supwisdom.dlpay.restaurant.domain.TCustomer;
import com.supwisdom.dlpay.restaurant.service.CustTypeService;
import com.supwisdom.dlpay.restaurant.service.CustomerService;
+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;
@@ -88,6 +89,8 @@
public JsonResult add(@RequestBody CustomerSaveBean customer) {
if (customer != null) {
customer.setSavecardflag(0);
+ customer.setStatus(RestaurantConstant.STATUS_CARD_NORMAL);
+ customer.setCheckstatus(RestaurantConstant.STATUS_CHECKSTATUS_UNCHECK);
return customerService.saveCustomer(customer);
} else {
return JsonResult.error("添加失败");
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/controller/CustomerListController.java b/src/main/java/com/supwisdom/dlpay/restaurant/controller/CustomerListController.java
new file mode 100644
index 0000000..74ae4b6
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/controller/CustomerListController.java
@@ -0,0 +1,183 @@
+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.PageResult;
+import com.supwisdom.dlpay.framework.util.StringUtil;
+import com.supwisdom.dlpay.framework.util.WebConstant;
+import com.supwisdom.dlpay.restaurant.bean.AreaSearchBean;
+import com.supwisdom.dlpay.restaurant.bean.CustomerListSearchBean;
+import com.supwisdom.dlpay.restaurant.domain.TArea;
+import com.supwisdom.dlpay.restaurant.domain.TCustomerList;
+import com.supwisdom.dlpay.restaurant.service.CustomerListService;
+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.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Controller
+@RequestMapping("/customerlist")
+public class CustomerListController {
+
+ @Autowired
+ private CustomerListService customerListService;
+
+ @RequestMapping("/index")
+ public String indexView(ModelMap model) {
+
+ return "restaurant/customerlist/index";
+ }
+
+ @RequestMapping("/list")
+ @PreAuthorize("hasPermission('/customerlist/index','')")
+ @ResponseBody
+ public PageResult<TCustomerList> getDataList(@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;
+ CustomerListSearchBean searchBean = new CustomerListSearchBean();
+ searchBean.setPageNo(pageNo);
+ searchBean.setListname(searchKey);
+ searchBean.setPageSize(pageSize);
+ return customerListService.getCustomerListByKey(searchBean);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return new PageResult<>(99, "系统查询错误");
+ }
+ }
+
+ @GetMapping("/checklistid")
+ @ResponseBody
+ public JsonResult checklistid(@RequestParam("listid") String listid) {
+ try {
+ if (StringUtil.isEmpty(listid)) {
+ return JsonResult.error("编号不能为空");
+ }
+ if (!customerListService.checkListidExist(listid.trim())) {
+ return JsonResult.error("名单名称已存在");
+ } else {
+ return JsonResult.ok("success");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ return JsonResult.error("系统处理异常").put("exception", e);
+ }
+ }
+
+ @GetMapping("/loadadd")
+ public String loadadd(Model model) {
+ return "restaurant/customerlist/form";
+ }
+
+
+
+ @PostMapping("/addcustomerlist")
+ @ResponseBody
+ public JsonResult editwhitelist(@RequestParam("listid") String listid,
+ @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 (customerListService.saveCustomerlist(listid.trim(),listname.trim(), file)) {
+ 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);
+ }
+ }
+
+ @PostMapping("/deletelist")
+ @ResponseBody
+ public JsonResult delete(@RequestParam String listid) {
+ try {
+ if (null == listid) {
+ return JsonResult.error("参数传递错误");
+ }
+ if (customerListService.deleteCustomerlist(listid)) {
+ return JsonResult.ok("删除成功!");
+ } else {
+ return JsonResult.error("删除失败!");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ return JsonResult.error("系统处理异常").put("exception", e);
+ }
+ }
+
+ @GetMapping("/load4detail")
+ public String load4ListDetails(@RequestParam("listid") Integer listid, Model model) {
+ model.addAttribute("listDetailid", listid);
+ return "restaurant/customerlist/listdetail";
+ }
+
+ @GetMapping("/load4detaillist")
+ @ResponseBody
+ public PageResult<TCustomerList> searchwhitelists(@RequestParam("page") Integer pageNo,
+ @RequestParam("limit") Integer pageSize,
+ @RequestParam("listid") String listid,
+ @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 customerListService.getlistDetails(searchkey, listid, pageNo, pageSize);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return new PageResult<>(99, "系统查询错误");
+ }
+ }
+
+
+
+
+ /*
+
+ @PostMapping("/add")
+ @PreAuthorize("hasPermission('/area/add','')")
+ @ResponseBody
+ public JsonResult add(@RequestBody TArea area) {
+ System.out.println(area);
+ if (area != null) {
+ return areaService.saveArea(area);
+ } else {
+ return JsonResult.error("添加失败");
+ }
+ }
+
+ @PostMapping("/delete")
+ @PreAuthorize("hasPermission('/area/delete','')")
+ @ResponseBody
+ public JsonResult delfunc(@RequestParam Integer id) {
+ return areaService.deleteArea(id);
+ }
+*/
+}
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 fca1b27..e62d925 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceDiscountRuleController.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceDiscountRuleController.java
@@ -4,11 +4,13 @@
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.CustomerListSelectBean;
import com.supwisdom.dlpay.restaurant.bean.DevparaBinddevShowBean;
import com.supwisdom.dlpay.restaurant.bean.DiscountRuleBindShowBean;
import com.supwisdom.dlpay.restaurant.bean.DiscountRuleShowBean;
import com.supwisdom.dlpay.restaurant.domain.TDiscountDetail;
import com.supwisdom.dlpay.restaurant.domain.TDiscountDevbind;
+import com.supwisdom.dlpay.restaurant.service.CustomerListService;
import com.supwisdom.dlpay.restaurant.service.DeviceDiscountRuleService;
import com.supwisdom.dlpay.restaurant.service.DeviceParamService;
import com.supwisdom.dlpay.restaurant.util.RestaurantConstant;
@@ -32,6 +34,8 @@
private DeviceDiscountRuleService deviceDiscountRuleService;
@Autowired
private DeviceParamService deviceParamService;
+ @Autowired
+ private CustomerListService customerListService;
@GetMapping("/discountrule/index")
public String DiscountRuleView() {
@@ -100,7 +104,9 @@
@GetMapping("/discountrule/load4addrule")
@PreAuthorize("hasPermission('/discountrule/load4addrule','')")
- public String load4addDiscountRule() {
+ public String load4addDiscountRule(Model model) {
+ List<CustomerListSelectBean> bean = customerListService.getCustomerListSelectBean();
+ model.addAttribute("listbeans", bean);
return "restaurant/discountrule/ruleform";
}
@@ -133,7 +139,8 @@
@RequestParam("endtime") String endtime,
@RequestParam("amount") String amount,
@RequestParam("limitcnt") Integer limitcnt,
- @RequestParam(value = "file", required = false) MultipartFile file,
+ @RequestParam("listid") String listid,
+ // @RequestParam(value = "file", required = false) MultipartFile file,
@AuthenticationPrincipal UserDetails operUser) {
try {
if (StringUtil.isEmpty(rulename)
@@ -148,7 +155,7 @@
return JsonResult.error("金额不能为负");
} else if (limitcnt < 1) {
return JsonResult.error("使用次数必须大于零");
- } else if (null == file) {
+ } else if (StringUtil.isEmpty(listid) ) {
return JsonResult.error("请选择餐补名单");
}
@@ -157,7 +164,7 @@
return JsonResult.error("登录过期,请重新登录");
}
- if (deviceDiscountRuleService.saveNewDiscountRule(rulename.trim(), ruletype, DateUtil.unParseToDateFormat(starttime), DateUtil.unParseToDateFormat(endtime), Double.parseDouble(amount), limitcnt, file, oper)) {
+ if (deviceDiscountRuleService.saveNewDiscountRule(rulename.trim(), ruletype, DateUtil.unParseToDateFormat(starttime), DateUtil.unParseToDateFormat(endtime), Double.parseDouble(amount), limitcnt, listid, oper)) {
return JsonResult.ok("新增成功");
} else {
return JsonResult.error("新增失败");
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/controller/WhitelistController.java b/src/main/java/com/supwisdom/dlpay/restaurant/controller/WhitelistController.java
index 4b618cb..4cc73c7 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/controller/WhitelistController.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/controller/WhitelistController.java
@@ -362,7 +362,7 @@
try {
String[] title = {"市民卡号", "姓名"}; //表头
String[][] infos = {{"19045632", "张三"}}; // 示例内容
- ExportExcel.queryexcel("白名单导入模板", title, infos, request, response);
+ ExportExcel.queryexcel("名单导入模板", title, infos, request, response);
} catch (Exception e) {
e.printStackTrace();
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/dao/AreaDao.java b/src/main/java/com/supwisdom/dlpay/restaurant/dao/AreaDao.java
index b24da89..1bd0430 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/dao/AreaDao.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/dao/AreaDao.java
@@ -10,7 +10,6 @@
@Repository
public interface AreaDao extends JpaRepository<TArea, Integer> {
-
Page<TArea> findAllByAreanameContaining(String name, Pageable pageable);
TArea findByAreaname(String areaname);
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/dao/CardDao.java b/src/main/java/com/supwisdom/dlpay/restaurant/dao/CardDao.java
index 1f672d8..846bf24 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/dao/CardDao.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/dao/CardDao.java
@@ -25,6 +25,8 @@
Integer countByCardno(String cardno);
+ TCard findByCardno(String cardno);
+
Integer countByBankcardno(String bankcardno);
List<TCard> findAllByCardnoAndCardphyidAndStatus(String cardno,String cardphyid,String status);
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/dao/CustomerListDao.java b/src/main/java/com/supwisdom/dlpay/restaurant/dao/CustomerListDao.java
new file mode 100644
index 0000000..1e6b262
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/dao/CustomerListDao.java
@@ -0,0 +1,26 @@
+package com.supwisdom.dlpay.restaurant.dao;
+
+
+import com.supwisdom.dlpay.restaurant.bean.CustomerListSelectBean;
+import com.supwisdom.dlpay.restaurant.domain.TCustomerList;
+import com.supwisdom.dlpay.restaurant.domain.TCustomerListPk;
+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 CustomerListDao extends JpaRepository<TCustomerList, TCustomerListPk> {
+
+
+ @Query("select count(t.listid) from TCustomerList t where t.listid=?1 ")
+ long checkListidExists(String listid);
+
+ void deleteAllByListid(String listid);
+
+ List<TCustomerList> findAllByListid(String listid);
+
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCard.java b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCard.java
index 03686d8..6091237 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCard.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCard.java
@@ -2,6 +2,7 @@
import javax.persistence.*;
+import javax.validation.constraints.NotNull;
@Entity
@Table(name = "TB_CARD")
@@ -9,7 +10,7 @@
private String cardno;
private String custid;
private String cardphyid;
- private String status;
+ private String status;
private String transstatus;
private String opendate;
private String closedate;
@@ -17,9 +18,18 @@
private String expiredate;
private String bankcardno;
-
@Id
- @Column(name = "cardno", nullable = false, length =32)
+ @NotNull
+ @Column(name = "bankcardno" ,length = 20 ,unique = true)
+ public String getBankcardno() {
+ return bankcardno;
+ }
+
+ public void setBankcardno(String bankcardno) {
+ this.bankcardno = bankcardno;
+ }
+
+ @Column(name = "cardno", length =32,unique = true)
public String getCardno() {
return cardno;
}
@@ -98,12 +108,4 @@
this.expiredate = expiredate;
}
- @Column(name = "bankcardno" ,length = 20)
- public String getBankcardno() {
- return bankcardno;
- }
-
- public void setBankcardno(String bankcardno) {
- this.bankcardno = bankcardno;
- }
-}
+ }
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCustomerList.java b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCustomerList.java
new file mode 100644
index 0000000..807b813
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCustomerList.java
@@ -0,0 +1,65 @@
+package com.supwisdom.dlpay.restaurant.domain;
+
+
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.*;
+import java.io.Serializable;
+
+@Entity
+@Table(name = "TB_CUSTOMERLIST")
+@IdClass(TCustomerListPk.class)
+public class TCustomerList implements Serializable {
+ private String listid;
+ private String listname;
+ private String cardno;
+ private String custname;
+ private String lastsaved;
+
+ @Id
+ @Column(name = "listid", nullable = false, length = 12)
+ public String getListid() {
+ return listid;
+ }
+
+ public void setListid(String listid) {
+ this.listid = listid;
+ }
+
+ @Column(name = "listname", length = 50)
+ public String getListname() {
+ return listname;
+ }
+
+ public void setListname(String listname) {
+ this.listname = listname;
+ }
+
+ @Id
+ @Column(name = "cardno", length = 10)
+ public String getCardno() {
+ return cardno;
+ }
+
+ public void setCardno(String cardno) {
+ this.cardno = cardno;
+ }
+
+ @Column(name = "custname", length = 100)
+ public String getCustname() {
+ return custname;
+ }
+
+ public void setCustname(String custname) {
+ this.custname = custname;
+ }
+
+ @Column(name = "lastsaved", length = 14)
+ public String getLastsaved() {
+ return lastsaved;
+ }
+
+ public void setLastsaved(String lastsaved) {
+ this.lastsaved = lastsaved;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCustomerListPk.java b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCustomerListPk.java
new file mode 100644
index 0000000..861e0dc
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCustomerListPk.java
@@ -0,0 +1,39 @@
+package com.supwisdom.dlpay.restaurant.domain;
+
+import javax.persistence.Column;
+import javax.persistence.Id;
+import java.io.Serializable;
+
+public class TCustomerListPk implements Serializable {
+ @Id
+ @Column(name = "listid", nullable = false, precision = 9)
+ private String listid;
+
+ @Id
+ @Column(name = "cardno", nullable = false, length = 10)
+ private String cardno;
+
+ public TCustomerListPk() {
+ }
+
+ public TCustomerListPk(String listid, String cardno) {
+ this.listid = listid;
+ this.cardno = cardno;
+ }
+
+ public String getListid() {
+ return listid;
+ }
+
+ public void setListid(String listid) {
+ this.listid = listid;
+ }
+
+ public String getCardno() {
+ return cardno;
+ }
+
+ public void setCardno(String cardno) {
+ this.cardno = cardno;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TMealsDtl.java b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TMealsDtl.java
new file mode 100644
index 0000000..85ea576
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TMealsDtl.java
@@ -0,0 +1,117 @@
+package com.supwisdom.dlpay.restaurant.domain;
+
+
+import javax.persistence.*;
+import javax.validation.constraints.NotNull;
+
+@Entity
+@Table(name = "TB_MEALSDTL",
+ indexes = {@Index(name = "mealsdtl_idx",
+ columnList = "checkdate,mealtype,deptcode,devgroupid,deviceid")})
+public class TMealsDtl {
+ private String id;
+ private String checkdate;
+ private String mealtype;
+ private String deptcode;
+ private String deviceid;
+ private Integer devgroupid;
+ private Double amount;
+ private Integer count;
+ private Double feeamount;
+ private Integer feecount;
+
+ @Id
+ @SequenceGenerator(name = "mealsdtl_id", sequenceName = "SEQ_MEALSDTL", allocationSize = 1)
+ @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "mealsdtl_id")
+ @NotNull
+ @Column(name = "id", unique = true, length = 15)
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+ @NotNull
+ @Column(name = "checkdate", length = 8)
+ public String getCheckdate() {
+ return checkdate;
+ }
+
+ public void setCheckdate(String checkdate) {
+ this.checkdate = checkdate;
+ }
+ @NotNull
+ @Column(name = "mealtype", length = 10)
+ public String getMealtype() {
+ return mealtype;
+ }
+
+ public void setMealtype(String mealtype) {
+ this.mealtype = mealtype;
+ }
+ @NotNull
+ @Column(name = "deptcode", length =9)
+ public String getDeptcode() {
+ return deptcode;
+ }
+
+ public void setDeptcode(String deptcode) {
+ this.deptcode = deptcode;
+ }
+ @NotNull
+ @Column(name = "devgroupid", length = 9)
+ public Integer getDevgroupid() {
+ return devgroupid;
+ }
+
+ public void setDevgroupid(Integer devgroupid) {
+ this.devgroupid = devgroupid;
+ }
+
+ @Column(name = "amount", precision = 15)
+ public Double getAmount() {
+ return amount;
+ }
+
+ public void setAmount(Double amount) {
+ this.amount = amount;
+ }
+
+ @Column(name = "count",length = 9)
+ public Integer getCount() {
+ return count;
+ }
+
+ public void setCount(Integer count) {
+ this.count = count;
+ }
+
+ @Column(name = "feeamount", precision = 15)
+ public Double getFeeamount() {
+ return feeamount;
+ }
+
+ public void setFeeamount(Double feeamount) {
+ this.feeamount = feeamount;
+ }
+
+
+ @Column(name = "feecount",length = 9)
+ public Integer getFeecount() {
+ return feecount;
+ }
+
+ public void setFeecount(Integer feecount) {
+ this.feecount = feecount;
+ }
+
+ @Column(name = "deviceid",length = 9)
+ public String getDeviceid() {
+ return deviceid;
+ }
+
+ public void setDeviceid(String deviceid) {
+ this.deviceid = deviceid;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/CustomerListService.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/CustomerListService.java
new file mode 100644
index 0000000..cee081a
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/CustomerListService.java
@@ -0,0 +1,40 @@
+package com.supwisdom.dlpay.restaurant.service;
+
+import com.supwisdom.dlpay.framework.util.PageResult;
+import com.supwisdom.dlpay.restaurant.bean.CustomerListSearchBean;
+import com.supwisdom.dlpay.restaurant.bean.CustomerListSelectBean;
+import com.supwisdom.dlpay.restaurant.domain.TCustomerList;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+public interface CustomerListService {
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
+ PageResult<TCustomerList> getCustomerListByKey(CustomerListSearchBean param);
+
+
+ @Transactional(rollbackFor = Exception.class, readOnly = true)
+ boolean checkListidExist(String listid);
+
+ @Transactional(rollbackFor = Exception.class)
+ boolean saveCustomerlist(String listid,String listname, MultipartFile file) throws Exception;
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+ boolean deleteCustomerlist(String listid);
+
+ @Transactional(rollbackFor = Exception.class, readOnly = true)
+ PageResult<TCustomerList> getlistDetails(String searchkey, String listid, int pageNo, int pageSize);
+
+
+ @Transactional(rollbackFor = Exception.class, readOnly = true)
+ List<CustomerListSelectBean> getCustomerListSelectBean();
+
+ @Transactional(rollbackFor = Exception.class, readOnly = true)
+ List<TCustomerList> getCustomerListByListid(String listid);
+
+
+
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/DeviceDiscountRuleService.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/DeviceDiscountRuleService.java
index 7ddd9cc..bf3baef 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/DeviceDiscountRuleService.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/DeviceDiscountRuleService.java
@@ -26,7 +26,7 @@
@Transactional(rollbackFor = Exception.class)
boolean saveNewDiscountRule(String rulename, String ruletype, String starttime,
- String endtime, Double amount, Integer limitcnt, MultipartFile file, TOperator oper) throws Exception;
+ String endtime, Double amount, Integer limitcnt, String listid, TOperator oper) throws Exception;
@Transactional(rollbackFor = Exception.class, readOnly = true)
PageResult<TDiscountDetail> getDiscountRuleDetails(String searchkey, int ruleid, int pageNo, int pageSize);
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CardServiceImpl.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CardServiceImpl.java
index 5e64630..76c57f2 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CardServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CardServiceImpl.java
@@ -49,10 +49,9 @@
@Override
public TCard getCardByCardno(String cardno) {
- Optional<TCard> card=cardDao.findById(cardno);
- if(card.isPresent()){
- return card.get();
-
+ TCard card=cardDao.findByCardno(cardno);
+ if(null!=card){
+ return card;
}
return null;
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CustomerListServiceImpl.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CustomerListServiceImpl.java
new file mode 100644
index 0000000..7b2c77f
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CustomerListServiceImpl.java
@@ -0,0 +1,249 @@
+package com.supwisdom.dlpay.restaurant.service.impl;
+
+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.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.AreaSearchBean;
+import com.supwisdom.dlpay.restaurant.bean.CustomerListSearchBean;
+import com.supwisdom.dlpay.restaurant.bean.CustomerListSelectBean;
+import com.supwisdom.dlpay.restaurant.dao.AreaDao;
+import com.supwisdom.dlpay.restaurant.dao.CustomerListDao;
+import com.supwisdom.dlpay.restaurant.domain.TArea;
+import com.supwisdom.dlpay.restaurant.domain.TCard;
+import com.supwisdom.dlpay.restaurant.domain.TCustomer;
+import com.supwisdom.dlpay.restaurant.domain.TCustomerList;
+import com.supwisdom.dlpay.restaurant.service.AreaService;
+import com.supwisdom.dlpay.restaurant.service.CardService;
+import com.supwisdom.dlpay.restaurant.service.CustomerListService;
+import com.supwisdom.dlpay.restaurant.service.CustomerService;
+import com.supwisdom.dlpay.restaurant.util.RestaurantConstant;
+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 CustomerListServiceImpl implements CustomerListService {
+ @Autowired
+ private CustomerListDao customerListDao;
+ @Autowired
+ private SystemUtilService systemUtilService;
+ @Autowired
+ private CustomerService customerService;
+ @Autowired
+ private CardService cardService;
+
+ @PersistenceContext
+ private EntityManager entityManager;
+
+ @Override
+ public PageResult<TCustomerList> getCustomerListByKey(CustomerListSearchBean param) {
+ StringBuffer querySql = new StringBuffer("select t.listid,t.listname,t.lastsaved from " +
+ "Tb_CustomerList t where 1=1 ");
+ StringBuffer countSql = new StringBuffer("select count(*) as cnt from " +
+ "(select distinct listid from Tb_CustomerList t where 1=1 ");
+ if (!StringUtil.isEmpty(param.getListname())) {
+ querySql.append(" and t.custname like :str ");
+ countSql.append(" and t.custname like :str ");
+ }
+
+ querySql.append(" group by t.listid,t.listname,t.lastsaved order by t.listname ");
+ countSql.append(") b");
+ Query query = entityManager.createNativeQuery(querySql.toString());
+ Query countQuery = entityManager.createNativeQuery(countSql.toString());
+ if (!StringUtil.isEmpty(param.getListname())) {
+ query.setParameter("str", "%" + param.getListname().trim() + "%");
+ countQuery.setParameter("str", "%" + param.getListname().trim() + "%");
+ }
+
+ query.setFirstResult((param.getPageNo() - 1) * param.getPageSize());
+ query.setMaxResults(param.getPageSize()); //分页显示
+ query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.aliasToBean(TCustomerList.class));
+ List<TCustomerList> list = query.getResultList();
+ BigInteger count = (BigInteger) countQuery.getSingleResult();
+ return new PageResult<>(count.longValue(), list);
+ }
+
+ @Override
+ public boolean checkListidExist(String listid) {
+ long cnt=customerListDao.checkListidExists(listid);
+ if(cnt>0){
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public boolean saveCustomerlist(String listid,String listname, MultipartFile file) throws Exception {
+
+
+ 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("名单模板表头不能修改,且必须包含数据!");
+ }
+ String systime = systemUtilService.getSysdatetime().getHostdatetime();
+
+ 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 {
+ TCustomerList list=new TCustomerList();
+ list.setListname(listname);
+ list.setLastsaved(systime);
+ list.setListid(listid);
+ list.setCardno(card.getCardno());
+ list.setCustname(customer.getCustname());
+ customerListDao.save(list); //保存明细
+ 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 boolean deleteCustomerlist(String listid) {
+ customerListDao.deleteAllByListid(listid);
+ return true;
+ }
+
+ @Override
+ public PageResult<TCustomerList> getlistDetails(String searchkey, String listid, int pageNo, int pageSize) {
+ StringBuffer querySql = new StringBuffer("from TCustomerList t where t.listid=:listid ");
+ StringBuffer countSql = new StringBuffer("select count(t.listid) as cnt from TCustomerList t where t.listid=:listid ");
+ if (!StringUtil.isEmpty(searchkey)) {
+ querySql.append(" and (t.cardno like :str or t.custname like :str) ");
+ countSql.append(" and (t.cardno like :str or t.custname like :str) ");
+ }
+ querySql.append(" order by t.cardno ");
+ Query query = entityManager.createQuery(querySql.toString());
+ Query countQuery = entityManager.createQuery(countSql.toString());
+ query.setParameter("listid", listid);
+ countQuery.setParameter("listid", listid);
+ if (!StringUtil.isEmpty(searchkey)) {
+ query.setParameter("str", "%" + searchkey.trim() + "%");
+ countQuery.setParameter("str", "%" + searchkey.trim() + "%");
+ }
+ query.setFirstResult((pageNo - 1) * pageSize);
+ query.setMaxResults(pageSize); //分页显示
+ List<TCustomerList> list = query.getResultList();
+ Long count = (Long) countQuery.getSingleResult();
+ return new PageResult<>(count.longValue(), list);
+ }
+
+ @Override
+ public List<CustomerListSelectBean> getCustomerListSelectBean() {
+ StringBuffer querySql = new StringBuffer("select t.listname,t.listid from tb_customerlist t group by t.listname,t.listid ");
+
+ Query query = entityManager.createNativeQuery(querySql.toString());
+
+ query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.aliasToBean(CustomerListSelectBean.class));
+ List<CustomerListSelectBean> list = query.getResultList();
+
+ if (!StringUtil.isEmpty(list)) {
+ return list;
+
+ }
+
+ return new ArrayList<>();
+ }
+
+ @Override
+ public List<TCustomerList> getCustomerListByListid(String listid) {
+ List<TCustomerList> list=customerListDao.findAllByListid(listid);
+ if(list.size()>0){
+ return list;
+ }
+ return new ArrayList<>();
+ }
+
+
+}
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 05ebb8b..413c222 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
@@ -106,8 +106,8 @@
cus.setIdno(customer.getIdno());
cus.setIdtype(customer.getIdtype());
cus.setBatchno(customer.getBatchno());
- cus.setStatus(RestaurantConstant.STATUS_CARD_NORMAL);
- cus.setCheckstatus(RestaurantConstant.STATUS_CHECKSTATUS_UNCHECK);
+ cus.setStatus(customer.getStatus());
+ cus.setCheckstatus(customer.getCheckstatus());
cus = customerDao.save(cus);
if (null != cus) {
if(0==customer.getSavecardflag()){
@@ -128,7 +128,9 @@
card.setCustid(cus.getCustid());
card.setStatus(RestaurantConstant.STATUS_CARD_NORMAL);
card.setTransstatus(RestaurantConstant.STATUS_CARD_NORMAL);
- // card.setCardphyid(customer.getCardphyid());
+ if(null!=customer.getCardphyid()){
+ card.setCardphyid(customer.getCardphyid());
+ }
card.setCardverno(cardverno);
card.setBankcardno(customer.getBankcardno());
card.setExpiredate("");
@@ -223,12 +225,13 @@
}
if(cardDao.countByCardno((String) data[i][1]) > 0){
d.setSavecardflag(1);
- msg = msg + "第" + i+1 + "行,卡号已存在,请手动添加市名卡号和银行卡号。<br/>";
+ msg = msg + "第" + i + "行,卡号已存在,请手动添加市名卡号和银行卡号。<br/>";
}else{
d.setSavecardflag(0);
}
d.setBatchno(batchno);
-
+ d.setStatus(RestaurantConstant.STATUS_CARD_NORMAL);
+ d.setCheckstatus(RestaurantConstant.STATUS_CHECKSTATUS_UNCHECK);
saveCustomer(d);
successCnt += 1;
}
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 96f7b99..39a7177 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.CustomerListService;
import com.supwisdom.dlpay.restaurant.service.CustomerService;
import com.supwisdom.dlpay.restaurant.service.DeviceDiscountRuleService;
import com.supwisdom.dlpay.restaurant.util.RestaurantConstant;
@@ -52,6 +53,9 @@
private DeviceDao deviceDao;
@Autowired
private CardDao cardDao;
+ @Autowired
+ private CustomerListService customerListService;
+
@Autowired
private CustomerService customerService;
@@ -155,7 +159,6 @@
}
-
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') " +
"and a.cardno=:cardno and ((:starttime between b.starttime and b.endtime) or (:endtime between b.starttime and b.endtime) or (b.starttime>:starttime and b.endtime<:endtime)) ");
@@ -171,7 +174,7 @@
@Override
public boolean saveNewDiscountRule(String rulename, String ruletype, String starttime,
- String endtime, Double amount, Integer limitcnt, MultipartFile file, TOperator oper) throws Exception {
+ String endtime, Double amount, Integer limitcnt, String listid, TOperator oper) throws Exception {
TDiscountRule rule = new TDiscountRule();
if (discountRuleDao.checkRulenameExists(rulename) > 0) {
throw new WebCheckException("餐补名称已经存在!");
@@ -191,7 +194,7 @@
rule.setVerno(1);
rule = discountRuleDao.save(rule);
- String filename = file.getOriginalFilename();
+ /*String filename = file.getOriginalFilename();
if (!filename.endsWith(".xls") && !filename.endsWith(".xlsx")) {
throw new WebCheckException("文件格式错误,请选择excel文件");
}
@@ -208,9 +211,14 @@
} catch (Exception e) {
e.printStackTrace();
throw new WebCheckException("模板格式错误,请重新下载模板");
+ }*/
+
+ List<TCustomerList> clist = customerListService.getCustomerListByListid(listid);
+
+ if (clist.size() < 1) {
+ throw new WebCheckException("人员名单未查询到");
}
-
-
+/*
int index_cardno = -1;
int index_name = -1;
Object[] titleRow = excelData.get(0)[0]; //sheet1表头
@@ -225,57 +233,51 @@
}
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 += ",市民卡号重复!";
- } else if (null != customer && checkRuleTimeError(starttime, endtime, cardno, customer.getCustid())) {
- msg += ",市民卡号[" + cardno + "]存在规则时间段冲突!";
- }
-
-
- if (!StringUtil.isEmpty(msg)) {
- errmsgList.add("第" + (n + 1) + "行数据错误" + msg);
- } else {
- TDiscountDetail detail = new TDiscountDetail();
- detail.setRuleid(rule.getRuleid());
- detail.setCardno(cardno);
- detail.setUsername(name);
- detail.setUserid(customer.getCustid() + "");
- detail.setStatus("uncheck");
- detail.setLastsaved(systime);
- discountDetailDao.save(detail); //保存明细
-
- successCardnos.add(cardno);
+ for (int i = 0; i < clist.size(); i++) {
+ String msg = "";
+ TCustomerList list = clist.get(i);
+ // Object[] row = excelData.get(0)[n];
+ String cardno = list.getCardno();
+ String name = list.getCustname();
+ 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 += ",市民卡号重复!";
+ } else if (null != customer && checkRuleTimeError(starttime, endtime, cardno, customer.getCustid())) {
+ msg += ",市民卡号[" + cardno + "]存在规则时间段冲突!";
+ }
- } catch (Exception e) {
- e.printStackTrace();
- throw new WebCheckException("模板格式有误,请确保卡号为文本格式");
+
+ if (!StringUtil.isEmpty(msg)) {
+ errmsgList.add("用户" + list.getCustname() + "数据错误" + msg);
+ } else {
+ TDiscountDetail detail = new TDiscountDetail();
+ detail.setRuleid(rule.getRuleid());
+ detail.setCardno(cardno);
+ detail.setUsername(name);
+ detail.setUserid(customer.getCustid() + "");
+ detail.setStatus("uncheck");
+ detail.setLastsaved(systime);
+ discountDetailDao.save(detail); //保存明细
+ successCardnos.add(cardno);
+ }
}
if (!StringUtil.isEmpty(errmsgList)) {
@@ -397,7 +399,7 @@
}
@Override
- public DiscountBean getCustomerDiscount(Integer deviceid, String termtime,String custid) {
+ public DiscountBean getCustomerDiscount(Integer deviceid, String termtime, String custid) {
StringBuffer sql = new StringBuffer("select d.limitcnt,d.ruletype,d.amount,d.ruleid from tb_discount_rule d " +
"left join tb_discount_devbind t on t.ruleid=d.ruleid " +
"left join tb_discount_detail c on t.ruleid=c.ruleid " +
@@ -410,7 +412,7 @@
query.setParameter("custid", custid);
query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.aliasToBean(DiscountBean.class));
List<DiscountBean> list = query.getResultList();
- if(list.size()>0){
+ if (list.size() > 0) {
return list.get(0);
}
return null;
diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql
index 8c00c84..90a9ab5 100644
--- a/src/main/resources/data.sql
+++ b/src/main/resources/data.sql
@@ -121,7 +121,8 @@
INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (18, NULL, 1, NULL, '', '/whitelistcheck/index', '就餐白名单审核', 2, 11);
INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (31, NULL, 1, NULL, '', '/whitelistbind/devbind', '就餐白名单设备绑定', 3, 11);
INSERT INTO "tb_function" (id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (11, NULL, 0, NULL, 'layui-icon-util', '#', '就餐白名单管理', 7, -1);
-INSERT INTO tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (32, NULL, 1, NULL, '', '/shopsettlement/index', '商户管理', 2, 10);
+INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (32, NULL, 1, NULL, '', '/shopsettlement/index', '商户管理', 2, 10);
+INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (34, NULL, 1, NULL, '', '/customerlist/index', '餐补人员名单管理', 1, 24);
@@ -303,6 +304,7 @@
INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ea57c6e26421b016e264517d40044', 93, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ea57c6e26421b016e264517d40045', 73, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ea57c6e26421b016e264517d40046', 92, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission"("id", "resid", "role_func_id", "roleid") VALUES ('297ea57c6e86d617016e86daac05004a', 94, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
@@ -400,9 +402,10 @@
INSERT INTO "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (51, '', 31, '查询', '/whitelistbind/devbind');
INSERT INTO "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (72, '', 31, '绑定', '/whitelistbind/dobinddev');
-INSERT INTO "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (73, '''', 32, ''查询'', ''/shopsettlement/index'');
-INSERT INTO "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (92, '''', 32, ''添加'', ''/shopsettlement/loadadd'');
-INSERT INTO "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (93, '''', 32, ''删除'', ''/shopsettlement/delete'');
+INSERT INTO "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (73, '', 32, '查询', '/shopsettlement/index');
+INSERT INTO "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (92, '', 32, '添加', '/shopsettlement/loadadd');
+INSERT INTO "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (93, '', 32, '删除', '/shopsettlement/delete');
+INSERT INTO "tb_resource"("id", "code", "function_id", "name", "uri") VALUES (94, '', 34, '查询', '/customerlist/index');
@@ -450,6 +453,7 @@
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_role_function"("id", "functionid", "permissions", "roleid") VALUES ('297ea57c6e86d617016e86daac040049', 34, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
INSERT INTO "tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('297ea57c6e26421b016e264517d30043', 32, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
@@ -490,6 +494,7 @@
insert into "tb_businesspara" (parakey,paraval) values('upgrade_version','posa711dali-1.');
INSERT INTO "tb_businesspara" (parakey,paraval) VALUES ('payapi.appid', '200001');
INSERT INTO "tb_businesspara" (parakey,paraval) VALUES ('payapi.secret', 'dc1d26c0d43e442588092c8d45c21bce');
+INSERT INTO "tb_businesspara" (parakey,paraval) VALUES ('customer.ignore', 'false');
CREATE SEQUENCE SEQ_REFNO
diff --git a/src/main/resources/templates/restaurant/customerlist/form.html b/src/main/resources/templates/restaurant/customerlist/form.html
new file mode 100644
index 0000000..4ede5ea
--- /dev/null
+++ b/src/main/resources/templates/restaurant/customerlist/form.html
@@ -0,0 +1,149 @@
+<div id="customerlist-form" lay-filter="customerlist-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="listid" id="form-customerlist-listid" maxlength="10" style="width: 90%;"
+ autocomplete="off" lay-verify="required|listid"/>
+ </div>
+ </div>
+
+ <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-customerlist-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-customerlist-records" style="width:auto;"/>
+ </button>
+ </div>
+ <div class="layui-input-inline" style="padding-top: 15px;">
+ <a th:href="@{/whitelist/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="customerlist-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 "名单名称不能为空";
+ }
+ },
+ "listid": function (e) {
+ if(""==e|| ""==$.trim(e)){
+ return "名单编号不能为空";
+ }
+
+ var msg = "";
+ $.ajax({
+ type: "GET",
+ url: '[[@{/customerlist/checklistid}]]',
+ async: false, //同步提交。不设置则默认异步,异步的话,最后执行ajax
+ data: {
+ listid: $("#form-customerlist-listid").val()
+ },
+ success: function (result) {
+ if (result.code != 200) {
+ msg = result.msg;
+ }
+ },
+ error: function (error) {
+ msg = "请求服务器校验账号失败";
+ }
+ });
+ if (msg != "") {
+ return msg;
+ }
+ }
+ });
+
+ form.on('submit(customerlist-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);
+ formData.append("listid",vdata.listid);
+
+ var flag = false;
+ var files = $('#form-customerlist-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: '[[@{/customerlist/addcustomerlist}]]',
+ 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
diff --git a/src/main/resources/templates/restaurant/customerlist/index.html b/src/main/resources/templates/restaurant/customerlist/index.html
new file mode 100644
index 0000000..fb29192
--- /dev/null
+++ b/src/main/resources/templates/restaurant/customerlist/index.html
@@ -0,0 +1,139 @@
+<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="customerlist-search-value" class="layui-input search-input" type="text" placeholder="输入名单名称"/> 
+ <button id="customerlist-btn-search" class="layui-btn icon-btn" data-type="search"><i class="layui-icon"></i>搜索
+ </button>
+ <button id="customerlist-btn-add" class="layui-btn icon-btn" data-type="add"><i class="layui-icon"></i>新建人员名单</button>
+ </div>
+ <table class="layui-table" id="customerlist-table" lay-filter="customerlist-table"></table>
+ </div>
+</div>
+
+<script>
+
+ layui.use(['form', 'table', 'layer', 'admin', 'element'], function () {
+ let form = layui.form;
+ let table = layui.table;
+ let admin = layui.admin;
+
+ form.render('select');
+
+ // 渲染表格
+ table.render({
+ elem: '#customerlist-table',
+ url: '[[@{/customerlist/list}]]',
+ page: true,
+ minWidth: 80,
+ cols: [
+ [
+ {field: 'listid', sort: true, title: '名单编号'},
+ {field: 'listname', sort: true, title: '名单名称'},
+ {field: 'lastsaved', sort: true, title: '保存时间'},
+ {
+ field: 'listid', align: 'center',title: '操作', fixed: 'right', templet: function (item) {
+ return ' <a class="layui-btn layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>查看名单</a> '+
+ ' <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>';
+ }
+ }
+ ]
+ ]
+ });
+
+ // 搜索按钮点击事件
+ $('#customerlist-btn-search').click(function () {
+ let key = $('#customerlist-search-value').val().trim();
+ table.reload('customerlist-table', {where: {searchkey: key}, page: {curr: 1}});
+ });
+ $('#customerlist-btn-add').click(function () {
+ showModel();
+ });
+ /* $('#customerlist-btn-import').click(function () {
+ showDownload();
+ });
+ let showDownload = function () {
+ let title ='导入';
+ admin.popupCenter({
+ title: title,
+ path: '[[@{/customerlist/loadimport}]]',
+ finish: function () {
+ table.reload('customerlist-table', {});
+ }
+ });
+ };*/
+ let showModel = function (data) {
+ let title = '新建人员列表';
+ admin.putTempData('t_cuslist', data);
+ admin.popupCenter({
+ title: title,
+ path: '[[@{/customerlist/loadadd}]]',
+ area: '500px',
+ finish: function () {
+ table.reload('customerlist-table');
+ }
+ });
+ };
+
+ let showList= function(data){
+ admin.popupCenter({
+ title: "查看名单",
+ path: '[[@{/customerlist/load4detail}]]?listid=' + data.listid,
+ area: '600px',
+ finish: function () {
+ table.reload('customerlist-table');
+ }
+ });
+ }
+
+
+ // 工具条点击事件
+ table.on('tool(customerlist-table)', function (obj) {
+ let data = obj.data;
+ let layEvent = obj.event;
+ console.log(data);
+ if (layEvent === 'edit') {
+ showList(data);
+ } else if (layEvent === 'del') {
+ showDelete(data);
+ }
+ });
+ let showDelete = function (data) {
+ layer.confirm('确定要删除该名单吗?', function (i) {
+ layer.close(i);
+ layer.load(2);
+ let token = $("meta[name='_csrf_token']").attr("value");
+ admin.go('[[@{/customerlist/deletelist}]]', {
+ listid: data.listid,
+ _csrf: token
+ }, 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('customerlist-table', {});
+ }, function (ret) {
+ console.log(ret);
+ layer.closeAll('loading');
+ layer.msg('请求失败了,请稍后再试', {icon: 2});
+ });
+ });
+ };
+
+ });
+</script>
diff --git a/src/main/resources/templates/restaurant/customerlist/listdetail.html b/src/main/resources/templates/restaurant/customerlist/listdetail.html
new file mode 100644
index 0000000..5b70f34
--- /dev/null
+++ b/src/main/resources/templates/restaurant/customerlist/listdetail.html
@@ -0,0 +1,48 @@
+<div class="layui-card">
+ <div class="layui-card-body">
+ <div class="layui-form toolbar">
+ 搜索:
+ <input type="hidden" id="search-list-detail-listid" th:value="${listDetailid}" />
+ <input id="search-list-detail-searchkey" class="layui-input search-input" maxlength="20" type="text" style="width: 200px;"
+ placeholder="输入市民卡号或姓名查询"/> 
+ <button id="btn-search-list-detail" class="layui-btn icon-btn" data-type="search"><i
+ class="layui-icon"></i>搜索
+ </button>
+ </div>
+ <table class="layui-table" id="listDetailTable" lay-filter="listDetailTable-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: '#listDetailTable',
+ url: '[[@{/customerlist/load4detaillist}]]',
+ where: obj,
+ page: true,
+ height: 472,
+ cols: [
+ [
+ {field: 'cardno', title: '市民卡号', align: 'center'},
+ {field: 'custname', title: '姓名', align: 'center'}
+ ]
+ ]
+ });
+ }
+ renderDetailTable({listid: $("#search-list-detail-listid").val()});
+
+ // 搜索按钮点击事件
+ $('#btn-search-list-detail').click(function () {
+ var listid = $("#search-list-detail-listid").val();
+ var searchkey = $("#search-list-detail-searchkey").val();
+ table.reload('listDetailTable', {where: {listid: listid, searchkey: searchkey}, page: {curr: 1}});
+ });
+
+ });
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/restaurant/discountrule/ruleform.html b/src/main/resources/templates/restaurant/discountrule/ruleform.html
index 6abfe9c..0eed2ad 100644
--- a/src/main/resources/templates/restaurant/discountrule/ruleform.html
+++ b/src/main/resources/templates/restaurant/discountrule/ruleform.html
@@ -48,7 +48,13 @@
<div class="layui-form-item">
<label class="layui-form-label"><span style="color: red">* </span>餐补对象</label>
- <div class="layui-input-inline" style="width: auto;">
+ <div class="layui-input-block">
+ <select lay-verify="required" name="listid" class="layui-select" id="discountrule-form-select-listid">
+ <option th:each="lst:${listbeans}" th:value="${lst.listid}"
+ th:text="${lst.listname}"></option>
+ </select> 
+ </div>
+ <!--<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-discountrule-records" style="width:auto;"/>
@@ -56,7 +62,7 @@
</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>
<div class="layui-form-item model-form-footer">
@@ -75,6 +81,7 @@
var discountType='discount';
+ form.render("select");
laydate.render({
elem: '#form-discountrule-starttime',
type: 'time',
@@ -166,22 +173,14 @@
formData.append("amount", vdata.amount);
formData.append("limitcnt", vdata.limitcnt);
- var flag = false;
- var files = $('#form-discountrule-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) {
+ formData.append("listid",vdata.listid);
+ // var flag = false;
+ // var files = $('#form-discountrule-records').prop('files');
+ if(!vdata.listid){
layer.msg("请选择餐补名单", {icon: 2, time: 1500});
return;
}
+
layer.load(2);
$.ajax({
type: "POST",