食堂消费初始化,食堂消费确认,消费流水查询,消费冲正,离线流水上传,白名单下载,pos机系统参数下载,心跳,签到,账户余额查询,营业额查询
diff --git a/config/application-devel-pg.properties b/config/application-devel-pg.properties
index 77d4185..4d6e081 100644
--- a/config/application-devel-pg.properties
+++ b/config/application-devel-pg.properties
@@ -3,7 +3,7 @@
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults=false
spring.datasource.continue-on-error=true
-spring.datasource.initialization-mode=always
+#spring.datasource.initialization-mode=always
#spring.jpa.show-sql=true
#logging.level.org.hibernate.SQL=DEBUG
# Postgresql settings
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/APIRequest.java b/src/main/java/com/supwisdom/dlpay/api/bean/APIRequest.java
new file mode 100644
index 0000000..19fb912
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/bean/APIRequest.java
@@ -0,0 +1,202 @@
+package com.supwisdom.dlpay.api.bean;
+
+import com.supwisdom.dlpay.framework.util.DateUtil;
+import com.supwisdom.dlpay.framework.util.HmacUtil;
+import com.supwisdom.dlpay.framework.util.StringUtil;
+import org.apache.commons.lang.WordUtils;
+
+import java.beans.Introspector;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.util.*;
+
+public class APIRequest {
+ private String sign;
+ private String sign_method;
+ private String app_id;
+
+ public String getTimestamp() {
+ return timestamp;
+ }
+
+ public void setTimestamp(String timestamp) {
+ this.timestamp = timestamp;
+ }
+
+ private String timestamp;
+ private String term_id;
+
+
+ private boolean getSignData(StringBuilder sb) {
+ Class clazz = this.getClass();
+ ArrayList<Field> signFields = new ArrayList<Field>();
+ Map<Field, Method> getters = new HashMap();
+ if (clazz.isAnnotationPresent(SignBean.class)) {
+ getSignFieldsWithSignBean(signFields, getters);
+ } else {
+ getSignFieldsWithSignField(signFields, getters);
+ }
+
+ if (signFields.size() == 0) {
+ return false;
+ }
+ Collections.sort(signFields, new Comparator<Field>() {
+ @Override
+ public int compare(Field o1, Field o2) {
+ return o1.getName().compareTo(o2.getName());
+ }
+ });
+ for (Field field : signFields) {
+
+ try {
+ Method meth = getters.get(field);
+ Object value = null;
+ try {
+ value = meth.invoke(this);
+ } catch (InvocationTargetException e) {
+ e.printStackTrace();
+ }
+ if (value == null) {
+ continue;
+ }
+
+ sb.append(value.toString());
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+ return true;
+ }
+
+ private void getSignFieldsWithSignField(ArrayList<Field> signFields, Map<Field, Method> getters) {
+ Class clazz = this.getClass();
+ Method[] allGetter = clazz.getMethods();
+
+ for (Method meth : allGetter) {
+ if ((meth.getModifiers() | Modifier.PUBLIC) == Modifier.PUBLIC
+ && (meth.getName().startsWith("get") || meth.getName().startsWith("is"))) {
+ String fieldName = Introspector.decapitalize(meth.getName().substring(meth.getName().startsWith("get") ? 3 : 2));
+ Field field;
+ try {
+ field = clazz.getDeclaredField(fieldName);
+ } catch (NoSuchFieldException e) {
+ try {
+ field = clazz.getSuperclass().getDeclaredField(fieldName);
+ } catch (NoSuchFieldException e1) {
+ e1.printStackTrace();
+ continue;
+ }
+ }
+ if (field.isAnnotationPresent(SignField.class)) {
+ signFields.add(field);
+ getters.put(field, meth);
+ } else if (field.getName().equals("timestamp")) {
+ signFields.add(field);
+ getters.put(field, meth);
+ }
+ }
+ }
+ }
+
+ private void getSignFieldsWithSignBean(ArrayList<Field> signFields, Map<Field, Method> getters) {
+ Class clazz = this.getClass();
+ SignBean signBean = (SignBean) clazz.getAnnotation(SignBean.class);
+ if(signBean == null) {
+ return;
+ }
+ for(String fieldName : signBean.value()){
+ Field field;
+ try {
+ field = clazz.getDeclaredField(fieldName);
+ } catch (NoSuchFieldException e) {
+ try {
+ field = clazz.getSuperclass().getDeclaredField(fieldName);
+ } catch (NoSuchFieldException e1) {
+ continue;
+ }
+ }
+
+ String methodName = "get" + WordUtils.capitalize(fieldName);
+ Method meth;
+ try {
+ meth = clazz.getMethod(methodName);
+ } catch (NoSuchMethodException e) {
+ methodName = "is" + WordUtils.capitalize(fieldName);
+ try {
+ meth = clazz.getMethod(methodName);
+ } catch (NoSuchMethodException e1) {
+ continue;
+ }
+ }
+ signFields.add(field);
+ getters.put(field, meth);
+ }
+ }
+
+ private String calcSignMac(StringBuilder sb, String key) {
+ return HmacUtil.HMACSHA256(sb.toString(), key);
+ }
+
+ public boolean checkSign(String key, String sessionKey) {
+ StringBuilder sb = new StringBuilder();
+ if (!getSignData(sb)) {
+ return false;
+ }
+ if (StringUtil.isEmpty(getSign())) {
+ return false;
+ }
+ if(sessionKey != null){
+ sb.append(sessionKey);
+ }
+ System.out.println("signData=["+sb.toString()+"]");
+ String mac = calcSignMac(sb, key);
+ return getSign().equalsIgnoreCase(mac);
+ }
+
+ public String calcSign(String key, String timestamp) {
+ if (timestamp == null) {
+ this.setTimestamp(DateUtil.getNow());
+ }
+ StringBuilder sb = new StringBuilder();
+ if (!getSignData(sb)) {
+ return null;
+ }
+ return calcSignMac(sb, key);
+ }
+
+
+ public String getSign() {
+ return sign;
+ }
+
+ public void setSign(String sign) {
+ this.sign = sign;
+ }
+
+ public String getSign_method() {
+ return sign_method;
+ }
+
+ public void setSign_method(String sign_method) {
+ this.sign_method = sign_method;
+ }
+
+ public String getApp_id() {
+ return app_id;
+ }
+
+ public void setApp_id(String app_id) {
+ this.app_id = app_id;
+ }
+
+ public String getTerm_id() {
+ return term_id;
+ }
+
+ public void setTerm_id(String termid) {
+ this.term_id = termid;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/APIResponse.java b/src/main/java/com/supwisdom/dlpay/api/bean/APIResponse.java
new file mode 100644
index 0000000..222530e
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/bean/APIResponse.java
@@ -0,0 +1,22 @@
+package com.supwisdom.dlpay.api.bean;
+
+public class APIResponse {
+ private String retcode;
+ private String retmsg;
+
+ public String getRetcode() {
+ return retcode;
+ }
+
+ public void setRetcode(String retcode) {
+ this.retcode = retcode;
+ }
+
+ public String getRetmsg() {
+ return retmsg;
+ }
+
+ public void setRetmsg(String retmsg) {
+ this.retmsg = retmsg;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/CardverBean.java b/src/main/java/com/supwisdom/dlpay/api/bean/CardverBean.java
new file mode 100644
index 0000000..2cfb3a2
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/bean/CardverBean.java
@@ -0,0 +1,32 @@
+package com.supwisdom.dlpay.api.bean;
+
+public class CardverBean {
+ private String status;
+ private String cardno;
+ private String cardphyid;
+
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ 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/api/bean/DevparaBean.java b/src/main/java/com/supwisdom/dlpay/api/bean/DevparaBean.java
new file mode 100644
index 0000000..e03d9a3
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/bean/DevparaBean.java
@@ -0,0 +1,22 @@
+package com.supwisdom.dlpay.api.bean;
+
+public class DevparaBean {
+ private String paraname;
+ private String paraval;
+
+ public String getParaname() {
+ return paraname;
+ }
+
+ public void setParaname(String paraname) {
+ this.paraname = paraname;
+ }
+
+ public String getParaval() {
+ return paraval;
+ }
+
+ public void setParaval(String paraval) {
+ this.paraval = paraval;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/PosPayAccqueryReq.java b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayAccqueryReq.java
new file mode 100644
index 0000000..e1f1a71
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayAccqueryReq.java
@@ -0,0 +1,60 @@
+package com.supwisdom.dlpay.api.bean;
+
+
+public class PosPayAccqueryReq extends APIRequest {
+ private String devphyid;
+ private String qrcode;
+ private String cardno;
+ private String cardphyid;
+ private String transtype;
+ private String expiredate;
+
+
+ public String getDevphyid() {
+ return devphyid;
+ }
+
+ public void setDevphyid(String devphyid) {
+ this.devphyid = devphyid;
+ }
+
+ public String getQrcode() {
+ return qrcode;
+ }
+
+ public void setQrcode(String qrcode) {
+ this.qrcode = qrcode;
+ }
+
+ 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;
+ }
+
+ public String getTranstype() {
+ return transtype;
+ }
+
+ public void setTranstype(String transtype) {
+ this.transtype = transtype;
+ }
+
+ public String getExpiredate() {
+ return expiredate;
+ }
+
+ public void setExpiredate(String expiredate) {
+ this.expiredate = expiredate;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/PosPayAccqueryResp.java b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayAccqueryResp.java
new file mode 100644
index 0000000..36b7a7d
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayAccqueryResp.java
@@ -0,0 +1,60 @@
+package com.supwisdom.dlpay.api.bean;
+
+public class PosPayAccqueryResp extends APIResponse {
+ private String expiredate;
+ private String status;
+ private String username;
+ private String userid;
+ private String cardverno;
+ private String systime;
+
+ public String getSystime() {
+ return systime;
+ }
+
+ public void setSystime(String systime) {
+ this.systime = systime;
+ }
+
+ public String getExpiredate() {
+ return expiredate;
+ }
+
+ public void setExpiredate(String expiredate) {
+ this.expiredate = expiredate;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ 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 String getCardverno() {
+ return cardverno;
+ }
+
+ public void setCardverno(String cardverno) {
+ this.cardverno = cardverno;
+ }
+}
+
+
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/PosPayConfirmReq.java b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayConfirmReq.java
new file mode 100644
index 0000000..e6efaf6
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayConfirmReq.java
@@ -0,0 +1,62 @@
+package com.supwisdom.dlpay.api.bean;
+
+
+public class PosPayConfirmReq extends APIRequest {
+ private String devphyid;
+ private String termdate;
+ private String termtime;
+ private String billno;
+ private String cardpwd;
+ private Integer amount;
+
+
+ public String getDevphyid() {
+ return devphyid;
+ }
+
+ public void setDevphyid(String devphyid) {
+ this.devphyid = devphyid;
+ }
+
+ public String getTermdate() {
+ return termdate;
+ }
+
+ public void setTermdate(String termdate) {
+ this.termdate = termdate;
+ }
+
+ public String getTermtime() {
+ return termtime;
+ }
+
+ public void setTermtime(String termtime) {
+ this.termtime = termtime;
+ }
+
+ public String getBillno() {
+ return billno;
+ }
+
+ public void setBillno(String billno) {
+ this.billno = billno;
+ }
+
+ public String getCardpwd() {
+ return cardpwd;
+ }
+
+ public void setCardpwd(String cardpwd) {
+ this.cardpwd = cardpwd;
+ }
+
+
+
+ public Integer getAmount() {
+ return amount;
+ }
+
+ public void setAmount(Integer amount) {
+ this.amount = amount;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/PosPayConfirmResp.java b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayConfirmResp.java
new file mode 100644
index 0000000..a7a8fc9
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayConfirmResp.java
@@ -0,0 +1,67 @@
+package com.supwisdom.dlpay.api.bean;
+
+public class PosPayConfirmResp extends APIResponse {
+ private String billno;
+ private boolean require_query;
+ private Double amount;
+ private Double extraamt;
+ private String userid;
+ private String username;
+ private Integer balance;
+
+ public Integer getBalance() {
+ return balance;
+ }
+
+ public void setBalance(Integer balance) {
+ this.balance = balance;
+ }
+
+ public String getBillno() {
+ return billno;
+ }
+
+ public void setBillno(String billno) {
+ this.billno = billno;
+ }
+
+ public boolean isRequire_query() {
+ return require_query;
+ }
+
+ public void setRequire_query(boolean require_query) {
+ this.require_query = require_query;
+ }
+
+ public Double getAmount() {
+ return amount;
+ }
+
+ public void setAmount(Double amount) {
+ this.amount = amount;
+ }
+
+ public Double getExtraamt() {
+ return extraamt;
+ }
+
+ public void setExtraamt(Double extraamt) {
+ this.extraamt = extraamt;
+ }
+
+ public String getUserid() {
+ return userid;
+ }
+
+ public void setUserid(String userid) {
+ this.userid = userid;
+ }
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/PosPayHeartBeatReq.java b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayHeartBeatReq.java
new file mode 100644
index 0000000..6f3cf24
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayHeartBeatReq.java
@@ -0,0 +1,62 @@
+package com.supwisdom.dlpay.api.bean;
+
+
+public class PosPayHeartBeatReq extends APIRequest {
+ private String devphyid;
+ private String termdate;
+ private String termtime;
+ private Integer paragroupid;
+ private String cardverno;
+
+
+ public String getDevphyid() {
+ return devphyid;
+ }
+
+ public void setDevphyid(String devphyid) {
+ this.devphyid = devphyid;
+ }
+
+ public String getTermdate() {
+ return termdate;
+ }
+
+ public void setTermdate(String termdate) {
+ this.termdate = termdate;
+ }
+
+ public String getTermtime() {
+ return termtime;
+ }
+
+ public void setTermtime(String termtime) {
+ this.termtime = termtime;
+ }
+
+ public Integer getParagroupid() {
+ return paragroupid;
+ }
+
+ public void setParagroupid(Integer paragroupid) {
+ this.paragroupid = paragroupid;
+ }
+
+ public String getCardverno() {
+ return cardverno;
+ }
+
+ public void setCardverno(String cardverno) {
+ this.cardverno = cardverno;
+ }
+
+ @Override
+ public String toString() {
+ return "PosPayHeartBeatReq{" +
+ "devphyid='" + devphyid + '\'' +
+ ", termdate='" + termdate + '\'' +
+ ", termtime='" + termtime + '\'' +
+ ", paragroupid=" + paragroupid +
+ ", cardverno='" + cardverno + '\'' +
+ '}';
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/PosPayHeartBeatResp.java b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayHeartBeatResp.java
new file mode 100644
index 0000000..c0066b3
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayHeartBeatResp.java
@@ -0,0 +1,40 @@
+package com.supwisdom.dlpay.api.bean;
+
+public class PosPayHeartBeatResp extends APIResponse {
+ private Integer paragroupid;
+ private Integer paraverno;
+ private String cardverno;
+ private String systime;
+
+ public Integer getParagroupid() {
+ return paragroupid;
+ }
+
+ public void setParagroupid(Integer paragroupid) {
+ this.paragroupid = paragroupid;
+ }
+
+ public Integer getParaverno() {
+ return paraverno;
+ }
+
+ public void setParaverno(Integer paraverno) {
+ this.paraverno = paraverno;
+ }
+
+ public String getCardverno() {
+ return cardverno;
+ }
+
+ public void setCardverno(String cardverno) {
+ this.cardverno = cardverno;
+ }
+
+ public String getSystime() {
+ return systime;
+ }
+
+ public void setSystime(String systime) {
+ this.systime = systime;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/PosPayInitReq.java b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayInitReq.java
new file mode 100644
index 0000000..1f9e728
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayInitReq.java
@@ -0,0 +1,114 @@
+package com.supwisdom.dlpay.api.bean;
+
+public class PosPayInitReq {
+ @SignField
+ private String devphyid;
+ @SignField
+ private Integer termseqno;
+ @SignField
+ private String termdate;
+ @SignField
+ private String termtime;
+ @SignField
+ private String qrcode;
+ @SignField
+ private String cardno;
+ @SignField
+ private String timestamp;
+ @SignField
+ private String cardphyid;
+ @SignField
+ private String transtype;
+ @SignField
+ private String sign;
+ private String sign_method;
+
+ public String getDevphyid() {
+ return devphyid;
+ }
+
+ public void setDevphyid(String devphyid) {
+ this.devphyid = devphyid;
+ }
+
+ public Integer getTermseqno() {
+ return termseqno;
+ }
+
+ public void setTermseqno(Integer termseqno) {
+ this.termseqno = termseqno;
+ }
+
+ public String getTermdate() {
+ return termdate;
+ }
+
+ public void setTermdate(String termdate) {
+ this.termdate = termdate;
+ }
+
+ public String getTermtime() {
+ return termtime;
+ }
+
+ public void setTermtime(String termtime) {
+ this.termtime = termtime;
+ }
+
+ public String getQrcode() {
+ return qrcode;
+ }
+
+ public void setQrcode(String qrcode) {
+ this.qrcode = qrcode;
+ }
+
+ public String getCardno() {
+ return cardno;
+ }
+
+ public void setCardno(String cardno) {
+ this.cardno = cardno;
+ }
+
+ public String getTimestamp() {
+ return timestamp;
+ }
+
+ public void setTimestamp(String timestamp) {
+ this.timestamp = timestamp;
+ }
+
+ public String getCardphyid() {
+ return cardphyid;
+ }
+
+ public void setCardphyid(String cardphyid) {
+ this.cardphyid = cardphyid;
+ }
+
+ public String getTranstype() {
+ return transtype;
+ }
+
+ public void setTranstype(String transtype) {
+ this.transtype = transtype;
+ }
+
+ public String getSign() {
+ return sign;
+ }
+
+ public void setSign(String sign) {
+ this.sign = sign;
+ }
+
+ public String getSign_method() {
+ return sign_method;
+ }
+
+ public void setSign_method(String sign_method) {
+ this.sign_method = sign_method;
+ }
+
+}
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/PosPayInitResp.java b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayInitResp.java
new file mode 100644
index 0000000..4253741
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayInitResp.java
@@ -0,0 +1,59 @@
+package com.supwisdom.dlpay.api.bean;
+
+public class PosPayInitResp extends APIResponse {
+ private String billno;
+ private String username;
+ private String userid;
+ private boolean anonymous;
+ private String sourcetype;
+ private boolean needpwdconfirm;
+
+
+ public String getBillno() {
+ return billno;
+ }
+
+ public void setBillno(String billno) {
+ this.billno = billno;
+ }
+
+ 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 boolean isAnonymous() {
+ return anonymous;
+ }
+
+ public void setAnonymous(boolean anonymous) {
+ this.anonymous = anonymous;
+ }
+
+ public String getSourcetype() {
+ return sourcetype;
+ }
+
+ public void setSourcetype(String sourcetype) {
+ this.sourcetype = sourcetype;
+ }
+
+ public boolean isNeedpwdconfirm() {
+ return needpwdconfirm;
+ }
+
+ public void setNeedpwdconfirm(boolean needpwdconfirm) {
+ this.needpwdconfirm = needpwdconfirm;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/PosPayLoginReq.java b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayLoginReq.java
new file mode 100644
index 0000000..96572db
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayLoginReq.java
@@ -0,0 +1,50 @@
+package com.supwisdom.dlpay.api.bean;
+
+public class PosPayLoginReq extends APIRequest{
+
+ private String devphyid;
+ private String termdate;
+ private String termtime;
+ private Integer paragroupid;
+ private String cardverno;
+
+ public String getDevphyid() {
+ return devphyid;
+ }
+
+ public void setDevphyid(String devphyid) {
+ this.devphyid = devphyid;
+ }
+
+ public String getTermdate() {
+ return termdate;
+ }
+
+ public void setTermdate(String termdate) {
+ this.termdate = termdate;
+ }
+
+ public String getTermtime() {
+ return termtime;
+ }
+
+ public void setTermtime(String termtime) {
+ this.termtime = termtime;
+ }
+
+ public Integer getParagroupid() {
+ return paragroupid;
+ }
+
+ public void setParagroupid(Integer paragroupid) {
+ this.paragroupid = paragroupid;
+ }
+
+ public String getCardverno() {
+ return cardverno;
+ }
+
+ public void setCardverno(String cardverno) {
+ this.cardverno = cardverno;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/PosPayLoginResp.java b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayLoginResp.java
new file mode 100644
index 0000000..d3ad990
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayLoginResp.java
@@ -0,0 +1,68 @@
+package com.supwisdom.dlpay.api.bean;
+
+
+public class PosPayLoginResp extends APIResponse {
+ private Integer paragroupid;
+ private Integer paraverno;
+ private Integer onlineseqno;
+ private Integer offlineseqno;
+ private String cardverno;
+ private String systime;
+ private String shopname;
+
+ public String getShopname() {
+ return shopname;
+ }
+
+ public void setShopname(String shopname) {
+ this.shopname = shopname;
+ }
+
+ public Integer getParagroupid() {
+ return paragroupid;
+ }
+
+ public void setParagroupid(Integer paragroupid) {
+ this.paragroupid = paragroupid;
+ }
+
+ public Integer getParaverno() {
+ return paraverno;
+ }
+
+ public void setParaverno(Integer paraverno) {
+ this.paraverno = paraverno;
+ }
+
+ public Integer getOnlineseqno() {
+ return onlineseqno;
+ }
+
+ public void setOnlineseqno(Integer onlineseqno) {
+ this.onlineseqno = onlineseqno;
+ }
+
+ public Integer getOfflineseqno() {
+ return offlineseqno;
+ }
+
+ public void setOfflineseqno(Integer offlineseqno) {
+ this.offlineseqno = offlineseqno;
+ }
+
+ public String getCardverno() {
+ return cardverno;
+ }
+
+ public void setCardverno(String cardverno) {
+ this.cardverno = cardverno;
+ }
+
+ public String getSystime() {
+ return systime;
+ }
+
+ public void setSystime(String systime) {
+ this.systime = systime;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/PosPayOfflineDtlReq.java b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayOfflineDtlReq.java
new file mode 100644
index 0000000..093f77c
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayOfflineDtlReq.java
@@ -0,0 +1,148 @@
+package com.supwisdom.dlpay.api.bean;
+
+public class PosPayOfflineDtlReq extends APIRequest{
+ private String devphyid;
+ private Integer termseqno;
+ private String transdate;
+ private String transtime;
+ private String qrcode;
+ private String cardno;
+ private String cardphyid;
+ private String transtype;
+ private Integer amount;
+ private Integer extraamt;
+ private String managefeetype;
+ private String reversalflag;
+ private Integer reversaltermseqno;
+ private String reversaltransdate;
+ private String reversaltranstime;
+ private String status;
+
+ public String getDevphyid() {
+ return devphyid;
+ }
+
+ public void setDevphyid(String devphyid) {
+ this.devphyid = devphyid;
+ }
+
+ public Integer getTermseqno() {
+ return termseqno;
+ }
+
+ public void setTermseqno(Integer termseqno) {
+ this.termseqno = termseqno;
+ }
+
+ public String getTransdate() {
+ return transdate;
+ }
+
+ public void setTransdate(String transdate) {
+ this.transdate = transdate;
+ }
+
+ public String getTranstime() {
+ return transtime;
+ }
+
+ public void setTranstime(String transtime) {
+ this.transtime = transtime;
+ }
+
+ public String getQrcode() {
+ return qrcode;
+ }
+
+ public void setQrcode(String qrcode) {
+ this.qrcode = qrcode;
+ }
+
+ 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;
+ }
+
+ public String getTranstype() {
+ return transtype;
+ }
+
+ public void setTranstype(String transtype) {
+ this.transtype = transtype;
+ }
+
+ public Integer getAmount() {
+ return amount;
+ }
+
+ public void setAmount(Integer amount) {
+ this.amount = amount;
+ }
+
+ public Integer getExtraamt() {
+ return extraamt;
+ }
+
+ public void setExtraamt(Integer extraamt) {
+ this.extraamt = extraamt;
+ }
+
+ public String getManagefeetype() {
+ return managefeetype;
+ }
+
+ public void setManagefeetype(String managefeetype) {
+ this.managefeetype = managefeetype;
+ }
+
+ public String getReversalflag() {
+ return reversalflag;
+ }
+
+ public void setReversalflag(String reversalflag) {
+ this.reversalflag = reversalflag;
+ }
+
+ public Integer getReversaltermseqno() {
+ return reversaltermseqno;
+ }
+
+ public void setReversaltermseqno(Integer reversaltermseqno) {
+ this.reversaltermseqno = reversaltermseqno;
+ }
+
+ public String getReversaltransdate() {
+ return reversaltransdate;
+ }
+
+ public void setReversaltransdate(String reversaltransdate) {
+ this.reversaltransdate = reversaltransdate;
+ }
+
+ public String getReversaltranstime() {
+ return reversaltranstime;
+ }
+
+ public void setReversaltranstime(String reversaltranstime) {
+ this.reversaltranstime = reversaltranstime;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/PosPayOfflineDtlResp.java b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayOfflineDtlResp.java
new file mode 100644
index 0000000..84df6f8
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayOfflineDtlResp.java
@@ -0,0 +1,15 @@
+package com.supwisdom.dlpay.api.bean;
+
+
+
+public class PosPayOfflineDtlResp extends APIResponse {
+ private Integer termseqno;
+
+ public Integer getTermseqno() {
+ return termseqno;
+ }
+
+ public void setTermseqno(Integer termseqno) {
+ this.termseqno = termseqno;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/PosPayQuerysalesResp.java b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayQuerysalesResp.java
new file mode 100644
index 0000000..e8329ae
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayQuerysalesResp.java
@@ -0,0 +1,52 @@
+package com.supwisdom.dlpay.api.bean;
+
+
+import java.math.BigInteger;
+
+public class PosPayQuerysalesResp extends APIResponse {
+ private String salesdate;
+ private Double salesamt;
+ private BigInteger salescnt;
+ private Double managefeeamt;
+ private BigInteger managefeecnt;
+
+ public String getSalesdate() {
+ return salesdate;
+ }
+
+ public void setSalesdate(String salesdate) {
+ this.salesdate = salesdate;
+ }
+
+ public Double getSalesamt() {
+ return salesamt;
+ }
+
+ public void setSalesamt(Double salesamt) {
+ this.salesamt = salesamt;
+ }
+
+ public BigInteger getSalescnt() {
+ return salescnt;
+ }
+
+ public void setSalescnt(BigInteger salescnt) {
+ this.salescnt = salescnt;
+ }
+
+ public Double getManagefeeamt() {
+ return managefeeamt;
+ }
+
+ public void setManagefeeamt(Double managefeeamt) {
+ this.managefeeamt = managefeeamt;
+ }
+
+ public BigInteger getManagefeecnt() {
+ return managefeecnt;
+ }
+
+ public void setManagefeecnt(BigInteger managefeecnt) {
+ this.managefeecnt = managefeecnt;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/PosPayReverseReq.java b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayReverseReq.java
new file mode 100644
index 0000000..ccd874a
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayReverseReq.java
@@ -0,0 +1,71 @@
+package com.supwisdom.dlpay.api.bean;
+
+
+public class PosPayReverseReq extends APIRequest {
+ private String devphyid;
+ private String termdate;
+ private String termtime;
+ private String reversalbillno;
+ private String reversalflag;
+ private String timestamp;
+ private Integer termseqno;
+
+
+ public String getDevphyid() {
+ return devphyid;
+ }
+
+ public void setDevphyid(String devphyid) {
+ this.devphyid = devphyid;
+ }
+
+ public String getTermdate() {
+ return termdate;
+ }
+
+ public void setTermdate(String termdate) {
+ this.termdate = termdate;
+ }
+
+ public String getTermtime() {
+ return termtime;
+ }
+
+ public void setTermtime(String termtime) {
+ this.termtime = termtime;
+ }
+
+ public String getReversalbillno() {
+ return reversalbillno;
+ }
+
+ public void setReversalbillno(String reversalbillno) {
+ this.reversalbillno = reversalbillno;
+ }
+
+ public String getReversalflag() {
+ return reversalflag;
+ }
+
+ public void setReversalflag(String reversalflag) {
+ this.reversalflag = reversalflag;
+ }
+
+ @Override
+ public String getTimestamp() {
+ return timestamp;
+ }
+
+ @Override
+ public void setTimestamp(String timestamp) {
+ this.timestamp = timestamp;
+ }
+
+ public Integer getTermseqno() {
+ return termseqno;
+ }
+
+ public void setTermseqno(Integer termseqno) {
+ this.termseqno = termseqno;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/PosPayReverseResp.java b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayReverseResp.java
new file mode 100644
index 0000000..8a79317
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayReverseResp.java
@@ -0,0 +1,13 @@
+package com.supwisdom.dlpay.api.bean;
+
+public class PosPayReverseResp extends APIResponse {
+ private Integer termseqno;
+
+ public Integer getTermseqno() {
+ return termseqno;
+ }
+
+ public void setTermseqno(Integer termseqno) {
+ this.termseqno = termseqno;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/PosPaySysparaReq.java b/src/main/java/com/supwisdom/dlpay/api/bean/PosPaySysparaReq.java
new file mode 100644
index 0000000..02cbf4a
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/bean/PosPaySysparaReq.java
@@ -0,0 +1,42 @@
+package com.supwisdom.dlpay.api.bean;
+
+
+public class PosPaySysparaReq extends APIRequest {
+ private String devphyid;
+ private String termdate;
+ private String termtime;
+ private Integer paragroupid;
+
+ public String getDevphyid() {
+ return devphyid;
+ }
+
+ public void setDevphyid(String devphyid) {
+ this.devphyid = devphyid;
+ }
+
+ public String getTermdate() {
+ return termdate;
+ }
+
+ public void setTermdate(String termdate) {
+ this.termdate = termdate;
+ }
+
+ public String getTermtime() {
+ return termtime;
+ }
+
+ public void setTermtime(String termtime) {
+ this.termtime = termtime;
+ }
+
+
+ public Integer getParagroupid() {
+ return paragroupid;
+ }
+
+ public void setParagroupid(Integer paragroupid) {
+ this.paragroupid = paragroupid;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/PosPaySysparaResp.java b/src/main/java/com/supwisdom/dlpay/api/bean/PosPaySysparaResp.java
new file mode 100644
index 0000000..6814077
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/bean/PosPaySysparaResp.java
@@ -0,0 +1,36 @@
+package com.supwisdom.dlpay.api.bean;
+
+import com.supwisdom.dlpay.restaurant.domain.TDevpara;
+
+import java.util.ArrayList;
+import java.util.Map;
+
+public class PosPaySysparaResp extends APIResponse {
+ private Integer paragroupid;
+ private Integer paraverno;
+ private ArrayList<DevparaBean> syspara;
+
+ public Integer getParagroupid() {
+ return paragroupid;
+ }
+
+ public void setParagroupid(Integer paragroupid) {
+ this.paragroupid = paragroupid;
+ }
+
+ public Integer getParaverno() {
+ return paraverno;
+ }
+
+ public void setParaverno(Integer paraverno) {
+ this.paraverno = paraverno;
+ }
+
+ public ArrayList<DevparaBean> getSyspara() {
+ return syspara;
+ }
+
+ public void setSyspara(ArrayList<DevparaBean> syspara) {
+ this.syspara = syspara;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/PosPayWhitelistReq.java b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayWhitelistReq.java
new file mode 100644
index 0000000..ec4ce59
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayWhitelistReq.java
@@ -0,0 +1,32 @@
+package com.supwisdom.dlpay.api.bean;
+
+
+public class PosPayWhitelistReq extends APIRequest {
+ private String cardverno;
+ private String devphyid;
+ private Integer maxcount;
+
+ public String getCardverno() {
+ return cardverno;
+ }
+
+ public void setCardverno(String cardverno) {
+ this.cardverno = cardverno;
+ }
+
+ public String getDevphyid() {
+ return devphyid;
+ }
+
+ public void setDevphyid(String devphyid) {
+ this.devphyid = devphyid;
+ }
+
+ public Integer getMaxcount() {
+ return maxcount;
+ }
+
+ public void setMaxcount(Integer maxcount) {
+ this.maxcount = maxcount;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/PosPayWhitelistResp.java b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayWhitelistResp.java
new file mode 100644
index 0000000..bb0a69d
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/bean/PosPayWhitelistResp.java
@@ -0,0 +1,34 @@
+package com.supwisdom.dlpay.api.bean;
+
+import java.util.ArrayList;
+
+public class PosPayWhitelistResp extends APIResponse {
+ private String cardverno;
+ private Integer count;
+ private ArrayList<CardverBean> whitelist;
+
+
+ public String getCardverno() {
+ return cardverno;
+ }
+
+ public void setCardverno(String cardverno) {
+ this.cardverno = cardverno;
+ }
+
+ public Integer getCount() {
+ return count;
+ }
+
+ public void setCount(Integer count) {
+ this.count = count;
+ }
+
+ public ArrayList<CardverBean> getWhitelist() {
+ return whitelist;
+ }
+
+ public void setWhitelist(ArrayList<CardverBean> whitelist) {
+ this.whitelist = whitelist;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/SignBean.java b/src/main/java/com/supwisdom/dlpay/api/bean/SignBean.java
new file mode 100644
index 0000000..208c27a
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/bean/SignBean.java
@@ -0,0 +1,15 @@
+package com.supwisdom.dlpay.api.bean;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Created by tangcheng on 16/8/11.
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.TYPE)
+public @interface SignBean {
+ String[] value();
+}
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/SignField.java b/src/main/java/com/supwisdom/dlpay/api/bean/SignField.java
new file mode 100644
index 0000000..ee94cb8
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/bean/SignField.java
@@ -0,0 +1,16 @@
+package com.supwisdom.dlpay.api.bean;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Created by tangcheng on 16/8/5.
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.FIELD)
+public @interface SignField {
+ int order = 0;
+
+}
diff --git a/src/main/java/com/supwisdom/dlpay/api/controller/PosPayController.java b/src/main/java/com/supwisdom/dlpay/api/controller/PosPayController.java
new file mode 100644
index 0000000..19d8a51
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/controller/PosPayController.java
@@ -0,0 +1,106 @@
+package com.supwisdom.dlpay.api.controller;
+
+import com.supwisdom.dlpay.api.bean.*;
+import com.supwisdom.dlpay.api.service.PosPayService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+@Controller
+@RequestMapping("/api/pos")
+public class PosPayController {
+
+ @Autowired
+ private PosPayService posPayService;
+
+ //设备签到
+ @RequestMapping(value = "/login", method = RequestMethod.POST)
+ @ResponseBody
+ public PosPayLoginResp cardreaderlogin(@ModelAttribute PosPayLoginReq req) {
+ PosPayLoginResp resp = posPayService.doLogin(req);
+ return resp;
+ }
+
+ //支付初始化
+ @RequestMapping(value = "/payinit", method = RequestMethod.POST)
+ @ResponseBody
+ public PosPayInitResp payInit(@ModelAttribute PosPayInitReq req) {
+ PosPayInitResp resp = posPayService.doPayInit(req);
+ return resp;
+ }
+
+ //支付
+ @RequestMapping(value = "/payconfirm", method = RequestMethod.POST)
+ @ResponseBody
+ public PosPayConfirmResp payment(@ModelAttribute PosPayConfirmReq req) {
+ PosPayConfirmResp resp = posPayService.doPayConfirm(req);
+ return resp;
+ }
+
+ //订单查询
+ @RequestMapping(value = "/payquery", method = RequestMethod.POST)
+ @ResponseBody
+ public PosPayConfirmResp payquery(@ModelAttribute PosPayConfirmReq req) {
+ PosPayConfirmResp resp = posPayService.doPayQuery(req);
+ return resp;
+ }
+
+ //冲正
+ @RequestMapping(value = "/paycancel", method = RequestMethod.POST)
+ @ResponseBody
+ public PosPayReverseResp paycancel(@ModelAttribute PosPayReverseReq req) {
+ PosPayReverseResp resp = posPayService.doPayCancel(req);
+ return resp;
+ }
+
+ //白名单
+ @RequestMapping(value = "/whitelist", method = RequestMethod.POST)
+ @ResponseBody
+ public PosPayWhitelistResp whitelist(@ModelAttribute PosPayWhitelistReq req) {
+ PosPayWhitelistResp resp = posPayService.doGetWhitelist(req);
+ return resp;
+ }
+
+ //系统参数
+ @RequestMapping(value = "/systempara", method = RequestMethod.POST)
+ @ResponseBody
+ public PosPaySysparaResp systempara(@ModelAttribute PosPaySysparaReq req) {
+ PosPaySysparaResp resp = posPayService.doGetDevpara(req);
+ return resp;
+ }
+
+ //心跳
+ @RequestMapping(value = "/heartbeat", method = RequestMethod.POST)
+ @ResponseBody
+ public PosPayHeartBeatResp heartbeat(@ModelAttribute PosPayHeartBeatReq req) {
+ PosPayHeartBeatResp resp = posPayService.posHeartBeat(req);
+ return resp;
+ }
+
+ //营业额查询
+ @RequestMapping(value = "/querysales", method = RequestMethod.POST)
+ @ResponseBody
+ public PosPayQuerysalesResp querysales(@ModelAttribute PosPaySysparaReq req) {
+ PosPayQuerysalesResp resp = posPayService.posQuerySales(req);
+ return resp;
+ }
+
+ @RequestMapping(value = "/accquery", method = RequestMethod.POST)
+ @ResponseBody
+ public PosPayAccqueryResp querysales(@ModelAttribute PosPayAccqueryReq req) {
+ PosPayAccqueryResp resp = posPayService.AccountQuery(req);
+ return resp;
+ }
+
+ @RequestMapping(value = "/offlinetransdtl", method = RequestMethod.POST)
+ @ResponseBody
+ public PosPayOfflineDtlResp querysales(@ModelAttribute PosPayOfflineDtlReq req) {
+ PosPayOfflineDtlResp resp = posPayService.saveOfflineDtl(req);
+ return resp;
+ }
+
+
+}
diff --git a/src/main/java/com/supwisdom/dlpay/api/service/PosPayService.java b/src/main/java/com/supwisdom/dlpay/api/service/PosPayService.java
new file mode 100644
index 0000000..ea60192
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/service/PosPayService.java
@@ -0,0 +1,32 @@
+package com.supwisdom.dlpay.api.service;
+
+
+import com.supwisdom.dlpay.api.bean.*;
+
+/**
+ */
+public interface PosPayService {
+ PosPayLoginResp doLogin(PosPayLoginReq req);
+
+ PosPayInitResp doPayInit(PosPayInitReq req);
+
+ PosPayConfirmResp doPayConfirm(PosPayConfirmReq req);
+
+ PosPayConfirmResp doPayQuery(PosPayConfirmReq req);
+
+ PosPayReverseResp doPayCancel(PosPayReverseReq req);
+
+ PosPaySysparaResp doGetDevpara(PosPaySysparaReq req);
+
+ PosPayWhitelistResp doGetWhitelist(PosPayWhitelistReq req);
+
+ PosPayHeartBeatResp posHeartBeat(PosPayHeartBeatReq req);
+
+ PosPayQuerysalesResp posQuerySales(PosPaySysparaReq req);
+
+ PosPayAccqueryResp AccountQuery(PosPayAccqueryReq req);
+
+ PosPayOfflineDtlResp saveOfflineDtl(PosPayOfflineDtlReq req);
+
+ //void checkOfflineDtl();
+}
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
new file mode 100644
index 0000000..f5a235f
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java
@@ -0,0 +1,684 @@
+package com.supwisdom.dlpay.api.service.impl;
+
+import com.supwisdom.dlpay.api.bean.*;
+import com.supwisdom.dlpay.api.service.PosPayService;
+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.StringUtil;
+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.MealTypeDao;
+import com.supwisdom.dlpay.restaurant.domain.*;
+import com.supwisdom.dlpay.restaurant.service.*;
+import com.supwisdom.dlpay.restaurant.util.RestaurantConstant;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+@Service
+public class PosPayServiceImpl implements PosPayService {
+ @Autowired
+ private DeviceService deviceService;
+ @Autowired
+ private CardService cardService;
+ @Autowired
+ private SystemUtilService systemUtilService;
+ @Autowired
+ private CustomerService customerService;
+ @Autowired
+ private TransDtlService transDtlService;
+ @Autowired
+ private OfflineTransDtlService offlineTransDtlService;
+ @Autowired
+ private MealTypeDao mealTypeDao;
+ @Autowired
+ private DevparaBindDao devparaBindDao;
+ @Autowired
+ private CustTypeService custTypeService;
+ @Autowired
+ private DeviceParamService deviceParamService;
+ @Autowired
+ private ShopSettlementService shopSettlementService;
+
+
+
+ @Override
+ public PosPayLoginResp doLogin(PosPayLoginReq req) {
+ PosPayLoginResp resp = new PosPayLoginResp();
+ String sysdt = DateUtil.getNow();
+
+ TDevice tDevice = deviceService.getDeviceByDevphyid(req.getDevphyid());
+ if (tDevice == null) {
+ resp.setRetcode(ErrorCode.ERRIF_POS_NOREG);
+ resp.setRetmsg("设备未注册");
+ return resp;
+ }
+ /*if (!req.getTermno().equals("FFFFFFFFFFFF")) {
+ TPsamcard tPsamcard = psamOrKeyCardService.getPsamcardbyTermno(req.getTermno());
+ if (tPsamcard == null) {
+ resp.setRetcode(ErrorCode.ERRIF_POS_NOREG);
+ resp.setRetmsg("设备未注册");
+ return resp;
+ }
+ if (tPsamcard.getStatus().intValue() != 0) {
+ resp.setRetcode(ErrorCode.ERRIF_POS_DISABLE);
+ resp.setRetmsg("终端PSAM卡状态错误");
+ return resp;
+ }
+ if (tPsamcard.getDeviceid() > 0) {
+ if (tPsamcard.getDeviceid().intValue() != tDevice.getDeviceid()) {
+ resp.setRetcode(ErrorCode.ERRIF_POS_TERMID);
+ resp.setRetmsg("终端PSAM卡错误");
+ return resp;
+ }
+ } else {
+ tPsamcard.setDeviceid(tDevice.getDeviceid());
+ tPsamcard.setDevjointime(sysdt.getHostdatetime());
+ tPsamcard.setLastsaved(sysdt.getHostdatetime());
+ psamOrKeyCardService.updatePsamcard(tPsamcard);
+ }
+ }*/
+ List<TShopSettlement> shoplist=shopSettlementService.getShopByShopid(tDevice.getShopid());
+ if (shoplist.size() < 1) {
+ resp.setRetcode(ErrorCode.ERRIF_POS_NOSHOP);
+ resp.setRetmsg("设备未绑定商户");
+ return resp;
+ }
+
+ Integer groupid = req.getParagroupid();
+ if (groupid == 0) {
+ groupid = 1;
+ }
+ TDevparaGroup group = deviceParamService.getDevparaGroupByGroupid(groupid);
+ if (null == group) {
+ resp.setRetcode(ErrorCode.ERRIF_POS_NOFUNC);
+ resp.setRetmsg("未找到" + req.getDevphyid() + "参数组");
+ return resp;
+ }
+
+ tDevice.setRunstatus(1);
+ tDevice.setLastlogintime(sysdt);
+ deviceService.saveDevice(tDevice);
+
+ TDevparaBind bind = deviceParamService.getDevparaBindByDeviceid(tDevice.getId());
+ if (null == bind) {
+ bind = new TDevparaBind();
+ bind.setDeviceid(tDevice.getId());
+ }
+ bind.setGroupid(group.getGroupid());
+ bind.setLastsaved(sysdt);
+ devparaBindDao.save(bind);
+ Integer onlineseqno = transDtlService.getMaxSeqnoToday(tDevice.getId(), req.getTermdate());
+
+ resp.setCardverno(req.getCardverno());
+ resp.setOnlineseqno(onlineseqno + 1);
+ resp.setOfflineseqno(1);
+ resp.setShopname(shoplist.get(0).getShopname());
+ resp.setParagroupid(group.getGroupid());
+ resp.setSystime(sysdt);
+ resp.setParaverno(group.getVerno().intValue());
+ resp.setRetcode(ErrorCode.ERRIF_OK);
+ return resp;
+ }
+
+
+ @Override
+ public PosPayInitResp doPayInit(PosPayInitReq req) {
+ PosPayInitResp resp = new PosPayInitResp();
+ /*if (!clientSessionService.checkRequestSign(req)) {
+ resp.setRetcode(ErrorCode.ERRIF_SIGN_ERROR);
+ resp.setRetmsg("签名验证失败");
+ return resp;
+ }
+ TTerm tTerm = systemUtilService.getTermBytermid(Integer.valueOf(req.getTerm_id()));
+ if (null == tTerm) {
+ resp.setRetcode(ErrorCode.ERRIF_POS_NOTLOGIN);
+ resp.setRetmsg("终端未签到");
+ return resp;
+ }
+ if (tTerm.getChecknum().intValue() != req.getChecknum()) {
+ resp.setRetcode(ErrorCode.ERRIF_CHECKNUM_ERROR);
+ resp.setRetmsg("验证码错误");
+ return resp;
+ }*/
+ TDevice tDevice = deviceService.getDeviceByDevphyid(req.getDevphyid());
+ if (tDevice == null) {
+ resp.setRetcode(ErrorCode.ERRIF_POS_NOREG);
+ resp.setRetmsg("设备不存在");
+ return resp;
+ }
+ // 检查卡状态
+ TCard tCard = cardService.getCardByCardnoAndCardphyid(req.getCardno(), req.getCardphyid());
+ if (null == tCard) {
+ resp.setRetcode(ErrorCode.ERRIF_CARD_NOTEXIST);
+ resp.setRetmsg("卡号[" + req.getCardno() + "]不存在");
+ return resp;
+ }
+
+ TCustomer customer=customerService.getCustomerByCustid(tCard.getCustid());
+ if(null==tCard){
+ resp.setRetcode(ErrorCode.ERRIF_POSDTL_NOTEXIST);
+ resp.setRetmsg("卡对应客户不存在");
+ return resp;
+ }
+
+
+ /* if (!cardService.canDeposit(tCard)) {
+ resp.setRetcode(ErrorCode.ERRIF_CARD_STATUSEXCEPT);
+ resp.setRetmsg(cardService.getReason());
+ return resp;
+ }
+ if (req.getCardbefbal() < req.getAmount()) {
+ resp.setRetcode(ErrorCode.ERRIF_CARDBAL_SHORTAGE);
+ resp.setRetmsg("卡余额不足");
+ return resp;
+ }
+ //判断账户余额
+ YKTAccount yktAccount = customerService.getYKTAccountByAccno(tCard.getAccno());
+ if (null == yktAccount) {
+ resp.setRetcode(ErrorCode.ERRIF_CARDACC_EXCEPT);
+ resp.setRetmsg(cardService.getReason());
+ return resp;
+ }
+ if (yktAccount.getBalance() < 0) {
+ resp.setRetcode(ErrorCode.ERRIF_CARDACC_SHORTAGE);
+ resp.setRetmsg("账户余额不足");
+ return resp;
+ }
+ //检查商户
+ TShop tShop = shopAccService.getTShopById(req.getShopid());
+ if (tShop == null) {
+ resp.setRetcode(ErrorCode.ERRIF_SHOP_NOTEXIST);
+ resp.setRetmsg("设备绑定的商户不存在");
+ return resp;
+ }
+ if (StringUtil.checkEmpty(tShop.getAccno())) {
+ resp.setRetcode(ErrorCode.ERRIF_SHOP_ACC_EXCEPT);
+ resp.setRetmsg("商户账号不存在");
+ return resp;
+ }*/
+
+ TTransDtl tTransdtl = new TTransDtl();
+ tTransdtl.setAccdate(req.getTermdate());
+ tTransdtl.setTermid(tDevice.getId());
+ tTransdtl.setBillno(systemUtilService.getRefno());
+ tTransdtl.setShopid(tDevice.getShopid());
+ tTransdtl.setAcctime(req.getTermtime());
+ tTransdtl.setTransdate(DateUtil.getNow("yyyyMMdd"));
+ tTransdtl.setTranstime(DateUtil.getNow("HHmmss"));
+ tTransdtl.setCardno(req.getCardno());
+ tTransdtl.setTransmode(req.getTranstype());
+ tTransdtl.setTranstype(RestaurantConstant.TRANSTYPE_TRANSDTL_ONLINE);
+ tTransdtl.setTermsqlno(req.getTermseqno());
+ tTransdtl.setManagefee(0.0);
+ tTransdtl.setRevflag(0);
+ List<TMealtype> mealtypes = mealTypeDao.findAllByOrderByEndtime();
+ try {
+ for (TMealtype m : mealtypes) {
+ if (DateUtil.compareTime(m.getEndtime(), req.getTermtime())) {
+ tTransdtl.setMealtype(m.getMealtype());
+ break;
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ resp.setRetcode(ErrorCode.ERRIF_OTHER);
+ resp.setRetmsg(e.getMessage());
+ return resp;
+ }
+
+ tTransdtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_INIT);
+ if (!StringUtil.isEmpty(tCard.getCustid())) {
+ TCustomer tCustomer = customerService.getCustomerByCustid(tCard.getCustid());
+ if (tCustomer != null) {
+ tTransdtl.setCustid(tCustomer.getCustid());
+ tTransdtl.setCustname(tCustomer.getCustname());
+ }
+ } else {
+ tTransdtl.setCustname("");
+ }
+
+ transDtlService.saveTransdtl(tTransdtl);
+ resp.setBillno(tTransdtl.getBillno());
+ resp.setRetcode(ErrorCode.ERRIF_OK);
+ resp.setAnonymous(false);
+ resp.setNeedpwdconfirm(false);
+ resp.setSourcetype("pos");
+ resp.setUserid(tTransdtl.getCustid());
+ resp.setUsername(customer.getCustname());
+ return resp;
+ }
+
+ @Override
+ public PosPayConfirmResp doPayConfirm(PosPayConfirmReq req) {
+ PosPayConfirmResp resp = new PosPayConfirmResp();
+ /* if (!clientSessionService.checkRequestSign(req)) {
+ resp.setRetcode(ErrorCode.ERRIF_SIGN_ERROR);
+ resp.setRetmsg("签名验证失败");
+ return resp;
+ }*/
+ TTransDtl tTransdtl = transDtlService.getTransDtlByBillno(req.getBillno());
+ if (null == tTransdtl) {
+ resp.setRetcode(ErrorCode.ERRIF_POSDTL_NOTEXIST);
+ resp.setRetmsg("交易参考号" + req.getBillno() + "不存在");
+ return resp;
+ }
+ TCustomer cus = customerService.getCustomerByCustid(tTransdtl.getCustid());
+ if (null == cus) {
+ resp.setRetcode(ErrorCode.ERRIF_POSDTL_NOTEXIST);
+ resp.setRetmsg("客户" + tTransdtl.getCustid() + "不存在");
+ return resp;
+ }
+ Integer extamount = 0;
+ if (cus.getCusttype() == 1) {
+ extamount += 100;
+ }
+
+ tTransdtl.setAmount(req.getAmount() / 100.0);
+ tTransdtl.setManagefee(extamount / 100.0);
+ tTransdtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_WAIT);
+ transDtlService.saveTransdtl(tTransdtl);
+
+
+ resp.setBillno(req.getBillno());
+ resp.setAmount(tTransdtl.getAmount()*100);
+ resp.setExtraamt(extamount*100.0);
+ resp.setUserid(cus.getCustid());
+ resp.setUsername(cus.getCustname());
+ if(RestaurantConstant.STATUS_TRANSDTL_WAIT.equals(tTransdtl.getStatus())){
+ resp.setRequire_query(true);
+ }else{
+ resp.setRequire_query(false);
+ }
+ resp.setBalance(0);
+ resp.setRetcode(ErrorCode.ERRIF_OK);
+ return resp;
+ }
+
+ @Override
+ public PosPayConfirmResp doPayQuery(PosPayConfirmReq req) {
+ PosPayConfirmResp resp = new PosPayConfirmResp();
+
+ TTransDtl tTransdtl = transDtlService.getTransDtlByBillno(req.getBillno());
+ if (null == tTransdtl) {
+ resp.setRetcode(ErrorCode.ERRIF_POSDTL_NOTEXIST);
+ resp.setRetmsg("交易参考号" + req.getBillno() + "不存在");
+ return resp;
+ }
+ TCustomer cus = customerService.getCustomerByCustid(tTransdtl.getCustid());
+ if (null == cus) {
+ resp.setRetcode(ErrorCode.ERRIF_POSDTL_NOTEXIST);
+ resp.setRetmsg("客户" + tTransdtl.getCustid() + "不存在");
+ return resp;
+ }
+
+ resp.setBillno(tTransdtl.getBillno());
+ resp.setAmount(tTransdtl.getAmount()*100);
+ resp.setExtraamt(tTransdtl.getManagefee()*100);
+ resp.setUserid(cus.getCustid());
+ resp.setUsername(cus.getCustname());
+ resp.setRequire_query(true);
+ resp.setBalance(0);
+ resp.setRetcode(ErrorCode.ERRIF_OK);
+ return resp;
+ }
+
+ @Override
+ public PosPayReverseResp doPayCancel(PosPayReverseReq req) {
+ PosPayReverseResp resp = new PosPayReverseResp();
+ TTransDtl tTransDtl = transDtlService.getTransDtlByBillno(req.getReversalbillno());
+ if (null == tTransDtl) {
+ resp.setRetcode(ErrorCode.ERRIF_POSDTL_NOTEXIST);
+ resp.setRetmsg("交易参考号" + req.getReversalbillno() + "不存在");
+ return resp;
+ }
+ if (!tTransDtl.getStatus().toUpperCase().equals(
+ RestaurantConstant.STATUS_TRANSDTL_SUCCESS.toUpperCase())) {
+ tTransDtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_FAIL);
+ tTransDtl.setAttr1("交易状态未成功");
+ resp.setRetcode(ErrorCode.ERRIF_POSDTL_NOTEXIST);
+ resp.setRetmsg("流水" + req.getReversalbillno() + "交易状态未成功,不能冲正");
+ return resp;
+ }
+ if (tTransDtl.getRevflag() == 1) {
+ resp.setRetcode(ErrorCode.ERRIF_POSDTL_NOTEXIST);
+ resp.setRetmsg("流水" + req.getReversalbillno() + "已冲正");
+ return resp;
+ }
+ try {
+ transDtlService.revertTransdtl(tTransDtl);
+ resp.setTermseqno(tTransDtl.getTermsqlno());
+ resp.setRetmsg("冲正成功");
+ resp.setRetcode(ErrorCode.ERRIF_OK);
+ return resp;
+ } catch (Exception e) {
+ e.printStackTrace();
+ resp.setRetcode(ErrorCode.ERRIF_TRANS_REVERSED);
+ resp.setRetmsg("冲正失败,错误:" + e.getMessage());
+ return resp;
+ }
+
+ }
+
+ @Override
+ public PosPaySysparaResp doGetDevpara(PosPaySysparaReq req) {
+ PosPaySysparaResp resp = new PosPaySysparaResp();
+ TDevparaGroup group = deviceParamService.getDevparaGroupByGroupid(req.getParagroupid());
+ if (null == group) {
+ resp.setRetcode(ErrorCode.ERRIF_POS_NOFUNC);
+ resp.setRetmsg("未找到" + req.getDevphyid() + "参数组");
+ return resp;
+ }
+ List<TDevpara> tDevparas = deviceParamService.getDevparaInfo(req.getParagroupid());
+
+ ArrayList<DevparaBean> sysParas = new ArrayList<DevparaBean>();
+ for (TDevpara t : tDevparas) {
+ DevparaBean sysPara = new DevparaBean();
+ sysPara.setParaname(t.getParaname());
+ sysPara.setParaval(t.getParaval());
+ sysParas.add(sysPara);
+ }
+ resp.setRetcode(ErrorCode.ERRIF_OK);
+ resp.setRetmsg("下载成功");
+ resp.setParaverno(group.getVerno().intValue());
+ resp.setParagroupid(group.getGroupid());
+ resp.setSyspara(sysParas);
+ return resp;
+ }
+
+ @Override
+ 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;
+ }
+ 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) {
+ resp.setCardverno(maxCardverno);
+ resp.setRetcode(ErrorCode.ERRIF_OK);
+ resp.setRetmsg("下载成功");
+ resp.setCount(0);
+ resp.setWhitelist(cardverFlags);
+ return resp;
+ }
+
+ if (blacklistCards.size() < count) {
+
+ count = blacklistCards.size();
+ }
+ for (int i = 0; i < count; i++) {
+ TCardver cardver = blacklistCards.get(i);
+ CardverBean cardverFlag = new CardverBean();
+ cardverFlag.setCardno(cardver.getCardno());
+ cardverFlag.setCardphyid(cardver.getCardphyid());
+ cardverFlag.setStatus(cardver.getOptype());
+
+ cardverFlags.add(cardverFlag);
+ }
+
+
+ resp.setCardverno(maxCardverno);
+ resp.setRetcode(ErrorCode.ERRIF_OK);
+ resp.setRetmsg("下载成功");
+ resp.setCount(count);
+ resp.setWhitelist(cardverFlags);
+ return resp;
+ }
+
+ @Override
+ public PosPayHeartBeatResp posHeartBeat(PosPayHeartBeatReq req) {
+ PosPayHeartBeatResp resp = new PosPayHeartBeatResp();
+ 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;
+ }
+ String datetime = DateUtil.getNow("yyyyMMddHHmmss");
+
+ device.setCardverno(req.getCardverno());
+ device.setLastbeattime(datetime);
+ device.setBeatstatus(1);
+ deviceService.saveDevice(device);
+
+ TDevparaGroup group = deviceParamService.getDevparaGroupByGroupid(req.getParagroupid());
+ if (group == null) {
+ resp.setRetcode(ErrorCode.ERRIF_OTHER);
+ resp.setRetmsg("未配置默认参数");
+ return resp;
+ }
+
+ resp.setRetcode(ErrorCode.ERRIF_OK);
+ resp.setRetmsg("心跳成功");
+ resp.setSystime(datetime);
+ resp.setParaverno(group.getVerno().intValue());
+ resp.setParagroupid(group.getGroupid());
+ resp.setCardverno(req.getCardverno());
+ return resp;
+
+ }
+
+ @Override
+ 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;
+ }
+
+ SalesAmtBean salesAmtBean=transDtlService.getSalesToday(req.getTermdate(),device.getId());
+ ManageFeeAmtBean feeAmtBean=transDtlService.getManageFeeToday(req.getTermdate(),device.getId());
+
+
+ resp.setRetcode(ErrorCode.ERRIF_OK);
+ resp.setRetmsg("返回成功");
+ resp.setManagefeeamt(feeAmtBean.getManagefeeamt()*100);
+ resp.setManagefeecnt(feeAmtBean.getManagefeecnt());
+ resp.setSalesamt(salesAmtBean.getSalesamt()*100);
+ resp.setSalescnt(salesAmtBean.getSalescnt());
+ resp.setSalesdate(req.getTermdate());
+ return resp;
+ }
+
+ @Override
+ public PosPayAccqueryResp AccountQuery(PosPayAccqueryReq req) {
+ 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;
+ }
+
+ TCard card=cardService.getCardByCardnoAndCardphyid(req.getCardno(),req.getCardphyid());
+
+ if(null==card){
+ resp.setRetcode(ErrorCode.ERRIF_CARD_NOTEXIST);
+ resp.setRetmsg("卡不存在");
+ return resp;
+ }
+
+ TCustomer customer=customerService.getCustomerByCustid(card.getCustid());
+ if(null==customer){
+ resp.setRetcode(ErrorCode.ERRIF_CARD_PWD);
+ resp.setRetmsg("未查询到卡对应客户");
+ return resp;
+ }
+
+ resp.setCardverno(card.getCardverno());
+ resp.setExpiredate(card.getClosedate());
+ resp.setStatus(card.getStatus());
+ resp.setUserid(customer.getCustid());
+ resp.setUsername(customer.getCustname());
+ resp.setSystime(DateUtil.getNow());
+
+ resp.setRetcode(ErrorCode.ERRIF_OK);
+ resp.setRetmsg("查询成功");
+ return resp;
+
+ }
+
+ @Override
+ public PosPayOfflineDtlResp saveOfflineDtl(PosPayOfflineDtlReq req) {
+ PosPayOfflineDtlResp resp=new PosPayOfflineDtlResp();
+ TOfflineTransDtl transDtl=new TOfflineTransDtl();
+ transDtl.setAccdate(req.getTransdate());
+ transDtl.setAcctime(req.getTranstime());
+ transDtl.setTransdate(req.getTransdate());
+ transDtl.setTranstime(req.getTranstime());
+ transDtl.setAmount(req.getAmount()/100.0);
+ transDtl.setBillno(systemUtilService.getRefno());
+ transDtl.setCardno(req.getCardno());
+ List<TMealtype> mealtypes = mealTypeDao.findAllByOrderByEndtime();
+ transDtl.setTermsqlno(req.getTermseqno());
+ String err="";
+ TDevice device = deviceService.getDeviceByDevphyid(req.getDevphyid());
+ if (null == device) {
+ err+="设备物理ID不存在;";
+
+ }
+ if (device.getState() != 1) {
+ err+="设备状态错误;";
+ }else{
+ transDtl.setTermid(device.getId());
+ transDtl.setShopid(device.getShopid());
+ }
+
+ TCard tCard = cardService.getCardByCardnoAndCardphyid(req.getCardno(), req.getCardphyid());
+ if (null == tCard) {
+
+ err+="卡号[" + req.getCardno() + "]不存在;";
+ }
+
+ TCustomer customer=customerService.getCustomerByCustid(tCard.getCustid());
+ if(null==customer){
+ err+="卡对应人员不存在;";
+ } else {
+ transDtl.setCustid(customer.getCustid());
+ transDtl.setCustname(customer.getCardno());
+ }
+
+
+
+ if("true".equals(req.getReversalflag())){
+ transDtl.setTranstype(RestaurantConstant.TRANSTYPE_TRANSDTL_REVERT);
+ }else{
+ transDtl.setTranstype(RestaurantConstant.TRANSTYPE_TRANSDTL_OFFLINE);
+ }
+
+ try {
+ for (TMealtype m : mealtypes) {
+ if (DateUtil.compareTime(m.getEndtime(), req.getTranstime())) {
+ transDtl.setMealtype(m.getMealtype());
+ break;
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ err+="设置餐补类型失败;";
+ }
+
+ if("true".equals(req.getReversalflag())){
+ TOfflineTransDtl tTransDtl =
+ offlineTransDtlService.getOfflineTransDtlByTermsqlnoAndTermid(req.getTermseqno(),device.getId(),req.getTransdate());
+ if (null == tTransDtl) {
+ err+=("终端参考号" + req.getReversaltermseqno() + "不存在;");
+ }else{
+ if (!tTransDtl.getStatus().toUpperCase().equals(
+ RestaurantConstant.STATUS_TRANSDTL_SUCCESS.toUpperCase())) {
+ err+=("交易状态未成功;");
+ }
+ if (tTransDtl.getRevflag() == 1) {
+ err+=("流水" + req.getReversaltermseqno() + "已冲正");
+ }
+
+ try {
+ if(!"".equals(err)){
+ transDtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_FAIL);
+ }else{
+ transDtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_INIT);
+ }
+ offlineTransDtlService.revertOfflineTransdtl(tTransDtl);
+ resp.setTermseqno(tTransDtl.getTermsqlno());
+ resp.setRetmsg("保存成功");
+ resp.setRetcode(ErrorCode.ERRIF_OK);
+ return resp;
+ } catch (Exception e) {
+ e.printStackTrace();
+ resp.setRetmsg("冲正失败,错误:" + e.getMessage());
+ }
+ }
+ }
+
+ if(!"".equals(err)){
+ transDtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_FAIL);
+ }else{
+ transDtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_INIT);
+ }
+ transDtl.setAttr1(err);
+ offlineTransDtlService.saveTransdtl(transDtl);
+
+ resp.setRetcode(ErrorCode.ERRIF_OK);
+ resp.setRetmsg("保存成功");
+ resp.setTermseqno(req.getTermseqno());
+ return resp;
+ }
+
+ /* @Override
+ public void checkOfflineDtl() {
+ List<TOfflineTransDtl> transDtls=offlineTransDtlService.getUncheckOfflineTransdtl(DateUtil.getNow("yyyyMMdd"));
+ if(transDtls.size()<1){
+ return;
+ }
+ for(TOfflineTransDtl dtl:transDtls){
+
+
+
+
+ }
+
+ }*/
+
+}
diff --git a/src/main/java/com/supwisdom/dlpay/api/task/PosPayTask.java b/src/main/java/com/supwisdom/dlpay/api/task/PosPayTask.java
new file mode 100644
index 0000000..7b88a0b
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/task/PosPayTask.java
@@ -0,0 +1,41 @@
+package com.supwisdom.dlpay.api.task;
+
+import com.supwisdom.dlpay.api.service.PosPayService;
+import com.supwisdom.dlpay.framework.util.DateUtil;
+import com.supwisdom.dlpay.restaurant.dao.TransDtlDao;
+import com.supwisdom.dlpay.restaurant.domain.TTransDtl;
+import com.supwisdom.dlpay.restaurant.service.TransDtlService;
+import com.supwisdom.dlpay.restaurant.util.RestaurantConstant;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+@Component
+@Configuration //1.主要用于标记配置类,兼备Component的效果。
+@EnableScheduling // 2.开启定时任务
+public class PosPayTask {
+ private static final Logger logger = LoggerFactory.getLogger(PosPayTask.class);
+
+
+ @Autowired
+ private TransDtlService transDtlService;
+
+ @Scheduled(cron = "0/10 * * * * ?")
+ private void configureTasks() {
+ List<TTransDtl> dtls=transDtlService.getSubmittingTransdtl();
+ if(dtls.size()>0){
+ logger.info("正在上传"+dtls.size()+"笔流水");
+ for(TTransDtl dtl:dtls){
+ dtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_SUCCESS);
+ transDtlService.saveTransdtl(dtl);
+ }
+ }
+
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/api/util/ErrorCode.java b/src/main/java/com/supwisdom/dlpay/api/util/ErrorCode.java
new file mode 100644
index 0000000..57a7905
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/util/ErrorCode.java
@@ -0,0 +1,95 @@
+package com.supwisdom.dlpay.api.util;
+
+/**
+ * Created by tangcheng on 16/8/8.
+ */
+public class ErrorCode {
+
+ public final static String ERRIF_OK = "0";// 成功
+ public final static String ERRIF_SYSTEM = "1";// 系统故障
+ public final static String ERRIF_NETWORK = "2";// 网络故障
+ public final static String ERRIF_DATABASE_ERROR = "3";// 数据库错误
+ public final static String ERRIF_SYS_DAYENDACC = "9";// 系统日终处理中
+ public final static String ERRIF_SIGN_ERROR = "4"; //签名验证错误
+ public final static String ERRIF_CHECKNUM_ERROR = "5";//验证码错误
+ public final static String ERRIF_FRONT_NOREG = "10";// 前置机未注册
+ public final static String ERRIF_FRONT_NOACTIVE = "11";// 前置机未激活
+ public final static String ERRIF_FRONT_NOLOGIN = "12";// 前置机未签到
+ public final static String ERRIF_FRONT_CLOSE = "13";// 前置机已注销
+ public final static String ERRIF_FRONT_DYNAKEY = "14";// 前置机密钥错
+ public final static String ERRIF_FRONT_NOFUNC = "15";// 前置机无此功能
+ public final static String ERRIF_DATE_FMT = "16";// 日期格式错误
+
+ public final static String ERRIF_POS_NOREG = "20";// 终端未注册
+ public final static String ERRIF_POS_NOTLOGIN = "21";// 终端未签到
+ public final static String ERRIF_POS_NOENABLE = "22";// 终端未启用
+ public final static String ERRIF_POS_DISABLE = "23";// 终端已停用
+ public final static String ERRIF_POS_CLOSE = "24";// 终端已注销
+ public final static String ERRIF_POS_TERMID = "25";// 终端号错误
+ public final static String ERRIF_POS_NOSHOP = "26";// 终端无指定商户
+ public final static String ERRIF_POS_NOINWORKTIME = "27";// 终端非工作时间
+ public final static String ERRIF_POS_NOFUNC = "28";// 终端无此功能
+ public final static String ERRIF_POS_NOAUTH = "29";// 终端未授权
+ public final static String ERRIF_POS_SEQNO_REPEAT = "30";// 终端流水号重复
+ public final static String ERRIF_POSDTL_NOTEXIST = "31";// 流水不存在
+ public final static String ERRIF_TRANS_REVERSED = "32";// 交易已冲正
+ public final static String ERRIF_POS_BOARDRATE = "33";// 搭伙费率错误
+ public final static String ERRIF_POS_TRANSAMT = "34";// 交易金额错误
+ public final static String ERRIF_POS_TRANSTYPE = "35";// 交易类型错误
+ public final static String ERRIF_POS_SHOPID = "36";// 终端机商户号错
+ public final static String ERRIF_NOTREVSUBSIDY = "37";// 有补助不能冲正
+ public final static String ERRIF_DATA = "38";// 终端数据错误
+
+ public final static String ERRIF_POS_ADDR = "39";// 终端地址错误
+
+ public final static String ERRIF_SHOP_NOTEXIST = "40";// 商户号不存在
+ public final static String ERRIF_SHOP_CLOSE = "41";// 商户已注销
+ public final static String ERRIF_SHOP_TYPE = "42";// 商户类型错误
+ public final static String ERRIF_SHOP_STOPPAY = "43";// 商户已止付
+ public final static String ERRIF_SHOP_ACC_EXCEPT = "44";// 商户账户异常
+ public final static String ERRIF_SHOPBAL_SHORTAGE = "45";// 商户余额不足
+
+ public final static String ERRIF_DPSDTL_NOTEXIST = "49";// 充值流水不存在
+ public final static String ERRIF_CARD_NOTEXIST = "50";// 卡号不存在
+
+ public final static String ERRIF_CARD_LOST = "51";// 卡已挂失
+ public final static String ERRIF_CARD_FROZED = "52";// 卡已冻结
+ public final static String ERRIF_CARD_BAD = "53";// 卡已登记为坏卡
+ public final static String ERRIF_CARD_LOCKED = "54";// 卡已锁定
+ public final static String ERRIF_CARD_DISABLED = "55";// 卡已禁用
+ public final static String ERRIF_CARD_EXPIRED = "56";// 卡已过有效期
+ public final static String ERRIF_CARD_CLOSE = "57";// 卡已注销
+ public final static String ERRIF_CARD_STATUSEXCEPT = "58";//卡状态异常
+ public final static String ERRIF_CARD_NORIGHT = "59";// 卡无此权限
+ public final static String ERRIF_CARD_PWD = "60";// 卡密码错误
+ public final static String ERRIF_CARDCNT_REPEAT = "61";// 卡交易次数重复
+ public final static String ERRIF_CARDCNT_EXCEPT = "62";// 卡交易次数异常
+ public final static String ERRIF_CARD_SUBSIDYNO_EXCEPT = "63";//卡补助序号异常
+ public final static String ERRIF_CARDBAL_SHORTAGE = "64";// 卡余额不足
+ public final static String ERRIF_CARDBAL_OVERDRAW = "65";// 卡已透支
+ public final static String ERRIF_CARDBAL_EXCEED_LIMIT = "66";// 卡余额超过限额
+ public final static String ERRIF_CARDBAL_EXCEPT = "67";// 卡余额异常
+ public final static String ERRIF_CARDACC_SHORTAGE = "68";// 卡账户余额不足
+ public final static String ERRIF_CARDACC_OVERDRAW = "69";// 卡账户已透支
+ public final static String ERRIF_CARDACC_EXCEPT = "70";// 卡账户异常
+ public final static String ERRIF_CARD_PAY_LIMIT = "71";// 消费金额超限
+ public final static String ERRIF_DPSKEY_NOTFIND= "72";// 系统充值秘钥未配置
+
+
+ public final static String ERRIF_AUTHCARD_INVALID = "81";// 授权卡认证错误
+ public final static String ERRIF_AUTHCARD_PWD = "89";// 授权卡密码错误
+ public final static String ERRIF_DEPOSIT_EXCEED_LIMIT = "90";// 充值已达到限额
+ public final static String E_CARDKEY = "98";// 系统卡密钥错误
+ public final static String ERRIF_OTHER = "99";// 其他错误
+ public final static String E_DB_NODATA = "100";// 无符合条件记录
+ public final static String E_DB_QRY = "101";// 查询错误
+ public final static String E_REQ_DATA_ERROR = "102";//请求数据有误
+ public final static String E_DB_CONSTRAINTVIOLATIONEXCEPTION = "111";//唯一性冲突
+ public final static String E_DB_SEQ_REFNO_R = "1000";// 获取交易参考号序列错误
+
+ public final static String E_EMPTY_PARAM = "231"; //请求参数为空
+ public final static String E_EMPTY_AREA = "232"; //设备、用户不存在或没有配置校区
+ public final static String E_CHECK_AREA = "233"; //设备、用户校区不匹配
+
+
+}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/ShopSettlementDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/ShopSettlementDao.java
index aa132f1..c763deb 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/dao/ShopSettlementDao.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/dao/ShopSettlementDao.java
@@ -4,8 +4,12 @@
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
+import java.util.List;
+
@Repository
public interface ShopSettlementDao extends JpaRepository<TShopSettlement, String> {
int countByShopid(Integer shopid);
+
+ List<TShopSettlement> findByShopid(Integer shopid);
}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TShopSettlement.java b/src/main/java/com/supwisdom/dlpay/framework/domain/TShopSettlement.java
index 03a0faf..e84e91a 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/domain/TShopSettlement.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/domain/TShopSettlement.java
@@ -8,7 +8,7 @@
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_SETTLEMENT")
@Column(name="SHOPSettlementno",unique = true, nullable = false, length = 9)
- private String SHOPSettlementno;
+ private String shopsettlementno;
@Column(name="SHOPID", precision = 9)
private Integer shopid;
@@ -20,12 +20,12 @@
private String operno;
- public String getSHOPSettlementno() {
- return SHOPSettlementno;
+ public String getShopSettlementno() {
+ return shopsettlementno;
}
- public void setSHOPSettlementno(String SHOPSettlementno) {
- this.SHOPSettlementno = SHOPSettlementno;
+ public void setShopSettlementno(String SHOPSettlementno) {
+ this.shopsettlementno = SHOPSettlementno;
}
public Integer getShopid() {
diff --git a/src/main/java/com/supwisdom/dlpay/framework/filter/CrosXssFilter.java b/src/main/java/com/supwisdom/dlpay/framework/filter/CrosXssFilter.java
index 60d79cf..d124781 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/filter/CrosXssFilter.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/filter/CrosXssFilter.java
@@ -9,6 +9,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
+import java.util.Map;
@WebFilter
public class CrosXssFilter implements Filter {
diff --git a/src/main/java/com/supwisdom/dlpay/framework/security/MyPermissionEvaluator.java b/src/main/java/com/supwisdom/dlpay/framework/security/MyPermissionEvaluator.java
index 4e96995..ea2c25b 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/security/MyPermissionEvaluator.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/security/MyPermissionEvaluator.java
@@ -29,6 +29,7 @@
@Override
public boolean hasPermission(Authentication authentication, Object targetUri, Object permission) {
//TODO save logger
+
if (targetUri != null) {
UserDetails userDetails = (UserDetails) authentication.getPrincipal();
if (userDetails != null) {
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/DateUtil.java b/src/main/java/com/supwisdom/dlpay/framework/util/DateUtil.java
index 6faf336..93a4244 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/util/DateUtil.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/util/DateUtil.java
@@ -10,333 +10,343 @@
import java.util.TimeZone;
public class DateUtil {
- private static final Logger logger = LoggerFactory.getLogger(DateUtil.class);
- public static final String DATE_FMT = "yyyyMMdd";
- public static final String TIME_FMT = "HHmmss";
- public static final String DATETIME_FMT = "yyyyMMddHHmmss";
+ private static final Logger logger = LoggerFactory.getLogger(DateUtil.class);
+ public static final String DATE_FMT = "yyyyMMdd";
+ public static final String TIME_FMT = "HHmmss";
+ public static final String DATETIME_FMT = "yyyyMMddHHmmss";
- /**
- * Description: 返回一个当前时间 @return String 格式:yyyyMMddHHmmss @exception Modify
- * History:
- */
- public static String getNow() {
- java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyyMMddHHmmss");
- return sdf.format(new Date());
- }
-
-
- /**
- * Description: 根据类型返回一个当前时间 @param partten String @return String 格式:partten
- */
- public static String getNow(String partten) {
- SimpleDateFormat sdf = new SimpleDateFormat(partten);
- return sdf.format(new Date());
- }
-
- /**
- * Description: 得到一个特殊的时间 @param startTime String 格式:yyyyMMddHHmmss @param
- * interval int 秒 @return String 格式:partten @exception Modify History:
- */
- public static String getNewTime(String startTime, int interval) {
- try {
- java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyyMMddHHmmss");
- Date d = sdf.parse(startTime);
- Calendar calendar = Calendar.getInstance();
- calendar.setTimeInMillis(d.getTime());
- calendar.add(Calendar.SECOND, interval);
- return sdf.format(calendar.getTime());
- } catch (ParseException e) {
- return startTime;
+ /**
+ * Description: 返回一个当前时间 @return String 格式:yyyyMMddHHmmss @exception Modify
+ * History:
+ */
+ public static String getNow() {
+ java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyyMMddHHmmss");
+ return sdf.format(new Date());
}
- }
- /**
- * Description: 得到一个特殊的时间 @param startTime String 格式:partten @param
- * interval int 秒 @return String 格式:partten @exception Modify History:
- */
- public static String getNewTime(String startTime, int interval, String partten) {
- try {
- java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(partten);
- Date d = sdf.parse(startTime);
- Calendar calendar = Calendar.getInstance();
- calendar.setTimeInMillis(d.getTime());
- calendar.add(Calendar.SECOND, interval);
- return sdf.format(calendar.getTime());
- } catch (ParseException e) {
- return startTime;
- }
- }
+ public static boolean compareTime(String time1,String time2) throws ParseException{
+ SimpleDateFormat df = new SimpleDateFormat("HHmmss");
+ Date dt1=df.parse(time1);
+ Date dt2=df.parse(time2);
+ if(dt1.getTime()>dt2.getTime()){
+ return true;
- public static String getNewDay(String startDay, int intervalday) {
- try {
- java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyyMMdd");
- Date d = sdf.parse(startDay);
- Calendar calendar = Calendar.getInstance();
- calendar.setTimeInMillis(d.getTime());
- calendar.add(Calendar.DATE, intervalday);
- return sdf.format(calendar.getTime());
- } catch (ParseException e) {
- return startDay;
- }
- }
-
- /**
- * 获取当天前后的时间
- *
- * @param intervalday
- * @param format
- * @return
- */
- public static String getNewDay(int intervalday, String format) {
- SimpleDateFormat sdf = new SimpleDateFormat(format);
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(new Date());
- calendar.add(Calendar.DATE, intervalday);
- return sdf.format(calendar.getTime());
- }
-
- /**
- * 得到两个日期相差的天数 格式 yyyyMMdd @return diffdays = secondDay - firstDay
- */
- public static long getIntervalDay(String firstDay, String secondDay) {
- try {
- java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyyMMdd");
- Date f = sdf.parse(firstDay);
- Date s = sdf.parse(secondDay);
- long time = s.getTime() - f.getTime();
- return time / (24 * 60 * 60 * 1000);
- } catch (ParseException e) {
- return 0;
- }
- }
-
- /**
- * Description: 比较两个时间字符串的前后关系 @param firstTime String 格式:yyyyMMddHHmmss
- *
- * @param secondTime String 格式: yyyyMMddHHmmss @return int |
- * firstTime=second int=0 | firstTime>secondTime int>0 |
- * firstTime<secondTime int<0 @exception Modify History:
- */
- public static int compareDatetime(String firstTime, String secondTime) {
- try {
- java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyyMMddHHmmss");
- Date f = sdf.parse(firstTime);
- Date s = sdf.parse(secondTime);
- return f.compareTo(s);
- } catch (ParseException e) {
- return 0;
- }
- }
-
- /**
- * Description: 比较两个时间字符串的前后关系 @param firstTime String 格式:pattern
- *
- * @param secondTime String 格式: yyyyMMddHHmmss @return int |
- * firstTime=second int=0 | firstTime>secondTime int>0 |
- * firstTime<secondTime int<0 @exception Modify History:
- */
- public static int compareDatetime(String firstTime, String secondTime, String pattern) {
- try {
- java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(pattern);
- Date f = sdf.parse(firstTime);
- Date s = sdf.parse(secondTime);
- return f.compareTo(s);
- } catch (ParseException e) {
- return 0;
- }
- }
-
- /**
- * Description: 比较两个时间字符串的时间差 @param firstTime String 格式:yyyyMMddHHmmss
- *
- * @param secondTime String 格式: yyyyMMddHHmmss @param second int 格式 @return
- * int | firstTime+seconds=secondTime int=0 | firstTime+seconds>secondTime
- * int>0 | firstTime+seconds<secondTime int<0 @exception Modify History:
- */
- public static int compareDatetime(String firstTime, String secondTime, int seconds) {
- try {
- java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyyMMddHHmmss");
- Date f = sdf.parse(firstTime);
- Date s = sdf.parse(secondTime);
- Calendar calendar = Calendar.getInstance();
- calendar.setTimeInMillis(f.getTime());
- calendar.add(Calendar.SECOND, seconds);
- Date temp = calendar.getTime();
- return temp.compareTo(s);
- } catch (Exception e) {
- return 0;
- }
- }
-
- /**
- * Description: 对time重新格式化
- */
- public static String reformatDatetime(String time, String fromPattern, String toPattern) {
- try {
- java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(fromPattern);
- Date d = sdf.parse(time);
- Calendar calendar = Calendar.getInstance();
- calendar.setTimeInMillis(d.getTime());
- sdf = new SimpleDateFormat(toPattern);
- return sdf.format(calendar.getTime());
- } catch (Exception e) {
- e.printStackTrace();
- return time;
- }
- }
-
- /**
- * 获得两个字符串日期之间的时间差(单位毫秒) 格式 yyyyMMddHHmmss
- */
- public static long getInterval(String startTime, String endTime) {
- long duration = 0;
- try {
- java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyyMMddHHmmss");
- duration = sdf.parse(endTime).getTime() - sdf.parse(startTime).getTime();
- } catch (ParseException e) {
- logger.error("Hi guys,there is an error when you try to parse the date string");
- }
- return duration;
- }
-
- /**
- * 获得两个字符串日期之间的时间差(单位毫秒)
- */
- public static long getIntervalTime(String startTime, String endTime, String pattern) {
- long duration = 0;
- try {
- java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(pattern);
- duration = sdf.parse(endTime).getTime() - sdf.parse(startTime).getTime();
- } catch (ParseException e) {
- logger.error("Hi guys,there is an error when you try to parse the date string");
- }
- return duration;
- }
-
- /**
- * 转换成日期格式
- * 短格式:20140401 -> 2014-04-01
- * 中格式:201404011200 -> 2014-04-01 12:00
- * 长格式:20140401123025 -> 2014-04-01 12:30:25
- **/
- public static String parseToDateFormat(String str) {
- switch (str.length()) {
- case 8:
- str = str.substring(0, 4) + "-" + str.substring(4, 6) + "-" + str.substring(6, 8);
- break;
- case 12:
- str = str.substring(0, 4) + "-" + str.substring(4, 6) + "-" + str.substring(6, 8) + " " + str.substring(8, 10) + ":" + str.substring(10, 12);
- break;
- case 14:
- str = str.substring(0, 4) + "-" + str.substring(4, 6) + "-" + str.substring(6, 8) + " " + str.substring(8, 10) + ":" + str.substring(10, 12) + ":" + str.substring(12, 14);
- break;
- default:
- break;
- }
- return str;
- }
-
- /**
- * 解日期格式
- * 短格式:2014-04-01 -> 20140401
- * 中格式:2014-04-01 12:00 -> 201404011200
- * 长格式:2014-04-01 12:30:25 -> 20140401123025
- **/
- public static String unParseToDateFormat(String str) {
- return str.replaceAll("-", "").replaceAll(" ", "").replaceAll(":", "");
- }
-
- /**
- * 检验时间格式
- */
- public static boolean checkDatetimeValid(String datetime, String pattern) {
- if (null == datetime) return false;
- try {
- java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(pattern);
- Date d = sdf.parse(datetime);
- return datetime.trim().equals(sdf.format(d));
- } catch (Exception e) {
- }
- return false;
- }
-
- /**
- * 获取指定日期是星期几 格式 yyyyMMdd
- * MON|TUE|WED|THU|FRI|SAT|SUN
- * 1 2 3 4 5 6 7
- */
- public static int getWeekday(String datestr) {
- try {
- java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyyMMdd");
- Calendar calendar = Calendar.getInstance();
- boolean isFirstSunday = (calendar.getFirstDayOfWeek() == Calendar.SUNDAY); //一周第一天是否为星期天
- Date d = sdf.parse(datestr);
- calendar.setTimeInMillis(d.getTime());
- int weekDay = calendar.get(calendar.DAY_OF_WEEK);
- if (isFirstSunday) {
- weekDay = weekDay - 1;
- if (weekDay == 0) {
- weekDay = 7;
}
- }
- return weekDay;
- } catch (Exception e) {
- return -1;
+ return false;
+
}
- }
-
- /**
- * 获取指定日期
- */
- public static Date getSpecifyDate(String datestr, String pattern) {
- try {
- java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(pattern);
- Date result = sdf.parse(datestr);
- return result;
- } catch (Exception e) {
- return new Date();
+ /**
+ * Description: 根据类型返回一个当前时间 @param partten String @return String 格式:partten
+ */
+ public static String getNow(String partten) {
+ SimpleDateFormat sdf = new SimpleDateFormat(partten);
+ return sdf.format(new Date());
}
- }
- public static Integer getLastDayOfMonth(Integer year, Integer month) {
- Calendar cal = Calendar.getInstance();
- cal.set(Calendar.YEAR, year);
- cal.set(Calendar.MONTH, month - 1);
- cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DATE));
- String str = new SimpleDateFormat("yyyyMMdd ").format(cal.getTime()).toString();
- Integer result = Integer.parseInt(str.substring(0, 4) + str.substring(4, 6) + str.substring(6, 8));
- return result;
- }
+ /**
+ * Description: 得到一个特殊的时间 @param startTime String 格式:yyyyMMddHHmmss @param
+ * interval int 秒 @return String 格式:partten @exception Modify History:
+ */
+ public static String getNewTime(String startTime, int interval) {
+ try {
+ java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyyMMddHHmmss");
+ Date d = sdf.parse(startTime);
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTimeInMillis(d.getTime());
+ calendar.add(Calendar.SECOND, interval);
+ return sdf.format(calendar.getTime());
+ } catch (ParseException e) {
+ return startTime;
+ }
+ }
- private static Date set(Date date, int calendarField, int amount) {
- Calendar c = Calendar.getInstance();
- c.setLenient(false);
- c.setTime(date);
- c.add(calendarField, amount);
- return c.getTime();
- }
+ /**
+ * Description: 得到一个特殊的时间 @param startTime String 格式:partten @param
+ * interval int 秒 @return String 格式:partten @exception Modify History:
+ */
+ public static String getNewTime(String startTime, int interval, String partten) {
+ try {
+ java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(partten);
+ Date d = sdf.parse(startTime);
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTimeInMillis(d.getTime());
+ calendar.add(Calendar.SECOND, interval);
+ return sdf.format(calendar.getTime());
+ } catch (ParseException e) {
+ return startTime;
+ }
+ }
+
+ public static String getNewDay(String startDay, int intervalday) {
+ try {
+ java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyyMMdd");
+ Date d = sdf.parse(startDay);
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTimeInMillis(d.getTime());
+ calendar.add(Calendar.DATE, intervalday);
+ return sdf.format(calendar.getTime());
+ } catch (ParseException e) {
+ return startDay;
+ }
+ }
+
+ /**
+ * 获取当天前后的时间
+ *
+ * @param intervalday
+ * @param format
+ * @return
+ */
+ public static String getNewDay(int intervalday, String format) {
+ SimpleDateFormat sdf = new SimpleDateFormat(format);
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(new Date());
+ calendar.add(Calendar.DATE, intervalday);
+ return sdf.format(calendar.getTime());
+ }
+
+ /**
+ * 得到两个日期相差的天数 格式 yyyyMMdd @return diffdays = secondDay - firstDay
+ */
+ public static long getIntervalDay(String firstDay, String secondDay) {
+ try {
+ java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyyMMdd");
+ Date f = sdf.parse(firstDay);
+ Date s = sdf.parse(secondDay);
+ long time = s.getTime() - f.getTime();
+ return time / (24 * 60 * 60 * 1000);
+ } catch (ParseException e) {
+ return 0;
+ }
+ }
+
+ /**
+ * Description: 比较两个时间字符串的前后关系 @param firstTime String 格式:yyyyMMddHHmmss
+ *
+ * @param secondTime String 格式: yyyyMMddHHmmss @return int |
+ * firstTime=second int=0 | firstTime>secondTime int>0 |
+ * firstTime<secondTime int<0 @exception Modify History:
+ */
+ public static int compareDatetime(String firstTime, String secondTime) {
+ try {
+ java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyyMMddHHmmss");
+ Date f = sdf.parse(firstTime);
+ Date s = sdf.parse(secondTime);
+ return f.compareTo(s);
+ } catch (ParseException e) {
+ return 0;
+ }
+ }
+
+ /**
+ * Description: 比较两个时间字符串的前后关系 @param firstTime String 格式:pattern
+ *
+ * @param secondTime String 格式: yyyyMMddHHmmss @return int |
+ * firstTime=second int=0 | firstTime>secondTime int>0 |
+ * firstTime<secondTime int<0 @exception Modify History:
+ */
+ public static int compareDatetime(String firstTime, String secondTime, String pattern) {
+ try {
+ java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(pattern);
+ Date f = sdf.parse(firstTime);
+ Date s = sdf.parse(secondTime);
+ return f.compareTo(s);
+ } catch (ParseException e) {
+ return 0;
+ }
+ }
+
+ /**
+ * Description: 比较两个时间字符串的时间差 @param firstTime String 格式:yyyyMMddHHmmss
+ *
+ * @param secondTime String 格式: yyyyMMddHHmmss @param second int 格式 @return
+ * int | firstTime+seconds=secondTime int=0 | firstTime+seconds>secondTime
+ * int>0 | firstTime+seconds<secondTime int<0 @exception Modify History:
+ */
+ public static int compareDatetime(String firstTime, String secondTime, int seconds) {
+ try {
+ java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyyMMddHHmmss");
+ Date f = sdf.parse(firstTime);
+ Date s = sdf.parse(secondTime);
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTimeInMillis(f.getTime());
+ calendar.add(Calendar.SECOND, seconds);
+ Date temp = calendar.getTime();
+ return temp.compareTo(s);
+ } catch (Exception e) {
+ return 0;
+ }
+ }
+
+ /**
+ * Description: 对time重新格式化
+ */
+ public static String reformatDatetime(String time, String fromPattern, String toPattern) {
+ try {
+ java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(fromPattern);
+ Date d = sdf.parse(time);
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTimeInMillis(d.getTime());
+ sdf = new SimpleDateFormat(toPattern);
+ return sdf.format(calendar.getTime());
+ } catch (Exception e) {
+ e.printStackTrace();
+ return time;
+ }
+ }
+
+ /**
+ * 获得两个字符串日期之间的时间差(单位毫秒) 格式 yyyyMMddHHmmss
+ */
+ public static long getInterval(String startTime, String endTime) {
+ long duration = 0;
+ try {
+ java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyyMMddHHmmss");
+ duration = sdf.parse(endTime).getTime() - sdf.parse(startTime).getTime();
+ } catch (ParseException e) {
+ logger.error("Hi guys,there is an error when you try to parse the date string");
+ }
+ return duration;
+ }
+
+ /**
+ * 获得两个字符串日期之间的时间差(单位毫秒)
+ */
+ public static long getIntervalTime(String startTime, String endTime, String pattern) {
+ long duration = 0;
+ try {
+ java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(pattern);
+ duration = sdf.parse(endTime).getTime() - sdf.parse(startTime).getTime();
+ } catch (ParseException e) {
+ logger.error("Hi guys,there is an error when you try to parse the date string");
+ }
+ return duration;
+ }
+
+ /**
+ * 转换成日期格式
+ * 短格式:20140401 -> 2014-04-01
+ * 中格式:201404011200 -> 2014-04-01 12:00
+ * 长格式:20140401123025 -> 2014-04-01 12:30:25
+ **/
+ public static String parseToDateFormat(String str) {
+ switch (str.length()) {
+ case 8:
+ str = str.substring(0, 4) + "-" + str.substring(4, 6) + "-" + str.substring(6, 8);
+ break;
+ case 12:
+ str = str.substring(0, 4) + "-" + str.substring(4, 6) + "-" + str.substring(6, 8) + " " + str.substring(8, 10) + ":" + str.substring(10, 12);
+ break;
+ case 14:
+ str = str.substring(0, 4) + "-" + str.substring(4, 6) + "-" + str.substring(6, 8) + " " + str.substring(8, 10) + ":" + str.substring(10, 12) + ":" + str.substring(12, 14);
+ break;
+ default:
+ break;
+ }
+ return str;
+ }
+
+ /**
+ * 解日期格式
+ * 短格式:2014-04-01 -> 20140401
+ * 中格式:2014-04-01 12:00 -> 201404011200
+ * 长格式:2014-04-01 12:30:25 -> 20140401123025
+ **/
+ public static String unParseToDateFormat(String str) {
+ return str.replaceAll("-", "").replaceAll(" ", "").replaceAll(":", "");
+ }
+
+ /**
+ * 检验时间格式
+ */
+ public static boolean checkDatetimeValid(String datetime, String pattern) {
+ if (null == datetime) return false;
+ try {
+ java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(pattern);
+ Date d = sdf.parse(datetime);
+ return datetime.trim().equals(sdf.format(d));
+ } catch (Exception e) {
+ }
+ return false;
+ }
+
+ /**
+ * 获取指定日期是星期几 格式 yyyyMMdd
+ * MON|TUE|WED|THU|FRI|SAT|SUN
+ * 1 2 3 4 5 6 7
+ */
+ public static int getWeekday(String datestr) {
+ try {
+ java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyyMMdd");
+ Calendar calendar = Calendar.getInstance();
+ boolean isFirstSunday = (calendar.getFirstDayOfWeek() == Calendar.SUNDAY); //一周第一天是否为星期天
+ Date d = sdf.parse(datestr);
+ calendar.setTimeInMillis(d.getTime());
+ int weekDay = calendar.get(calendar.DAY_OF_WEEK);
+ if (isFirstSunday) {
+ weekDay = weekDay - 1;
+ if (weekDay == 0) {
+ weekDay = 7;
+ }
+ }
+ return weekDay;
+ } catch (Exception e) {
+ return -1;
+ }
+ }
+
+ /**
+ * 获取指定日期
+ */
+ public static Date getSpecifyDate(String datestr, String pattern) {
+ try {
+ java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(pattern);
+ Date result = sdf.parse(datestr);
+ return result;
+ } catch (Exception e) {
+ return new Date();
+ }
+ }
+
+ public static Integer getLastDayOfMonth(Integer year, Integer month) {
+ Calendar cal = Calendar.getInstance();
+ cal.set(Calendar.YEAR, year);
+ cal.set(Calendar.MONTH, month - 1);
+ cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DATE));
+ String str = new SimpleDateFormat("yyyyMMdd ").format(cal.getTime()).toString();
+ Integer result = Integer.parseInt(str.substring(0, 4) + str.substring(4, 6) + str.substring(6, 8));
+ return result;
+ }
+
+ private static Date set(Date date, int calendarField, int amount) {
+ Calendar c = Calendar.getInstance();
+ c.setLenient(false);
+ c.setTime(date);
+ c.add(calendarField, amount);
+ return c.getTime();
+ }
- public static Date setMinutes(Date date, int amount) {
- return set(date, Calendar.MINUTE, amount);
- }
+ public static Date setMinutes(Date date, int amount) {
+ return set(date, Calendar.MINUTE, amount);
+ }
- public static long getNowSecond() {
- Calendar calendar = Calendar.getInstance();
- return calendar.getTimeInMillis() / 1000;
- }
+ public static long getNowSecond() {
+ Calendar calendar = Calendar.getInstance();
+ return calendar.getTimeInMillis() / 1000;
+ }
- public static String getUTCTime(Long timeInMillisSecond) {
- Calendar time = Calendar.getInstance();
- SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
- fmt.setTimeZone(TimeZone.getTimeZone("UTC"));
- time.setTimeInMillis(timeInMillisSecond);
- return fmt.format(time.getTime());
- }
+ public static String getUTCTime(Long timeInMillisSecond) {
+ Calendar time = Calendar.getInstance();
+ SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
+ fmt.setTimeZone(TimeZone.getTimeZone("UTC"));
+ time.setTimeInMillis(timeInMillisSecond);
+ return fmt.format(time.getTime());
+ }
- public static String getUTCTime() {
- return getUTCTime(System.currentTimeMillis());
- }
+ public static String getUTCTime() {
+ return getUTCTime(System.currentTimeMillis());
+ }
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/bean/ManageFeeAmtBean.java b/src/main/java/com/supwisdom/dlpay/restaurant/bean/ManageFeeAmtBean.java
new file mode 100644
index 0000000..e4e6294
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/bean/ManageFeeAmtBean.java
@@ -0,0 +1,26 @@
+package com.supwisdom.dlpay.restaurant.bean;
+
+
+import java.math.BigInteger;
+
+public class ManageFeeAmtBean {
+ private Double managefeeamt;
+
+ private BigInteger managefeecnt;
+
+ public Double getManagefeeamt() {
+ return managefeeamt;
+ }
+
+ public void setManagefeeamt(Double managefeeamt) {
+ this.managefeeamt = managefeeamt;
+ }
+
+ public BigInteger getManagefeecnt() {
+ return managefeecnt;
+ }
+
+ public void setManagefeecnt(BigInteger managefeecnt) {
+ this.managefeecnt = managefeecnt;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/bean/MealBean.java b/src/main/java/com/supwisdom/dlpay/restaurant/bean/MealBean.java
new file mode 100644
index 0000000..9086da8
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/bean/MealBean.java
@@ -0,0 +1,34 @@
+package com.supwisdom.dlpay.restaurant.bean;
+
+/**
+ * Created by xiakaixiang on 16/9/26.
+ */
+public class MealBean {
+ private String mealtype; //餐次
+ private Integer totalcnt; //人次
+ private Double totalamt; //金额
+
+ public String getMealtype() {
+ return mealtype;
+ }
+
+ public void setMealtype(String mealtype) {
+ this.mealtype = mealtype;
+ }
+
+ public Integer getTotalcnt() {
+ return totalcnt;
+ }
+
+ public void setTotalcnt(Integer totalcnt) {
+ this.totalcnt = totalcnt;
+ }
+
+ public Double getTotalamt() {
+ return totalamt;
+ }
+
+ public void setTotalamt(Double totalamt) {
+ this.totalamt = totalamt;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/bean/SalesAmtBean.java b/src/main/java/com/supwisdom/dlpay/restaurant/bean/SalesAmtBean.java
new file mode 100644
index 0000000..7f30ca0
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/bean/SalesAmtBean.java
@@ -0,0 +1,26 @@
+package com.supwisdom.dlpay.restaurant.bean;
+
+
+import java.math.BigInteger;
+
+public class SalesAmtBean{
+ private Double salesamt;
+
+ private BigInteger salescnt;
+
+ public Double getSalesamt() {
+ return salesamt;
+ }
+
+ public void setSalesamt(Double salesamt) {
+ this.salesamt = salesamt;
+ }
+
+ public BigInteger getSalescnt() {
+ return salescnt;
+ }
+
+ public void setSalescnt(BigInteger salescnt) {
+ this.salescnt = salescnt;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/bean/ShopMealShowBean.java b/src/main/java/com/supwisdom/dlpay/restaurant/bean/ShopMealShowBean.java
new file mode 100644
index 0000000..4e4a595
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/bean/ShopMealShowBean.java
@@ -0,0 +1,55 @@
+package com.supwisdom.dlpay.restaurant.bean;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by xiakaixiang on 16/9/26.
+ */
+public class ShopMealShowBean {
+ private String accno;
+ private String shopname;
+ private Integer rowcnt=0;
+ private List<ShopMealSqlBean> termlist=new ArrayList<ShopMealSqlBean>(0);
+ private List<MealBean> suminfo=new ArrayList<MealBean>(0);
+
+ public List<MealBean> getSuminfo() {
+ return suminfo;
+ }
+
+ public void setSuminfo(List<MealBean> suminfo) {
+ this.suminfo = suminfo;
+ }
+
+ public Integer getRowcnt() {
+ return rowcnt;
+ }
+
+ public void setRowcnt(Integer rowcnt) {
+ this.rowcnt = rowcnt;
+ }
+
+ public String getAccno() {
+ return accno;
+ }
+
+ public void setAccno(String accno) {
+ this.accno = accno;
+ }
+
+ public String getShopname() {
+ return shopname;
+ }
+
+ public void setShopname(String shopname) {
+ this.shopname = shopname;
+ }
+
+ public List<ShopMealSqlBean> getTermlist() {
+ return termlist;
+ }
+
+ public void setTermlist(List<ShopMealSqlBean> termlist) {
+ this.termlist = termlist;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/bean/ShopMealSqlBean.java b/src/main/java/com/supwisdom/dlpay/restaurant/bean/ShopMealSqlBean.java
new file mode 100644
index 0000000..c3550e3
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/bean/ShopMealSqlBean.java
@@ -0,0 +1,47 @@
+package com.supwisdom.dlpay.restaurant.bean;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by xiakaixiang on 16/9/26.
+ */
+public class ShopMealSqlBean {
+ private String accno;
+ private String shopname;
+ private Integer termid;
+ private List<MealBean> meallist=new ArrayList<MealBean>(0);
+
+ public String getAccno() {
+ return accno;
+ }
+
+ public void setAccno(String accno) {
+ this.accno = accno;
+ }
+
+ public String getShopname() {
+ return shopname;
+ }
+
+ public void setShopname(String shopname) {
+ this.shopname = shopname;
+ }
+
+ public Integer getTermid() {
+ return termid;
+ }
+
+ public void setTermid(Integer termid) {
+ this.termid = termid;
+ }
+
+
+ public List<MealBean> getMeallist() {
+ return meallist;
+ }
+
+ public void setMeallist(List<MealBean> meallist) {
+ this.meallist = meallist;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/bean/TransDtlSearchBean.java b/src/main/java/com/supwisdom/dlpay/restaurant/bean/TransDtlSearchBean.java
index bd772c8..d77fdeb 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/bean/TransDtlSearchBean.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/bean/TransDtlSearchBean.java
@@ -4,7 +4,7 @@
public class TransDtlSearchBean extends PageBean {
- private String refno;
+ private String billno;
private String custname;
private String startdate;
private String enddate;
@@ -21,12 +21,12 @@
this.accdate = accdate;
}
- public String getRefno() {
- return refno;
+ public String getBillno() {
+ return billno;
}
- public void setRefno(String refno) {
- this.refno = refno;
+ public void setBillno(String billno) {
+ this.billno = billno;
}
public String getCustname() {
@@ -80,7 +80,7 @@
@Override
public String toString() {
return "TransDtlSearchBean+++++{" +
- "refno='" + refno + '\'' +
+ "billno='" + billno + '\'' +
", custname='" + custname + '\'' +
", startdate='" + startdate + '\'' +
", enddate='" + enddate + '\'' +
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 c1a3027..5f303b3 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/controller/CustomerController.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/controller/CustomerController.java
@@ -110,9 +110,9 @@
@PreAuthorize("hasPermission('/customer/download','')")
@ResponseBody
public JsonResult downloadfile(HttpServletRequest request, HttpServletResponse response) throws Exception{
- String[] titles0 = {"姓名", "市名卡号", "市名卡银行卡号","人员类别号","手机(选填)"
+ String[] titles0 = {"姓名", "市名卡号", "市名卡银行卡号","人员类别号","物理卡号","手机(选填)"
}; //表头
- String[][] info0 = {{"张三", "123456", "3000000","1","12341234123"
+ String[][] info0 = {{"张三", "123456", "3000000","1","12345678","12341234123"
}}; // 示例内容
String fileName0 = "客户导入模板";// 保存数据
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 2d0aad2..0bcf9dc 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceController.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceController.java
@@ -2,12 +2,14 @@
import com.supwisdom.dlpay.api.bean.JsonResult;
+import com.supwisdom.dlpay.framework.domain.TShopSettlement;
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.framework.util.ExportExcel;
import com.supwisdom.dlpay.framework.util.PageResult;
import com.supwisdom.dlpay.framework.util.WebConstant;
+import com.supwisdom.dlpay.restaurant.service.ShopSettlementService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Controller;
@@ -18,6 +20,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import java.util.List;
@Controller
@RequestMapping("/device")
@@ -25,6 +28,8 @@
@Autowired
private DeviceService deviceService;
+ @Autowired
+ private ShopSettlementService shopSettlementService;
@RequestMapping("/index")
public String indexView(ModelMap model) {
@@ -56,6 +61,8 @@
@GetMapping("/loadadd")
@PreAuthorize("hasPermission('/device/loadadd','')")
public String loadadd(Model model) {
+ List<TShopSettlement> list=shopSettlementService.getAllShopSettlement();
+ model.addAttribute("shoplist", list);
return "restaurant/device/form";
}
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 700aa53..1c39779 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceManageController.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceManageController.java
@@ -93,6 +93,4 @@
return JsonResult.error("失败");
}
}
-
-
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/controller/TransDtlController.java b/src/main/java/com/supwisdom/dlpay/restaurant/controller/TransDtlController.java
index b62a81d..fefff9d 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/controller/TransDtlController.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/controller/TransDtlController.java
@@ -5,18 +5,12 @@
import com.supwisdom.dlpay.api.bean.JsonResult;
import com.supwisdom.dlpay.framework.domain.TShopSettlement;
import com.supwisdom.dlpay.framework.util.*;
-import com.supwisdom.dlpay.restaurant.bean.AreaSearchBean;
import com.supwisdom.dlpay.restaurant.bean.TransDtlSearchBean;
-import com.supwisdom.dlpay.restaurant.domain.TArea;
import com.supwisdom.dlpay.restaurant.domain.TTransDtl;
-import com.supwisdom.dlpay.restaurant.service.AreaService;
import com.supwisdom.dlpay.restaurant.service.ShopSettlementService;
import com.supwisdom.dlpay.restaurant.service.TransDtlService;
-import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
@@ -62,13 +56,13 @@
@RequestParam(value = "shopid", required = false) Integer shopid,
@RequestParam(value = "startdate", required = false) String startdate,
@RequestParam(value = "enddate", required = false) String enddate,
- @RequestParam(value = "refno", required = false) String refno,
+ @RequestParam(value = "billno", required = false) String billno,
@RequestParam(value = "status", required = false) Integer status,
@RequestParam(value = "termid", required = false) Integer termid) {
try {
if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT;
if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT;
- TransDtlSearchBean bean = getTransDtlSearchBean(custname, shopid, startdate, enddate, refno, status, termid);
+ TransDtlSearchBean bean = getTransDtlSearchBean(custname, shopid, startdate, enddate, billno, status, termid);
bean.setPageNo(pageNo);
bean.setPageSize(pageSize);
@@ -85,21 +79,21 @@
@RequestParam(value = "shopid", required = false) Integer shopid,
@RequestParam(value = "startdate", required = false) String startdate,
@RequestParam(value = "enddate", required = false) String enddate,
- @RequestParam(value = "refno", required = false) String refno,
+ @RequestParam(value = "billno", required = false) String billno,
@RequestParam(value = "status", required = false) Integer status,
@RequestParam(value = "termid", required = false) Integer termid,
HttpServletRequest request, HttpServletResponse response) {
- TransDtlSearchBean bean = getTransDtlSearchBean(custname, shopid, startdate, enddate, refno, status, termid);
+ TransDtlSearchBean bean = getTransDtlSearchBean(custname, shopid, startdate, enddate, billno, status, termid);
System.out.println(bean.toString());
return transDtlService.export(bean, request, response);
}
- private TransDtlSearchBean getTransDtlSearchBean( String custname, Integer shopid, String startdate, String enddate, String refno,Integer status, Integer termid) {
+ private TransDtlSearchBean getTransDtlSearchBean( String custname, Integer shopid, String startdate, String enddate, String billno,Integer status, Integer termid) {
TransDtlSearchBean bean = new TransDtlSearchBean();
bean.setCustname(custname);
bean.setEnddate(enddate);
- bean.setRefno(refno);
+ bean.setBillno(billno);
bean.setStatus(status);
bean.setShopid(shopid);
if (StringUtil.isEmpty(startdate) || StringUtil.isEmpty(enddate)) {
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/controller/TransDtlFormController.java b/src/main/java/com/supwisdom/dlpay/restaurant/controller/TransDtlFormController.java
index 09de88a..98e41e4 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/controller/TransDtlFormController.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/controller/TransDtlFormController.java
@@ -3,7 +3,11 @@
import com.supwisdom.dlpay.framework.util.DateUtil;
import com.supwisdom.dlpay.framework.util.PageResult;
+import com.supwisdom.dlpay.restaurant.bean.MealBean;
+import com.supwisdom.dlpay.restaurant.bean.ShopMealShowBean;
+import com.supwisdom.dlpay.restaurant.bean.ShopMealSqlBean;
import com.supwisdom.dlpay.restaurant.domain.TArea;
+import com.supwisdom.dlpay.restaurant.domain.TMealtype;
import com.supwisdom.dlpay.restaurant.domain.TTransDtlFormResult;
import com.supwisdom.dlpay.restaurant.service.TransDtlFormService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -12,6 +16,7 @@
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
+import java.util.ArrayList;
import java.util.List;
@@ -48,4 +53,78 @@
}
}
+
+
+
+
+
+ private List<ShopMealShowBean> shopMealTransdata(List<ShopMealSqlBean> list) {
+ List<ShopMealShowBean> result = new ArrayList<ShopMealShowBean>(0);
+ boolean findTemp;
+ for (ShopMealSqlBean bean : list) {
+ findTemp = false;
+ for (ShopMealShowBean trade : result) {
+ if (bean.getAccno().equals(trade.getAccno())) {
+ findTemp = true;
+ trade.getTermlist().add(bean);
+ trade.setRowcnt(trade.getRowcnt()+1);
+ break;
+ }
+ }
+ if (!findTemp) {
+ ShopMealShowBean temp = new ShopMealShowBean();
+ temp.setAccno(bean.getAccno());
+ temp.setShopname(bean.getShopname());
+ temp.setRowcnt(1);
+ temp.getTermlist().add(bean);
+ result.add(temp);
+ }
+ }
+
+ for(ShopMealShowBean shop:result){
+ List<TMealtype> meallist=transDtlFormService.getAllMealType();
+ for(TMealtype meal:meallist){
+ int cnt=0;
+ double amt=0;
+ for(ShopMealSqlBean sq:shop.getTermlist()){
+ for(MealBean ml:sq.getMeallist()){
+ if(ml.getMealtype().equals(meal.getMealtype())){
+ cnt+=ml.getTotalcnt();
+ amt+=ml.getTotalamt();
+ }
+ }
+ }
+ MealBean nwmb=new MealBean();
+ nwmb.setMealtype(meal.getMealtype());
+ nwmb.setTotalcnt(cnt);
+ nwmb.setTotalamt(amt);
+ shop.getSuminfo().add(nwmb);
+ }
+ }
+ return result;
+ }
+
+ private List<MealBean> getTotalSumInfo(List<ShopMealShowBean> list){
+ List<TMealtype> meallist=transDtlFormService.getAllMealType();
+ List<MealBean> result=new ArrayList<MealBean>(0);
+ for(TMealtype meal:meallist){
+ int cnt=0;
+ double amt=0;
+ for(ShopMealShowBean ssb:list){
+ for(MealBean mb:ssb.getSuminfo()){
+ if(mb.getMealtype().equals(meal.getMealtype())){
+ cnt+=mb.getTotalcnt();
+ amt+=mb.getTotalamt();
+ }
+ }
+ }
+ MealBean nwmb=new MealBean();
+ nwmb.setMealtype(meal.getMealtype());
+ nwmb.setTotalcnt(cnt);
+ nwmb.setTotalamt(amt);
+ result.add(nwmb);
+ }
+ return result;
+ }
+
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/controller/TransDtlRevertController.java b/src/main/java/com/supwisdom/dlpay/restaurant/controller/TransDtlRevertController.java
index 7e3590b..bace525 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/controller/TransDtlRevertController.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/controller/TransDtlRevertController.java
@@ -69,7 +69,7 @@
}
bean.setCustname(custname);
- bean.setRefno(refno);
+ bean.setBillno(refno);
bean.setPageNo(pageNo);
bean.setPageSize(pageSize);
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 b449305..dc55b15 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/dao/CardDao.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/dao/CardDao.java
@@ -2,6 +2,7 @@
import com.supwisdom.dlpay.restaurant.domain.TCard;
+import com.supwisdom.dlpay.restaurant.domain.TCardPk;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
@@ -10,7 +11,7 @@
import org.springframework.stereotype.Repository;
@Repository
-public interface CardDao extends JpaRepository<TCard, Integer> {
+public interface CardDao extends JpaRepository<TCard, TCardPk> {
@Query(value = "update TB_CARD set STATUS=:status where CARDNO=:cardno", nativeQuery = true)
void updateStatus(@Param("cardno") Integer cardno,@Param("status") Integer status);
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/dao/CardverDao.java b/src/main/java/com/supwisdom/dlpay/restaurant/dao/CardverDao.java
index d09cd64..8514195 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/dao/CardverDao.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/dao/CardverDao.java
@@ -3,10 +3,19 @@
import com.supwisdom.dlpay.restaurant.domain.TCardver;
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 CardverDao extends JpaRepository<TCardver, String> {
+ @Query(value = "select max(cardverno) from Tb_Cardver ", nativeQuery=true)
+ String getMaxCardverno();
+
+
+ @Query(value = "from TCardver where cardverno>?1 ")
+ List<TCardver> findAllWhitelist(String cardverno);
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/dao/CustomerDao.java b/src/main/java/com/supwisdom/dlpay/restaurant/dao/CustomerDao.java
index 249434f..f8d8c64 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/dao/CustomerDao.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/dao/CustomerDao.java
@@ -21,4 +21,6 @@
Integer countByBankcardno(String bankcardno);
List<TCustomer> findAllByCardno(String cardno);
+
+ List<TCustomer> findAllByCardnoAndCardphyid(String cardno,String cardphyid);
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/dao/DeviceDao.java b/src/main/java/com/supwisdom/dlpay/restaurant/dao/DeviceDao.java
index d50b6fb..aa896c1 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/dao/DeviceDao.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/dao/DeviceDao.java
@@ -21,6 +21,8 @@
List<TDevice> findAllByDevgroupid(Integer devgroupid);
+ List<TDevice> findAllByDevphyid(String devphyid);
+
List<TDevice> findAllByDevgroupidIsNullAndDevicenameContainingOrderById(String name);
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/dao/MealTypeDao.java b/src/main/java/com/supwisdom/dlpay/restaurant/dao/MealTypeDao.java
new file mode 100644
index 0000000..18e1e2e
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/dao/MealTypeDao.java
@@ -0,0 +1,14 @@
+package com.supwisdom.dlpay.restaurant.dao;
+
+
+import com.supwisdom.dlpay.restaurant.domain.TMealtype;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface MealTypeDao extends JpaRepository<TMealtype, String> {
+ List<TMealtype> findAllByOrderByEndtime();
+
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/dao/OfflineTransDtlDao.java b/src/main/java/com/supwisdom/dlpay/restaurant/dao/OfflineTransDtlDao.java
new file mode 100644
index 0000000..7e8d538
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/dao/OfflineTransDtlDao.java
@@ -0,0 +1,27 @@
+package com.supwisdom.dlpay.restaurant.dao;
+
+
+import com.supwisdom.dlpay.restaurant.domain.TOfflineTransDtl;
+import com.supwisdom.dlpay.restaurant.domain.TTransDtl;
+import com.supwisdom.dlpay.restaurant.domain.TTransDtlFormResult;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface OfflineTransDtlDao extends JpaRepository<TOfflineTransDtl, String>, JpaSpecificationExecutor<TTransDtl> {
+
+
+ TOfflineTransDtl getByBillno(String billno);
+
+
+ @Query(value = "select max(termsqlno) from tb_offlinetransdtl where termid=?1 and accdate=?2 ", nativeQuery=true)
+ Integer getMaxSqlnoToday(Integer deviceid, String accdate);
+
+ List<TOfflineTransDtl> findByTermsqlnoAndTermidAndAccdate(Integer termsqlno,Integer termid,String accdate);
+
+ List<TOfflineTransDtl> findAllByAccdateAndStatusIsNull(String accdate);
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/dao/TransDtlDao.java b/src/main/java/com/supwisdom/dlpay/restaurant/dao/TransDtlDao.java
index f518615..61133b3 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/dao/TransDtlDao.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/dao/TransDtlDao.java
@@ -1,6 +1,8 @@
package com.supwisdom.dlpay.restaurant.dao;
+import com.supwisdom.dlpay.restaurant.bean.ManageFeeAmtBean;
+import com.supwisdom.dlpay.restaurant.bean.SalesAmtBean;
import com.supwisdom.dlpay.restaurant.domain.TTransDtl;
import com.supwisdom.dlpay.restaurant.domain.TTransDtlFormResult;
import org.springframework.data.domain.Page;
@@ -32,5 +34,12 @@
"ORDER BY d.devicename",nativeQuery = true)
List<TTransDtlFormResult> getFormResult(Integer devgroupid, String startdate, String enddate);
+ TTransDtl getByBillno(String billno);
+
+
+ @Query(value = "select max(termsqlno) from tb_transdtl where termid=?1 and accdate=?2 ", nativeQuery=true)
+ Integer getMaxSqlnoToday(Integer deviceid,String accdate);
+
+ List<TTransDtl> findAllByStatus(String status);
}
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 cf2df28..3ee3479 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCard.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCard.java
@@ -4,38 +4,30 @@
import javax.persistence.*;
@Entity
+@IdClass(TCardPk.class)
@Table(name = "TB_CARD")
-@SequenceGenerator(name="SEQ_CARD",sequenceName="SEQ_CARD",allocationSize=1,initialValue = 1)
public class TCard {
- private Integer cardno;
- private Integer custid;
+ private String cardno;
+ private String custid;
private String cardphyid;
- private Integer status;
+ private String status;
private Integer lossflag;
private String opendate;
private String closedate;
private String cardverno;
+
@Id
- @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_CARD")
- @Column(name = "cardno", unique = true, nullable = false, length = 9)
- public Integer getCardno() {
+ @Column(name = "cardno", nullable = false, length =32)
+ public String getCardno() {
return cardno;
}
- public void setCardno(Integer cardno) {
+ public void setCardno(String cardno) {
this.cardno = cardno;
}
-
- @Column(name = "custid" ,length = 9)
- public Integer getCustid() {
- return custid;
- }
-
- public void setCustid(Integer custid) {
- this.custid = custid;
- }
- @Column(name = "cardphyid" ,length = 20)
+ @Id
+ @Column(name = "cardphyid" ,nullable = false,length = 8)
public String getCardphyid() {
return cardphyid;
}
@@ -44,12 +36,21 @@
this.cardphyid = cardphyid;
}
- @Column(name = "status" ,length = 1)
- public Integer getStatus() {
+ @Column(name = "custid" ,length = 32)
+ public String getCustid() {
+ return custid;
+ }
+
+ public void setCustid(String custid) {
+ this.custid = custid;
+ }
+
+ @Column(name = "status" ,length = 10)
+ public String getStatus() {
return status;
}
- public void setStatus(Integer status) {
+ public void setStatus(String status) {
this.status = status;
}
@Column(name = "lossflag" ,length = 1)
@@ -78,7 +79,7 @@
this.closedate = closedate;
}
- @Column(name = "cardverno" ,length = 16)
+ @Column(name = "cardverno" ,length = 20)
public String getCardverno() {
return cardverno;
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCardPk.java b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCardPk.java
new file mode 100644
index 0000000..c9e8c1d
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCardPk.java
@@ -0,0 +1,55 @@
+package com.supwisdom.dlpay.restaurant.domain;
+
+import javax.persistence.Column;
+import javax.persistence.Id;
+import java.io.Serializable;
+
+public class TCardPk implements Serializable {
+ @Id
+ @Column(name = "cardphyid", nullable = false, precision = 8)
+ private String cardphyid;
+
+ @Id
+ @Column(name = "CARDNO", nullable = false, length = 32)
+ private String cardno;
+
+ public TCardPk() {
+ }
+
+ public TCardPk(String cardphyid, String cardno) {
+ this.cardphyid = cardphyid;
+ this.cardno = 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;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ TDevparaPk tDevparaPk = (TDevparaPk) o;
+ if (cardphyid != null ? !cardphyid.equals(tDevparaPk.getGroupid()) : cardphyid != null)
+ return false;
+ if (cardno != null ? !cardno.equals(tDevparaPk.getParaname()) : cardno != null)
+ return false;
+
+ return true;
+ }
+
+
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCardver.java b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCardver.java
index 9320ae7..361830a 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCardver.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCardver.java
@@ -8,16 +8,16 @@
public class TCardver {
private String cardverno;
private String accdate;
- private Integer cardno;
+ private String cardno;
private String cardphyid;
- private Integer custid;
- private Integer optype;
+ private String custid;
+ private String optype;
private Integer adderflag;
- private Integer status;
+ private String status;
private String createtime;
@Id
- @Column(name = "cardverno", unique = true, nullable = false, length = 16)
+ @Column(name = "cardverno", unique = true, nullable = false, length = 20)
public String getCardverno() {
return cardverno;
}
@@ -33,15 +33,15 @@
public void setAccdate(String accdate) {
this.accdate = accdate;
}
- @Column(name = "cardno", length =9)
- public Integer getCardno() {
+ @Column(name = "cardno", length =32)
+ public String getCardno() {
return cardno;
}
- public void setCardno(Integer cardno) {
+ public void setCardno(String cardno) {
this.cardno = cardno;
}
- @Column(name = "cardphyid", length = 20)
+ @Column(name = "cardphyid", length = 8)
public String getCardphyid() {
return cardphyid;
}
@@ -49,20 +49,20 @@
public void setCardphyid(String cardphyid) {
this.cardphyid = cardphyid;
}
- @Column(name = "custid", length = 9)
- public Integer getCustid() {
+ @Column(name = "custid", length = 32)
+ public String getCustid() {
return custid;
}
- public void setCustid(Integer custid) {
+ public void setCustid(String custid) {
this.custid = custid;
}
- @Column(name = "optype", length = 2)
- public Integer getOptype() {
+ @Column(name = "optype", length = 10)
+ public String getOptype() {
return optype;
}
- public void setOptype(Integer optype) {
+ public void setOptype(String optype) {
this.optype = optype;
}
@Column(name = "adderflag", length = 1)
@@ -74,11 +74,11 @@
this.adderflag = adderflag;
}
@Column(name = "status", length = 1)
- public Integer getStatus() {
+ public String getStatus() {
return status;
}
- public void setStatus(Integer status) {
+ public void setStatus(String status) {
this.status = status;
}
@Column(name = "createtime", length = 14)
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCustomer.java b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCustomer.java
index fc654f3..af84875 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCustomer.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCustomer.java
@@ -13,6 +13,7 @@
private String custname;
private String operid;
private String cardno;
+ private String cardphyid;
private String idno;
private String idtype;
private String bankcardno;
@@ -51,7 +52,7 @@
this.custtype = custtype;
}
- @Column(name = "CARDNO", length = 16)
+ @Column(name = "CARDNO", length = 32)
public String getCardno() {
return cardno;
}
@@ -128,4 +129,22 @@
public void setLastsaved(String lastsaved) {
this.lastsaved = lastsaved;
}
+
+ @Column(name = "status", length = 1)
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ @Column(name = "cardphyid", length = 8)
+ public String getCardphyid() {
+ return cardphyid;
+ }
+
+ public void setCardphyid(String cardphyid) {
+ this.cardphyid = cardphyid;
+ }
}
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 86810aa..007da23 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TDevice.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TDevice.java
@@ -15,6 +15,13 @@
private String operid;
private Integer devgroupid;
private String lastsaved;
+ private String cardverno;
+ private Integer beatstatus;
+ private Integer runstatus;
+ private String lastlogintime;
+ private String lastbeattime;
+
+
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_DEVICE")
@@ -23,8 +30,8 @@
return id;
}
- public void setId(Integer areacode) {
- this.id = areacode;
+ public void setId(Integer id) {
+ this.id = id;
}
@@ -54,6 +61,16 @@
public void setTermid(String termid) {
this.termid = termid;
}*/
+
+ @Column(name = "runstatus", length = 1)
+ public Integer getRunstatus() {
+ return runstatus;
+ }
+
+ public void setRunstatus(Integer runstatus) {
+ this.runstatus = runstatus;
+ }
+
@Column(name = "shopid", length = 10)
public Integer getShopid() {
return shopid;
@@ -104,18 +121,43 @@
this.lastsaved = lastsaved;
}
- @Override
- public String toString() {
- return "TDevice{" +
- "id=" + id +
- ", devicename='" + devicename + '\'' +
- ", devphyid='" + devphyid + '\'' +
- ", shopid=" + shopid +
- ", factoryid='" + factoryid + '\'' +
- ", state=" + state +
- ", operid='" + operid + '\'' +
- ", devgroupid=" + devgroupid +
- ", lastsaved='" + lastsaved + '\'' +
- '}';
+
+ @Column(name = "cardverno", length = 20)
+ public String getCardverno() {
+ return cardverno;
+ }
+
+ public void setCardverno(String cardverno) {
+ this.cardverno = cardverno;
+ }
+
+ @Column(name = "beatstatus", length = 1)
+ public Integer getBeatstatus() {
+ return beatstatus;
+ }
+
+
+ public void setBeatstatus(Integer beatstatus) {
+ this.beatstatus = beatstatus;
+ }
+
+
+ @Column(name = "lastlogintime", length = 14)
+ public String getLastlogintime() {
+ return lastlogintime;
+ }
+
+ public void setLastlogintime(String lastlogintime) {
+
+ this.lastlogintime = lastlogintime;
+ }
+
+ @Column(name = "lastbeattime", length = 14)
+ public String getLastbeattime() {
+ return lastbeattime;
+ }
+
+ public void setLastbeattime(String lastbeattime) {
+ this.lastbeattime = lastbeattime;
}
}
\ No newline at end of file
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TOfflineTransDtl.java b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TOfflineTransDtl.java
new file mode 100644
index 0000000..88cd4eb
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TOfflineTransDtl.java
@@ -0,0 +1,220 @@
+package com.supwisdom.dlpay.restaurant.domain;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "TB_OFFLINETRANSDTL")
+public class TOfflineTransDtl {
+
+ private String billno;
+ private String custname;
+ private String custid;
+ private String cardno;
+ private Double amount;
+ private String transdate;
+ private String transtime;
+ private String accdate;
+ private String acctime;
+ private Integer termid;
+ private String status;
+ private Integer revflag;
+ private String transtype;
+ private Integer shopid;
+ private String attr1;
+ private String revbillno;
+ private Integer custtype;
+ private Double managefee;
+ private String mealtype;
+ private Integer termsqlno;
+
+
+
+ @Id
+ @Column(name = "billno", unique = true, nullable = false, length = 20)
+ public String getBillno() {
+ return billno;
+ }
+
+ public void setBillno(String billno) {
+ this.billno = billno;
+ }
+
+ @Column(name = "custname", length = 30)
+ public String getCustname() {
+ return custname;
+ }
+
+ public void setCustname(String custname) {
+ this.custname = custname;
+ }
+
+ @Column(name = "custid", length = 32)
+ public String getCustid() {
+ return custid;
+ }
+
+ public void setCustid(String custid) {
+ this.custid = custid;
+ }
+
+ @Column(name = "cardno", length = 9)
+ public String getCardno() {
+ return cardno;
+ }
+
+ public void setCardno(String cardno) {
+ this.cardno = cardno;
+ }
+
+ @Column(name = "amount", precision = 15)
+ public Double getAmount() {
+ return amount;
+ }
+
+ public void setAmount(Double amount) {
+ this.amount = amount;
+ }
+
+ @Column(name = "transdate", length = 8)
+ public String getTransdate() {
+ return transdate;
+ }
+
+ public void setTransdate(String transdate) {
+ this.transdate = transdate;
+ }
+
+ @Column(name = "transtime", length = 6)
+ public String getTranstime() {
+ return transtime;
+ }
+
+ public void setTranstime(String transtime) {
+ this.transtime = transtime;
+ }
+
+ @Column(name = "accdate", length = 8)
+ public String getAccdate() {
+ return accdate;
+ }
+
+ public void setAccdate(String accdate) {
+ this.accdate = accdate;
+ }
+
+ @Column(name = "acctime", length = 6)
+ public String getAcctime() {
+ return acctime;
+ }
+
+ public void setAcctime(String acctime) {
+ this.acctime = acctime;
+ }
+
+ @Column(name = "termid", length = 9)
+ public Integer getTermid() {
+ return termid;
+ }
+
+ public void setTermid(Integer termid) {
+ this.termid = termid;
+ }
+
+ @Column(name = "status", length = 10)
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ @Column(name = "revflag", length = 1)
+ public Integer getRevflag() {
+ return revflag;
+ }
+
+ public void setRevflag(Integer revflag) {
+ this.revflag = revflag;
+ }
+
+ @Column(name = "transtype", length = 10)
+ public String getTranstype() {
+ return transtype;
+ }
+
+ public void setTranstype(String transtype) {
+ this.transtype = transtype;
+ }
+
+
+ @Column(name = "shopid", length = 9)
+ public Integer getShopid() {
+ return shopid;
+ }
+
+ public void setShopid(Integer shopid) {
+ this.shopid = shopid;
+ }
+
+
+ @Column(name = "attr1", length = 200)
+ public String getAttr1() {
+ return attr1;
+ }
+
+ public void setAttr1(String attr1) {
+ this.attr1 = attr1;
+ }
+
+ @Column(name = "revbillno", length = 20)
+ public String getRevbillno() {
+ return revbillno;
+ }
+
+ public void setRevbillno(String revbillno) {
+ this.revbillno = revbillno;
+ }
+
+
+
+ @Column(name="custtype",length = 1)
+ public Integer getCusttype() {
+ return custtype;
+ }
+
+ public void setCusttype(Integer custtype) {
+ this.custtype = custtype;
+ }
+
+ @Column(name="mealtype",length = 10)
+ public String getMealtype() {
+ return mealtype;
+ }
+
+ public void setMealtype(String mealtype) {
+ this.mealtype = mealtype;
+ }
+
+ @Column(name="termsqlno",length = 9)
+ public Integer getTermsqlno() {
+ return termsqlno;
+ }
+
+ public void setTermsqlno(Integer termsqlno) {
+ this.termsqlno = termsqlno;
+ }
+
+
+ @Column(name = "managefee", precision = 15)
+ public Double getManagefee() {
+ return managefee;
+ }
+
+ public void setManagefee(Double managefee) {
+ this.managefee = managefee;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TTransDtl.java b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TTransDtl.java
index edd872f..0f3c4c2 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TTransDtl.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TTransDtl.java
@@ -6,35 +6,38 @@
@Table(name = "TB_TRANSDTL")
public class TTransDtl {
- private String refno;
+ private String billno;
private String custname;
- private Integer cardno;
+ private String custid;
+ private String cardno;
private Double amount;
private String transdate;
private String transtime;
private String accdate;
private String acctime;
private Integer termid;
- private Integer status;
+ private String status;
private Integer revflag;
private String transtype;
private Integer shopid;
private String attr1;
- private String attr2;
+ private String revbillno;
private String transmode;
private Integer custtype;
- private Integer transperiod;
+ private Double managefee;
+ private String mealtype;
+ private Integer termsqlno;
@Id
- @Column(name = "refno", unique = true, nullable = false, length = 20)
- public String getRefno() {
- return refno;
+ @Column(name = "billno", unique = true, nullable = false, length = 20)
+ public String getBillno() {
+ return billno;
}
- public void setRefno(String refno) {
- this.refno = refno;
+ public void setBillno(String billno) {
+ this.billno = billno;
}
@Column(name = "custname", length = 30)
@@ -46,12 +49,21 @@
this.custname = custname;
}
+ @Column(name = "custid", length = 32)
+ public String getCustid() {
+ return custid;
+ }
+
+ public void setCustid(String custid) {
+ this.custid = custid;
+ }
+
@Column(name = "cardno", length = 9)
- public Integer getCardno() {
+ public String getCardno() {
return cardno;
}
- public void setCardno(Integer cardno) {
+ public void setCardno(String cardno) {
this.cardno = cardno;
}
@@ -109,12 +121,12 @@
this.termid = termid;
}
- @Column(name = "status", length = 1)
- public Integer getStatus() {
+ @Column(name = "status", length = 10)
+ public String getStatus() {
return status;
}
- public void setStatus(Integer status) {
+ public void setStatus(String status) {
this.status = status;
}
@@ -127,7 +139,7 @@
this.revflag = revflag;
}
- @Column(name = "transtype", length = 5)
+ @Column(name = "transtype", length = 10)
public String getTranstype() {
return transtype;
}
@@ -156,13 +168,13 @@
this.attr1 = attr1;
}
- @Column(name = "attr2", length = 200)
- public String getAttr2() {
- return attr2;
+ @Column(name = "revbillno", length = 20)
+ public String getRevbillno() {
+ return revbillno;
}
- public void setAttr2(String attr2) {
- this.attr2 = attr2;
+ public void setRevbillno(String revbillno) {
+ this.revbillno = revbillno;
}
@@ -184,12 +196,31 @@
this.custtype = custtype;
}
- @Column(name="transperiod",length = 1)
- public Integer getTransperiod() {
- return transperiod;
+ @Column(name="mealtype",length = 10)
+ public String getMealtype() {
+ return mealtype;
}
- public void setTransperiod(Integer transperiod) {
- this.transperiod = transperiod;
+ public void setMealtype(String mealtype) {
+ this.mealtype = mealtype;
+ }
+
+ @Column(name="termsqlno",length = 9)
+ public Integer getTermsqlno() {
+ return termsqlno;
+ }
+
+ public void setTermsqlno(Integer termsqlno) {
+ this.termsqlno = termsqlno;
+ }
+
+
+ @Column(name = "managefee", precision = 15)
+ public Double getManagefee() {
+ return managefee;
+ }
+
+ public void setManagefee(Double managefee) {
+ this.managefee = managefee;
}
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/CardService.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/CardService.java
index 364e512..742f0b4 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/CardService.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/CardService.java
@@ -7,6 +7,8 @@
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
+import java.util.List;
+
public interface CardService {
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
@@ -18,4 +20,20 @@
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
JsonResult saveCardver(TCardver card);
+
+/* @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+ TCard getCardByCardno(String cardno);*/
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+ TCard getCardByCardnoAndCardphyid(String cardno,String Cardphyid);
+
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+ String getMaxCarcver();
+
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+ List<TCardver> getCardlistByTCardVer(String cardverno);
+
+
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/CustomerService.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/CustomerService.java
index 2ebc83d..ac82e55 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/CustomerService.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/CustomerService.java
@@ -18,6 +18,9 @@
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
PageResult<TCustomer> getCustomerByCustname(CustomerSearchBean param);
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
+ TCustomer getCustomerByCustid(String custid);
+
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
JsonResult saveCustomer(TCustomer customer);
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 b3eb60f..302f677 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/DeviceService.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/DeviceService.java
@@ -19,6 +19,9 @@
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
PageResult<TDevice> getDeviceByDevicename(String devicename);
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
+ TDevice getDeviceByDevphyid(String devphyid);
+
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
PageResult<TDevice> getDeviceByParam(DeviceSearchBean param);
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/OfflineTransDtlService.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/OfflineTransDtlService.java
new file mode 100644
index 0000000..e151699
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/OfflineTransDtlService.java
@@ -0,0 +1,36 @@
+package com.supwisdom.dlpay.restaurant.service;
+
+
+import com.supwisdom.dlpay.api.bean.JsonResult;
+import com.supwisdom.dlpay.restaurant.domain.TOfflineTransDtl;
+
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+
+public interface OfflineTransDtlService {
+
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+ TOfflineTransDtl saveTransdtl(TOfflineTransDtl dtl);
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+ TOfflineTransDtl getTransDtlByBillno(String billno);
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+ TOfflineTransDtl getOfflineTransDtlByTermsqlnoAndTermid(Integer termsqlno,Integer termid,String termdate);
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
+ Integer getMaxSeqnoToday(Integer deviceid, String accdate);
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+ JsonResult revertOfflineTransdtl(TOfflineTransDtl dtl);
+
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
+ List<TOfflineTransDtl> getUncheckOfflineTransdtl(String accdate);
+
+
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/ShopSettlementService.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/ShopSettlementService.java
index cc16a3a..046c8b8 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/ShopSettlementService.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/ShopSettlementService.java
@@ -12,4 +12,8 @@
List<TShopSettlement> getAllShopSettlement();
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
+ List<TShopSettlement> getShopByShopid(Integer shopid);
+
+
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/TransDtlFormService.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/TransDtlFormService.java
index 7decd6c..7c33261 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/TransDtlFormService.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/TransDtlFormService.java
@@ -2,6 +2,7 @@
import com.supwisdom.dlpay.framework.util.PageResult;
import com.supwisdom.dlpay.restaurant.domain.TArea;
+import com.supwisdom.dlpay.restaurant.domain.TMealtype;
import com.supwisdom.dlpay.restaurant.domain.TTransDtlFormResult;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
@@ -14,4 +15,6 @@
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
List<TTransDtlFormResult> getTransDtlFormResult(Integer devgroupid, String startdate, String enddate);
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
+ List<TMealtype> getAllMealType();
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/TransDtlService.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/TransDtlService.java
index b1b430a..fbbbbc5 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/TransDtlService.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/TransDtlService.java
@@ -2,6 +2,8 @@
import com.supwisdom.dlpay.api.bean.JsonResult;
import com.supwisdom.dlpay.framework.util.PageResult;
+import com.supwisdom.dlpay.restaurant.bean.ManageFeeAmtBean;
+import com.supwisdom.dlpay.restaurant.bean.SalesAmtBean;
import com.supwisdom.dlpay.restaurant.bean.TransDtlSearchBean;
import com.supwisdom.dlpay.restaurant.domain.TTransDtl;
import org.springframework.transaction.annotation.Propagation;
@@ -9,6 +11,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import java.util.List;
public interface TransDtlService {
@@ -18,8 +21,26 @@
JsonResult export(TransDtlSearchBean bean, HttpServletRequest request, HttpServletResponse response);
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+ TTransDtl saveTransdtl(TTransDtl dtl);
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+ TTransDtl getTransDtlByBillno(String billno);
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
JsonResult revertTransdtl(TTransDtl dtl);
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
+ Integer getMaxSeqnoToday(Integer deviceid,String accdate);
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
+ ManageFeeAmtBean getManageFeeToday(String transdate, Integer termid);
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
+ SalesAmtBean getSalesToday(String transdate, Integer termid);
+
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
+ List<TTransDtl> getSubmittingTransdtl();
}
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 58b953a..baa5428 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
@@ -4,11 +4,16 @@
import com.supwisdom.dlpay.restaurant.dao.CardDao;
import com.supwisdom.dlpay.restaurant.dao.CardverDao;
import com.supwisdom.dlpay.restaurant.domain.TCard;
+import com.supwisdom.dlpay.restaurant.domain.TCardPk;
import com.supwisdom.dlpay.restaurant.domain.TCardver;
import com.supwisdom.dlpay.restaurant.service.CardService;
+import com.supwisdom.dlpay.restaurant.util.RestaurantConstant;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.List;
+import java.util.Optional;
+
@Service
public class CardServiceImpl implements CardService {
@Autowired
@@ -33,4 +38,24 @@
cardverDao.save(card);
return JsonResult.ok();
}
+
+ @Override
+ public TCard getCardByCardnoAndCardphyid(String cardno,String cardphyid) {
+ TCardPk pk=new TCardPk(cardphyid,cardno);
+ Optional<TCard> card=cardDao.findById(pk);
+ if(!card.isPresent()){
+ return null;
+ }
+ return card.get();
+ }
+
+ @Override
+ public String getMaxCarcver() {
+ return cardverDao.getMaxCardverno();
+ }
+
+ @Override
+ public List<TCardver> getCardlistByTCardVer(String cardverno) {
+ return cardverDao.findAllWhitelist(cardverno);
+ }
}
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 b48b425..9184d9c 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
@@ -8,6 +8,7 @@
import com.supwisdom.dlpay.restaurant.dao.CardverDao;
import com.supwisdom.dlpay.restaurant.dao.CustomerDao;
import com.supwisdom.dlpay.restaurant.domain.TCard;
+import com.supwisdom.dlpay.restaurant.domain.TCardPk;
import com.supwisdom.dlpay.restaurant.domain.TCardver;
import com.supwisdom.dlpay.restaurant.domain.TCustomer;
import com.supwisdom.dlpay.restaurant.service.CustomerService;
@@ -33,12 +34,11 @@
@Autowired
private SystemUtilService systemUtilService;
-/*
@Autowired
private CardDao cardDao;
@Autowired
- private CardverDao cardverDao;*/
+ private CardverDao cardverDao;
@Override
public PageResult<TCustomer> getCustomerByCustname(CustomerSearchBean param) {
@@ -49,61 +49,74 @@
}
return new PageResult<>(customerDao.findAll(pageable));
}
+
+ @Override
+ public TCustomer getCustomerByCustid(String custid) {
+ Optional<TCustomer> cust=customerDao.findById(custid);
+ if(cust.isPresent()){
+ return cust.get();
+ }
+ return null;
+ }
+
@Override
public JsonResult saveCustomer(TCustomer customer) {
- if(StringUtil.isEmpty(customer.getCustid())){
- List<TCustomer> cus=customerDao.findAllByCardno(customer.getCardno());
- if(cus.size()!=0){
- return JsonResult.error("用户"+cus.get(0).getCustname()+"已拥有该卡");
+ if (StringUtil.isEmpty(customer.getCustid())) {
+ List<TCustomer> cust =
+ customerDao.findAllByCardnoAndCardphyid(customer.getCardno(), customer.getCardphyid());
+ if (cust.size() != 0) {
+ return JsonResult.error("用户" + cust.get(0).getCustname() + "已拥有该卡");
}
}
customer.setLastsaved(DateUtil.getNow("yyyyMMddHHmmss"));
- customerDao.save(customer);
- /* if(null !=cus){
- String cardverno= systemUtilService.getCardverno();
- String date=DateUtil.getNow("yyyyMMdd");
- TCard card=new TCard();
+ TCustomer cus = customerDao.save(customer);
+ if (null != cus) {
+ String cardverno = systemUtilService.getCardverno();
+ String date = DateUtil.getNow("yyyyMMdd");
+ TCard card = new TCard();
card.setCardno(cus.getCardno());
card.setOpendate(date);
card.setCustid(cus.getCustid());
- card.setStatus(1);
+ card.setStatus("normal");
+ card.setCardphyid(cus.getCardphyid());
card.setCardverno(cardverno);
cardDao.save(card);
- saveCardver(cardverno, date, cus);
- }*/
+ saveCardver(cardverno, date, cus, card.getStatus(), RestaurantConstant.STATUS_CARD_NORMAL);
+ }
return JsonResult.ok("成功");
}
-/*
- private void saveCardver(String cardverno, String date, TCustomer cus) {
- TCardver tCardver=new TCardver();
+ private void saveCardver(String cardverno, String date, TCustomer cus, String status, String optype) {
+ TCardver tCardver = new TCardver();
tCardver.setAccdate(date);
tCardver.setCardno(cus.getCardno());
+ tCardver.setCardphyid(cus.getCardphyid());
+
tCardver.setAdderflag(1);
- tCardver.setOptype(1);
- tCardver.setStatus(1);
+ tCardver.setOptype(optype);
+ tCardver.setStatus(status);
tCardver.setCustid(cus.getCustid());
tCardver.setCreatetime(DateUtil.getNow("yyyyMMddHHmmss"));
tCardver.setCardverno(cardverno);
cardverDao.save(tCardver);
}
-*/
@Override
public JsonResult deleteCustomer(String custid) {
- TCustomer customer=customerDao.findById(custid).get();
- String cardverno= systemUtilService.getCardverno();
- /* TCard card=cardDao.findById(customer.getCardno()).get();
- card.setStatus(RestaurantConstant.STATUS_CARD_CANCEL);
+ TCustomer customer = customerDao.findById(custid).get();
+ String cardverno = systemUtilService.getCardverno();
+ TCardPk pk = new TCardPk(customer.getCardphyid(), customer.getCardno());
+ TCard card = cardDao.findById(pk).get();
+ card.setStatus(RestaurantConstant.STATUS_CARD_LOGOUT);
card.setCardverno(cardverno);
cardDao.save(card);
- String date=DateUtil.getNow("yyyyMMdd");
- saveCardver(cardverno,date,customer);*/
+ String date = DateUtil.getNow("yyyyMMdd");
+ saveCardver(cardverno, date, customer, card.getStatus(), RestaurantConstant.STATUS_CARD_LOGOUT);
customerDao.deleteById(custid);
@@ -111,8 +124,6 @@
}
-
-
@Override
public JsonResult importFile(MultipartFile file, HttpServletRequest request) throws Exception {
String fname = file.getOriginalFilename();
@@ -125,42 +136,43 @@
// InputStream excelstream = new FileInputStream(savePath+"/"+fname);
InputStream excelstream = file.getInputStream();
List<Object[][]> oList = null;
- try{
+ try {
if (fname.endsWith(".xls")) {
oList = ImportExcelUtil.getIntegralData(excelstream);//2003版本
} else {
oList = ImportExcelUtil.getIntegralData07(excelstream);//2007版本以上
}
- }catch (Exception e){
+ } catch (Exception e) {
return JsonResult.error("模板格式错误,请重新下载模板");
}
String msg = "";
- Integer successCnt=0;
- Integer failCnt=0;
+ Integer successCnt = 0;
+ Integer failCnt = 0;
for (Object[][] data : oList) {
for (int i = 1; i < data.length; i++) {
if (StringUtil.isEmpty((String) data[i][0]) || StringUtil.isEmpty((String) data[i][1]) || StringUtil.isEmpty((String) data[i][2])) {
msg = msg + "第" + i + "行,关键字段缺失。<br/>";
- failCnt+=1;
- } else if (customerDao.countByCardno((String) data[i][1]) >0) {
+ failCnt += 1;
+ } else if (customerDao.countByCardno((String) data[i][1]) > 0) {
msg = msg + "第" + i + "行,该市名卡已存在。<br/>";
- failCnt+=1;
- } else{
- TCustomer d=new TCustomer();
+ failCnt += 1;
+ } else {
+ TCustomer d = new TCustomer();
d.setCustname((String) data[i][0]);
- String cardno=(String) data[i][1];
+ String cardno = (String) data[i][1];
d.setCardno(cardno);
d.setBankcardno((String) data[i][2]);
- String custtype=(String) data[i][3];
+ String custtype = (String) data[i][3];
d.setCusttype(Integer.parseInt(custtype));
- if(null!=data[i][4]){
- d.setPhone((String) data[i][4]);
+ d.setCardphyid((String) data[i][4]);
+ if (null != data[i][5]) {
+ d.setPhone((String) data[i][5]);
}
sList.add(d);
- successCnt+=1;
+ successCnt += 1;
}
}
}
@@ -168,44 +180,44 @@
// resp.setMsg("成功导入了"+sList.size()+"条信息");
resp.setMsg(String.format(Locale.CHINESE, msg));
return resp;*/
- String batchno=DateUtil.getNow("yyyyMMddHHmmss");
- if(StringUtil.isEmpty(msg)){
- for(TCustomer d:sList){
+ String batchno = DateUtil.getNow("yyyyMMddHHmmss");
+ if (StringUtil.isEmpty(msg)) {
+ for (TCustomer d : sList) {
d.setBatchno(batchno);
saveCustomer(d);
}
- return JsonResult.ok("成功导入"+sList.size()+"条信息");
+ return JsonResult.ok("成功导入" + sList.size() + "条信息");
}
- msg="导入成功"+successCnt+"条,导入失败"+failCnt+"条<br/>"+msg;
+ msg = "导入成功" + successCnt + "条,导入失败" + failCnt + "条<br/>" + msg;
return JsonResult.error(String.format(Locale.CHINESE, msg));
}
@Override
public JsonResult export(HttpServletRequest request, HttpServletResponse response) {
- String[] titles0 = {"市民卡号", "姓名", "联系电话","银行卡号"
+ String[] titles0 = {"市民卡号", "姓名", "联系电话", "银行卡号"
}; //表头
String fileName0 = "客户名单";// 保存数据
String[][] info0 = {{}};
- List<TCustomer> dtl=customerDao.findAll();
- Integer cnt=dtl.size();
- if(cnt>0 ){
+ List<TCustomer> dtl = customerDao.findAll();
+ Integer cnt = dtl.size();
+ if (cnt > 0) {
System.out.println("---init here---");
- info0=new String[cnt][titles0.length];
+ info0 = new String[cnt][titles0.length];
- for(int i=0;i<cnt;i++){
- TCustomer t=dtl.get(i);
- info0[i][0]=t.getCardno();
- info0[i][1]=t.getCustname();
- info0[i][2]=t.getPhone();
- info0[i][3]=t.getBankcardno();
+ for (int i = 0; i < cnt; i++) {
+ TCustomer t = dtl.get(i);
+ info0[i][0] = t.getCardno();
+ info0[i][1] = t.getCustname();
+ info0[i][2] = t.getPhone();
+ info0[i][3] = t.getBankcardno();
}
}
try {
- ExportExcel.queryexcel(fileName0, titles0,info0,request, response);
+ ExportExcel.queryexcel(fileName0, titles0, info0, request, response);
return JsonResult.ok("操作成功");
} catch (Exception e) {
e.printStackTrace();
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 169e3d2..64d3080 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
@@ -101,6 +101,18 @@
}
@Override
+ public TDevice getDeviceByDevphyid(String devphyid) {
+ if(StringUtil.isEmpty(devphyid)){
+ devphyid="";
+ }
+ List<TDevice> lst=deviceDao.findAllByDevphyid(devphyid);
+ if(lst.size()>0){
+ return lst.get(0);
+ }
+ return null;
+ }
+
+ @Override
public List<TDevice> getDeviceByGroupId(Integer groupid) {
return deviceDao.findAllByDevgroupid(groupid);
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/OfflineTransDtlServiceImpl.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/OfflineTransDtlServiceImpl.java
new file mode 100644
index 0000000..a21021e
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/OfflineTransDtlServiceImpl.java
@@ -0,0 +1,111 @@
+package com.supwisdom.dlpay.restaurant.service.impl;
+
+import com.supwisdom.dlpay.api.bean.JsonResult;
+import com.supwisdom.dlpay.framework.dao.ShopSettlementDao;
+import com.supwisdom.dlpay.framework.domain.TShopSettlement;
+import com.supwisdom.dlpay.framework.service.SystemUtilService;
+import com.supwisdom.dlpay.framework.util.DateUtil;
+import com.supwisdom.dlpay.framework.util.ExportExcel;
+import com.supwisdom.dlpay.framework.util.PageResult;
+import com.supwisdom.dlpay.framework.util.StringUtil;
+import com.supwisdom.dlpay.restaurant.bean.ManageFeeAmtBean;
+import com.supwisdom.dlpay.restaurant.bean.SalesAmtBean;
+import com.supwisdom.dlpay.restaurant.bean.TransDtlSearchBean;
+import com.supwisdom.dlpay.restaurant.dao.OfflineTransDtlDao;
+import com.supwisdom.dlpay.restaurant.dao.TransDtlDao;
+import com.supwisdom.dlpay.restaurant.domain.TOfflineTransDtl;
+import com.supwisdom.dlpay.restaurant.domain.TTransDtl;
+import com.supwisdom.dlpay.restaurant.service.OfflineTransDtlService;
+import com.supwisdom.dlpay.restaurant.service.TransDtlService;
+import com.supwisdom.dlpay.restaurant.util.RestaurantConstant;
+import org.hibernate.query.internal.NativeQueryImpl;
+import org.hibernate.transform.Transformers;
+import org.jetbrains.annotations.NotNull;
+import org.springframework.beans.BeanUtils;
+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.data.jpa.domain.Specification;
+import org.springframework.stereotype.Service;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.swing.text.html.Option;
+import java.util.*;
+
+@Service
+public class OfflineTransDtlServiceImpl implements OfflineTransDtlService {
+ @Autowired
+ private OfflineTransDtlDao transDtlDao;
+ @Autowired
+ private SystemUtilService systemUtilService;
+
+
+
+ @Override
+ public TOfflineTransDtl saveTransdtl(TOfflineTransDtl dtl) {
+ return transDtlDao.save(dtl);
+ }
+
+ @Override
+ public TOfflineTransDtl getTransDtlByBillno(String billno) {
+ return transDtlDao.getByBillno(billno);
+ }
+
+ @Override
+ public TOfflineTransDtl getOfflineTransDtlByTermsqlnoAndTermid(Integer termsqlno, Integer termid,String termdate) {
+ List<TOfflineTransDtl> dtl=transDtlDao.findByTermsqlnoAndTermidAndAccdate(termsqlno,termid,termdate);
+ if(dtl.size()<1){
+ return null;
+ }
+ return dtl.get(0);
+ }
+
+
+ @Override
+ public Integer getMaxSeqnoToday(Integer deviceid, String accdate) {
+ Integer onlineseqno= transDtlDao.getMaxSqlnoToday(deviceid,accdate);
+ if (null == onlineseqno) {
+ onlineseqno = 0;
+ }
+ return onlineseqno;
+ }
+
+ @Override
+ public JsonResult revertOfflineTransdtl(TOfflineTransDtl dtl) {
+
+ if(dtl.getStatus().equals(RestaurantConstant.STATUS_TRANSDTL_FAIL)){
+ transDtlDao.save(dtl);
+ return null;
+ }
+
+ TOfflineTransDtl targetDtl=transDtlDao.findById(dtl.getBillno()).get();
+
+ TOfflineTransDtl revDtl=new TOfflineTransDtl();
+ BeanUtils.copyProperties(targetDtl,revDtl);
+ revDtl.setBillno(systemUtilService.getRefno());
+ revDtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_INIT);
+ revDtl.setAccdate(DateUtil.getNow("yyyyMMdd"));
+ revDtl.setAcctime(DateUtil.getNow("HHmmss"));
+ revDtl.setRevbillno(dtl.getBillno());
+ revDtl.setTranstype(RestaurantConstant.TRANSTYPE_TRANSDTL_REVERT);
+ revDtl.setAmount(targetDtl.getAmount()*-1.00);
+ transDtlDao.save(revDtl);
+ targetDtl.setRevflag(1);
+ transDtlDao.save(targetDtl);
+ return JsonResult.ok("操作成功");
+ }
+
+ @Override
+ public List<TOfflineTransDtl> getUncheckOfflineTransdtl(String accdate) {
+ return transDtlDao.findAllByAccdateAndStatusIsNull(accdate);
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/ShopSettlementServiceImpl.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/ShopSettlementServiceImpl.java
index 41f043d..a5ff9d1 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/ShopSettlementServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/ShopSettlementServiceImpl.java
@@ -27,4 +27,9 @@
public List<TShopSettlement> getAllShopSettlement() {
return shopSettlementDao.findAll();
}
+
+ @Override
+ public List<TShopSettlement> getShopByShopid(Integer shopid) {
+ return shopSettlementDao.findByShopid(shopid);
+ }
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/TransDtlFormServiceImpl.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/TransDtlFormServiceImpl.java
index 0377d16..576cca7 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/TransDtlFormServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/TransDtlFormServiceImpl.java
@@ -3,7 +3,9 @@
import com.supwisdom.dlpay.framework.util.DateUtil;
import com.supwisdom.dlpay.framework.util.PageResult;
import com.supwisdom.dlpay.framework.util.StringUtil;
+import com.supwisdom.dlpay.restaurant.dao.MealTypeDao;
import com.supwisdom.dlpay.restaurant.dao.TransDtlDao;
+import com.supwisdom.dlpay.restaurant.domain.TMealtype;
import com.supwisdom.dlpay.restaurant.domain.TTransDtlFormResult;
import com.supwisdom.dlpay.restaurant.service.TransDtlFormService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -16,6 +18,8 @@
public class TransDtlFormServiceImpl implements TransDtlFormService {
@Autowired
private TransDtlDao transDtlFormDao;
+ @Autowired
+ private MealTypeDao mealTypeDao;
@Override
public List<TTransDtlFormResult> getTransDtlFormResult(Integer devgroupid, String startdate, String enddate) {
@@ -30,4 +34,9 @@
return transDtlFormDao.getFormResult(devgroupid,startdate,enddate);
}
+
+ @Override
+ public List<TMealtype> getAllMealType() {
+ return mealTypeDao.findAll();
+ }
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/TransDtlServiceImpl.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/TransDtlServiceImpl.java
index e47decc..b0f0442 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/TransDtlServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/TransDtlServiceImpl.java
@@ -8,11 +8,15 @@
import com.supwisdom.dlpay.framework.util.ExportExcel;
import com.supwisdom.dlpay.framework.util.PageResult;
import com.supwisdom.dlpay.framework.util.StringUtil;
+import com.supwisdom.dlpay.restaurant.bean.ManageFeeAmtBean;
+import com.supwisdom.dlpay.restaurant.bean.SalesAmtBean;
import com.supwisdom.dlpay.restaurant.bean.TransDtlSearchBean;
import com.supwisdom.dlpay.restaurant.dao.TransDtlDao;
import com.supwisdom.dlpay.restaurant.domain.TTransDtl;
import com.supwisdom.dlpay.restaurant.service.TransDtlService;
import com.supwisdom.dlpay.restaurant.util.RestaurantConstant;
+import org.hibernate.query.internal.NativeQueryImpl;
+import org.hibernate.transform.Transformers;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -22,6 +26,9 @@
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
@@ -42,10 +49,13 @@
@Autowired
private SystemUtilService systemUtilService;
+ @PersistenceContext
+ private EntityManager entityManager;
+
@Override
public PageResult<TTransDtl> getTransDtlByParam(TransDtlSearchBean param) {
Pageable pageable = PageRequest.of(param.getPageNo() - 1, param.getPageSize()
- , Sort.by("refno"));
+ , Sort.by("billno"));
Specification<TTransDtl> spec = gettTransDtlSpecification(param);
@@ -59,8 +69,8 @@
public Predicate toPredicate(Root<TTransDtl> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder cb) {
List<Predicate> list = new ArrayList<>();
- if (!StringUtil.isEmpty(param.getRefno())) {
- list.add(cb.like(root.get("refno").as(String.class), "%" + param.getRefno() + "%"));
+ if (!StringUtil.isEmpty(param.getBillno())) {
+ list.add(cb.like(root.get("billno").as(String.class), "%" + param.getBillno() + "%"));
}
if (!StringUtil.isEmpty(param.getCustname())) {
list.add(cb.like(root.get("custname").as(String.class), "%" + param.getCustname() + "%"));
@@ -109,7 +119,7 @@
for(int i=0;i<cnt;i++){
TTransDtl t=dtl.get(i);
info0[i][0]=t.getCustname();
- info0[i][1]=t.getRefno();
+ info0[i][1]=t.getBillno();
info0[i][2]=t.getAmount().toString();
info0[i][3]=t.getAccdate();
info0[i][4]=t.getTransdate();
@@ -117,8 +127,9 @@
info0[i][6]=shopmap.get(t.getShopid());
String status="";
switch (t.getStatus()){
- case 1:status="未入账"; break;
- case 0:status="已入账"; break;
+ case "init":status="未入账"; break;
+ case "success":status="已入账"; break;
+ case "fail":status="已入账"; break;
default:status="未知状态";
}
info0[i][7]=status;
@@ -136,24 +147,94 @@
return JsonResult.error("操作失败");
}
+ @Override
+ public TTransDtl saveTransdtl(TTransDtl dtl) {
+ return transDtlDao.save(dtl);
+ }
+
+ @Override
+ public TTransDtl getTransDtlByBillno(String billno) {
+ return transDtlDao.getByBillno(billno);
+ }
@Override
public JsonResult revertTransdtl(TTransDtl dtl) {
- TTransDtl targetDtl=transDtlDao.findById(dtl.getRefno()).get();
+ TTransDtl targetDtl=transDtlDao.findById(dtl.getBillno()).get();
if(null==targetDtl){
return JsonResult.error("未查询到目标流水");
}
TTransDtl revDtl=new TTransDtl();
BeanUtils.copyProperties(targetDtl,revDtl);
- revDtl.setRefno(systemUtilService.getRefno());
- revDtl.setStatus(0);
- revDtl.setAccdate(DateUtil.getNow("yyyyMMdd"));
- revDtl.setAcctime(DateUtil.getNow("HHmmss"));
- revDtl.setAttr2(dtl.getAttr2());
+ revDtl.setBillno(systemUtilService.getRefno());
+ revDtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_INIT);
+ String date=DateUtil.getNow("yyyyMMdd");
+ String time=DateUtil.getNow("HHmmss");
+ revDtl.setAccdate(date);
+ revDtl.setAcctime(time);
+ revDtl.setTransdate(date);
+ revDtl.setTranstime(time);
+ revDtl.setRevbillno(dtl.getBillno());
+ revDtl.setAttr1(dtl.getAttr1());
+ revDtl.setStatus(dtl.getStatus());
revDtl.setTranstype(RestaurantConstant.TRANSTYPE_TRANSDTL_REVERT);
revDtl.setAmount(targetDtl.getAmount()*-1.00);
transDtlDao.save(revDtl);
+ targetDtl.setRevflag(1);
+ transDtlDao.save(targetDtl);
return JsonResult.ok("操作成功");
}
+
+ @Override
+ public Integer getMaxSeqnoToday(Integer deviceid, String accdate) {
+ Integer onlineseqno= transDtlDao.getMaxSqlnoToday(deviceid,accdate);
+ if (null == onlineseqno) {
+ onlineseqno = 0;
+ }
+ return onlineseqno;
+ }
+
+ @Override
+ public ManageFeeAmtBean getManageFeeToday(String transdate, Integer termid) {
+ StringBuffer querySql = new StringBuffer(
+ "select sum(managefee) as managefeeamt,count(managefee) as managefeecnt " +
+ " from tb_transdtl where transdate=:transdate and termid=:termid and managefee!=0 ");
+
+ Query query = entityManager.createNativeQuery(querySql.toString());
+ query.setParameter("transdate",transdate);
+ query.setParameter("termid",termid);
+ query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.aliasToBean(ManageFeeAmtBean.class));
+
+ List<ManageFeeAmtBean> list = query.getResultList();
+ ManageFeeAmtBean bean=list.get(0);
+ if(bean.getManagefeeamt()==null){
+ bean.setManagefeeamt(0.0);
+ }
+ return bean;
+ }
+
+ @Override
+ public SalesAmtBean getSalesToday(String transdate, Integer termid) {
+ StringBuffer querySql = new StringBuffer("select sum(amount) as salesamt,count(amount) as salescnt "+
+ "from tb_transdtl where transdate=:transdate and termid=:termid");
+
+ Query query = entityManager.createNativeQuery(querySql.toString());
+ query.setParameter("transdate",transdate);
+ query.setParameter("termid",termid);
+ query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.aliasToBean(SalesAmtBean.class));
+
+ List<SalesAmtBean> list = query.getResultList();
+ SalesAmtBean bean=list.get(0);
+ if(bean.getSalesamt()==null){
+ bean.setSalesamt(0.0);
+ }
+ return bean;
+ }
+
+ @Override
+ public List<TTransDtl> getSubmittingTransdtl() {
+ return transDtlDao.findAllByStatus(RestaurantConstant.STATUS_TRANSDTL_WAIT);
+ }
+
+
}
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 3015eff..932fb67 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/util/RestaurantConstant.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/util/RestaurantConstant.java
@@ -6,15 +6,27 @@
public static final String STATUS_DISCOUNTRULE_CLOSED = "closed"; //无效
public static final String STATUS_DISCOUNTRULE_REJECT = "reject"; //驳回
- public static final Integer STATUS_TRANSDTL_UNCHECKED = 0; //未入账
- public static final Integer STATUS_TRANSDTL_CHECKED = 1; //已入账
- public static final String TRANSTYPE_TRANSDTL_ONLINE = "lj"; //联机
- public static final String TRANSTYPE_TRANSDTL_OFFLINE = "tj"; //脱机
- public static final String TRANSTYPE_TRANSDTL_REVERT = "cz"; //冲正
+ public static final String STATUS_TRANSDTL_INIT = "init"; //初始化
+ public static final String STATUS_TRANSDTL_WAIT = "wait"; //提交中
+ public static final String STATUS_TRANSDTL_SUCCESS = "suc"; //已入账
+ public static final String STATUS_TRANSDTL_FAIL = "fail"; //取消
- public static final Integer STATUS_CARD_NORMAL = 1; //正常
- public static final Integer STATUS_CARD_CANCEL= 2; //注销
+
+ public static final String TRANSTYPE_TRANSDTL_ONLINE = "online"; //联机
+ public static final String TRANSTYPE_TRANSDTL_OFFLINE = "offline"; //脱机
+ public static final String TRANSTYPE_TRANSDTL_REVERT = "revert"; //冲正
+
+ public static final String MEALTYPE_BREAKFAST="breakfast";
+ public static final String MEALTYPE_LUNCH="lunch";
+ public static final String MEALTYPE_DINNER="dinner";
+
+ public static final String STATUS_CARD_NORMAL = "normal"; //正常
+ public static final String STATUS_CARD_LOGOUT= "logout"; //注销
+ public static final String STATUS_CARD_LOST= "lost"; //挂失
+ public static final String STATUS_CARD_FROZEN = "frozen"; //冻结
+ public static final String STATUS_CARD_LOCK= "LOCK"; //锁卡
+ public static final String STATUS_CARD_EXPIRE= "expire"; //过期
public static final String RULETYPE_QUOTA = "quota"; //定额
diff --git a/src/main/kotlin/com/supwisdom/dlpay/framework/controller/security_controller.kt b/src/main/kotlin/com/supwisdom/dlpay/framework/controller/security_controller.kt
index 088c74d..24567ce 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/framework/controller/security_controller.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/framework/controller/security_controller.kt
@@ -64,6 +64,7 @@
@GetMapping(value = ["/gettoken", "/gettoken/{clientid}"])
+ @ResponseBody
fun loginInit(appid: String, @PathVariable clientid: String?,
@RequestHeader(Constants.HEADER_TETANTID) tetantId: String?): ResponseEntity<Any> {
@@ -92,7 +93,7 @@
it.loginTimestamp = now
it.roles = api.roles
it.tenantId = tetantId
- it.token = HmacUtil.HMACSHA256(token, api.secret)
+ it.token = HmacUtil.HMACSHA256( api.secret,token)
}.also {
apiClientRepository.save(it)
}
@@ -110,7 +111,7 @@
}
private fun checkSecretToken(api: ApiClientRedis, secret: String): Boolean {
- return (api.token == secret)
+ return (api.token.toLowerCase() == secret.toLowerCase())
}
@GetMapping(value = ["/authentication", "/authentication/{clientid}"])
diff --git a/src/main/kotlin/com/supwisdom/dlpay/security.kt b/src/main/kotlin/com/supwisdom/dlpay/security.kt
index 4392fa6..7e0b13a 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/security.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/security.kt
@@ -121,12 +121,14 @@
.antMatcher("/api/**")
.authorizeRequests()
.antMatchers("/api/auth/**").permitAll()
+ //.antMatchers("/api/pos/**").permitAll()
.antMatchers("/api/notify/**").permitAll()
.antMatchers("/api/common/**").hasAnyRole("THIRD_COMMON", "THIRD_ADMIN")
.antMatchers("/api/consume/**").hasRole("THIRD_CONSUME")
.antMatchers("/api/deposit/**").hasRole("THIRD_DEPOSIT")
.antMatchers("/api/user/**").hasRole("THIRD_ADMIN")
.antMatchers("/api/shop/**").hasRole("THIRD_SHOP")
+ .antMatchers("/api/pos/**").hasRole("THIRD_SHOP")
.anyRequest().hasRole("THIRD_COMMON")
.and()
.csrf().ignoringAntMatchers("/api/**")
diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql
index 27a53ab..6f33be3 100644
--- a/src/main/resources/data.sql
+++ b/src/main/resources/data.sql
@@ -77,9 +77,9 @@
INSERT INTO "tb_dictionary"(dictval,dicttype,dictcaption,dicttypename) VALUES ('0', 'sexList', '女', '性别');
INSERT INTO "tb_dictionary"(dictval,dicttype,dictcaption,dicttypename) VALUES ('1', 'sexList', '男', '性别');
-INSERT INTO "tb_dictionary"(dictval,dicttype,dictcaption,dicttypename) VALUES ('lj', 'transtypeList', '联机', '交易类型');
-INSERT INTO "tb_dictionary"(dictval,dicttype,dictcaption,dicttypename) VALUES ('tj', 'transtypeList', '脱机', '交易类型');
-INSERT INTO "tb_dictionary"(dictval,dicttype,dictcaption,dicttypename) VALUES ('cz', 'transtypeList', '冲正', '交易类型');
+INSERT INTO "tb_dictionary"(dictval,dicttype,dictcaption,dicttypename) VALUES ('online', 'transtypeList', '联机', '交易类型');
+INSERT INTO "tb_dictionary"(dictval,dicttype,dictcaption,dicttypename) VALUES ('offline', 'transtypeList', '脱机', '交易类型');
+INSERT INTO "tb_dictionary"(dictval,dicttype,dictcaption,dicttypename) VALUES ('revert', 'transtypeList', '冲正', '交易类型');
INSERT INTO "tb_dictionary"(dictval,dicttype,dictcaption,dicttypename) VALUES ('0', 'transtatusList', '未入账', '流水状态');
INSERT INTO "tb_dictionary"(dictval,dicttype,dictcaption,dicttypename) VALUES ('1', 'transtatusList', '已入账', '流水状态');
@@ -104,7 +104,10 @@
INSERT INTO "tb_function"(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (30, NULL, 1, NULL, '', '/transdtlrev/index', '交易冲正', NULL, 28);
INSERT INTO "tb_function"(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (1, NULL, 1, NULL, '', '/custtype/index', '客户类型维护', 1, 22);
INSERT INTO "tb_function"(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (23, NULL, 1, NULL, 'layui-icon-home', '/customer/index', '就餐对象管理', 3, 22);
-
+INSERT INTO "tb_function" (id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (10, NULL, 0, NULL, 'layui-icon-util', '#', '参数管理', 3, -1);
+INSERT INTO "tb_function" (id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (11, NULL, 1, NULL, 'layui-icon-util', '/param/syspara', '全局参数配置', 1, 10);
+INSERT INTO "tb_function" (id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (12, NULL, 1, NULL, 'layui-icon-util', '/param/businesspara', '业务参数配置', 2, 10);
+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_mealtype" (mealtype,endtime,lastsaved,mealname) VALUES ('dinner', '200000', '20190709102922', '晚餐');
INSERT INTO "tb_mealtype" (mealtype,endtime,lastsaved,mealname) VALUES ('lunch', '130000', '20190709102922', '中午');
@@ -112,9 +115,7 @@
INSERT INTO "tb_oper_role" (id,operid,roleid) VALUES ('2c9cab836a90185f016a901b005f001b', '402882816a8fe884016a8fe8c0530000', '2c9cab836a8af5d5016a8af6ece20000');
INSERT INTO "tb_oper_role" (id,operid,roleid) VALUES ('ff8080816aaf2ec3016aaf30c1b60007', 'LOR2IwRkbOjp+sVG9KR2BpHZbwGKepS4', 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
INSERT INTO "tb_oper_role" (id,operid,roleid) VALUES ('ff8080816ab96daf016ab9743dc60050', '2c9cab836a9666e0016a96694bbb0004', 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_operator" (operid,closedate,email,mobile,opendate,opercode,opername,operpwd,opertype,sex,status) VALUES ('402882816a8fe884016a8fe8c0530000', NULL, '', '', '20190507', 'test', '11112', '$2a$10$Xa/UKDQ/WkiKVQAyv5Hu4eiqt6HtwVK3YA0Glg1/y1uiEsXnG7ZeS', 'oper', 'normal', 'male');
-INSERT INTO "tb_operator" (operid,closedate,email,mobile,opendate,opercode,opername,operpwd,opertype,sex,status) VALUES ('LOR2IwRkbOjp+sVG9KR2BpHZbwGKepS4', '20500101', '', '', '20190101', 'system', '系统管理员', '$2a$10$Ex9xp11.vCaD8D0a7ahiUOKqDij1TcCUBwRAmrqXeDvAkmzLibn4.', 'oper', 'normal', 'male');
-INSERT INTO "tb_operator" (operid,closedate,email,mobile,opendate,opercode,opername,operpwd,opertype,sex,status) VALUES ('2c9cab836a9666e0016a96694bbb0004', NULL, '', '', '20190508', 'test1', 'test1', '$2a$10$lkfzdX.0ioX9FU2BmPzHz.tv2DTR8XvaZzA0vpkEYV5vx/IDtIsGy', 'oper', 'normal', 'normal');
+INSERT INTO "tb_operator" (operid,closedate,email,mobile,opendate,opercode,opername,operpwd,opertype,sex,status) VALUES ('LOR2IwRkbOjp+sVG9KR2BpHZbwGKepS4', '20500101', '', '', '20190101', 'system', '系统管理员', '$2a$10$Ex9xp11.vCaD8D0a7ahiUOKqDij1TcCUBwRAmrqXeDvAkmzLibn4.', 'oper', 'male','normal');
INSERT INTO "tb_paytype_config" (paytype,configid,config_name,config_value) VALUES ('yktpay', 'appid', NULL, '100005');
INSERT INTO "tb_paytype_config" (paytype,configid,config_name,config_value) VALUES ('yktpay', 'appkey', NULL, 'adc4ac6822fd462780f878b86cb94688');
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');
@@ -290,6 +291,19 @@
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 (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');
+INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (32, '', 12, '新增', '/param/addbusinesspara');
+INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (33, '', 12, '新增跳转', '/param/load4addbuspara');
+INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (34, '', 17, '查询', '/param/apiclientpara');
+INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (35, '', 17, '新增修改跳转', '/param/load4addapiclient');
+INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (36, '', 17, '修改状态', '/param/updateapiclientstate');
+INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (37, '', 17, '删除', '/param/deleteapiclient');
+INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (39, '', 17, '修改', '/param/updateapiclientpara');
+INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (40, '', 17, '新增', '/param/addapiclientpara');
INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (38, '', 15, '修改状态', '/device/updatestate');
INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (42, '', 15, '导入页面', '/device/loadimport');
INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (44, '', 15, '导入', '/device/import');
@@ -336,10 +350,10 @@
INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (88, '', 30, '查询', '/transdtlrev/index');
INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (89, '', 30, '加载冲正页面', '/transdtlrev/loadrevert');
INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (90, '', 30, '冲正', '/transdtlrev/revert');
-INSERT INTO "tb_resource"(id,code,function_id,name,uri) VALUES (27, '', 1, '加载添加', '/custtype/loadadd');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (28, '', 1, '添加', '/custtype/add');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (29, '', 1, '修改', '/custtype/update');
-INSERT INTO "tb_resource" (id,code,function_id,name,uri) VALUES (30, '', 1, '删除', '/custtype/delete');
+INSERT INTO "tb_resource"(id,code,function_id,name,uri) VALUES 91, '', 1, '加载添加', '/custtype/loadadd');
+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_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', '系统管理员', '系统管理员');
diff --git a/src/main/resources/templates/restaurant/customer/form.html b/src/main/resources/templates/restaurant/customer/form.html
index 757f63a..748db9d 100644
--- a/src/main/resources/templates/restaurant/customer/form.html
+++ b/src/main/resources/templates/restaurant/customer/form.html
@@ -17,6 +17,14 @@
</div>
<div class="layui-form-item">
+ <label class="layui-form-label"><span style="color: red">* </span>物理卡号</label>
+ <div class="layui-input-block">
+ <input name="cardphyid" placeholder="请输入" type="text" class="layui-input" maxlength="20"
+ lay-verify="required" required/>
+ </div>
+ </div>
+
+ <div class="layui-form-item">
<label class="layui-form-label">人员类别</label>
<div class="layui-input-block">
<select name="custtype" id="customer-custtype" lay-verify="required">
diff --git a/src/main/resources/templates/restaurant/customer/index.html b/src/main/resources/templates/restaurant/customer/index.html
index 47b1a9c..bfb9aa9 100644
--- a/src/main/resources/templates/restaurant/customer/index.html
+++ b/src/main/resources/templates/restaurant/customer/index.html
@@ -37,12 +37,14 @@
elem: '#customer-table',
url: '[[@{/customer/list}]]',
page: true,
+ minWidth: 80,
cols: [
[
- {field: 'custid', title: '客户号',width: 140, sort: true},
- {field: 'custname', sort: true, width: 150, title: '客户姓名'},
- {field: 'cardno', sort: true, width: 150, title: '市名卡号'},
- {field: 'phone', sort: true, width: 140, title: '联系电话'},
+ {field: 'custid', title: '客户号', sort: true},
+ {field: 'custname', sort: true, title: '客户姓名'},
+ {field: 'cardno', sort: true,width: 200, title: '市名卡号'},
+ {field: 'cardphyid', sort: true, title: '物理卡号'},
+ {field: 'phone', title: '联系电话'},
{field: 'bankcardno', sort: true, width: 200, title: '银行卡号'},
{
field: 'custtype', width:100, title: '人员类别', templet: function (item) {
@@ -54,7 +56,7 @@
}
},
{
- field: 'custid', align: 'center', title: '操作', fixed: 'right', templet: function (item) {
+ field: 'custid', align: 'center',width:150, 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>';
}
diff --git a/src/main/resources/templates/restaurant/device/form.html b/src/main/resources/templates/restaurant/device/form.html
index 1f3d234..17e5877 100644
--- a/src/main/resources/templates/restaurant/device/form.html
+++ b/src/main/resources/templates/restaurant/device/form.html
@@ -18,11 +18,20 @@
</div>
- <div class="layui-form-item">
- <label class="layui-form-label"><span style="color: red">* </span>所属商户ID</label>
+ <!-- <div class="layui-form-item">
+ <label class="layui-form-label"><span style="color: red">* </span>所属商户</label>
<div class="layui-input-block">
<input name="shopid" placeholder="请输入" type="text" class="layui-input"/>
</div>
+ </div>-->
+
+ <div class="layui-form-item">
+ <label class="layui-form-label"><span style="color: red">* </span>所属商户</label>
+ <div class="layui-input-block">
+ <select name="shopid" lay-verify="required">
+ <option th:each="shop : ${shoplist}" th:value="${shop.shopid}">[[${shop.shopname}]]</option>
+ </select>
+ </div>
</div>
<div class="layui-form-item model-form-footer">
@@ -76,6 +85,7 @@
console.log(data);
layer.load(2);
let token = $("meta[name='_csrf_token']").attr("value");
+ console.log(token);
$.ajax({
type: "POST",
dataType: "json",
diff --git a/src/main/resources/templates/restaurant/devicemanage/form.html b/src/main/resources/templates/restaurant/devicemanage/form.html
index b3d650f..59894af 100644
--- a/src/main/resources/templates/restaurant/devicemanage/form.html
+++ b/src/main/resources/templates/restaurant/devicemanage/form.html
@@ -4,7 +4,7 @@
<div class="layui-form-item">
<label class="layui-form-label"><span style="color: red">* </span>设备名称</label>
<div class="layui-input-block">
- <input name="devicename" placeholder="建议采用带有地理坐标的名称" type="text" class="layui-input" maxlength="20"
+ <input name="devicename" placeholder="建议采用商户的名称" type="text" class="layui-input" maxlength="20"
lay-verify="required|devphyid" required/>
</div>
</div>
diff --git a/src/main/resources/templates/restaurant/transdtl/index.html b/src/main/resources/templates/restaurant/transdtl/index.html
index 3188c65..555d218 100644
--- a/src/main/resources/templates/restaurant/transdtl/index.html
+++ b/src/main/resources/templates/restaurant/transdtl/index.html
@@ -37,7 +37,7 @@
<div class="layui-inline">
<label class="layui-form-label"> 交易号:</label>
<div class="layui-input-inline">
- <input id="transdtl-refno" name="refno" class="layui-input " type="text"/>
+ <input id="transdtl-refno" name="billno" class="layui-input " type="text"/>
</div>
</div>
<div class="layui-inline">
@@ -124,14 +124,13 @@
enddate:enddate
},
toolbar: true,
- minWidth: 80,
defaultToolbar: ['filter', 'print'],
page: true,
cols: [
[
- {field: 'custname', title: '姓名', fixed: 'left'},
+ {field: 'custname', title: '姓名',width:100, fixed: 'left'},
{field: 'cardno', title: '市民卡号', fixed: 'left'},
- {field: 'refno', title: '交易号', fixed: 'left', sort: true},
+ {field: 'billno', title: '交易号', fixed: 'left',width:200, sort: true},
{field: 'amount', title: '交易金额', sort: true,
templet: function (item) {
return numberFormat(item.amount,2);
@@ -140,6 +139,7 @@
field: 'accdate',
title: '交易日期',
sort: true,
+ width:120,
templet: function (item) {
var date = item.accdate;
if (date != null) {
@@ -152,6 +152,7 @@
field: 'transdate',
title: '记账日期',
sort: true,
+ width:120,
templet: function (item) {
var date = item.transdate;
if (date != null) {
@@ -214,7 +215,7 @@
shopid: shopid,
startdate: startdate,
enddate: enddate,
- refno: refno,
+ billno: refno,
status: status,
termid: termid
}, page: {curr: 1}
diff --git a/src/main/resources/templates/restaurant/transdtlform/index.html b/src/main/resources/templates/restaurant/transdtlform/index.html
index 6d872c4..1320191 100644
--- a/src/main/resources/templates/restaurant/transdtlform/index.html
+++ b/src/main/resources/templates/restaurant/transdtlform/index.html
@@ -8,7 +8,7 @@
</div>
<div class="layui-card-body">
<div class="layui-form toolbar">
- <form id="transdtl-form" >
+ <form id="transdtl-form">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">交易日期:</label>
@@ -21,36 +21,121 @@
id="transdtlform-enddate" placeholder="yyyy-MM-dd">
</div>
</div>
+ <div class="layui-inline">
+ <label class="layui-form-label"><span style="color: red">* </span>设备组</label>
+ <div class="layui-input-block">
+ <input id="search-transdtlform-form-devgroupid" type="text" name="devgroupid"
+ lay-filter="search-transdtlform-form-devgroupid-filter" autocomplete="off"
+ class="layui-input"/>
+ </div>
+ </div>
+ <button class="layui-btn" lay-filter="transdtlform-form-submit" lay-submit id="transdtlform-submitbtn">保存</button>
</div>
- <div class="layui-input-inline">
- <input id="search-devparabind-form-devgroupid" type="text"
- lay-filter="search-devparabind-form-devgroupid-filter" autocomplete="off"
- class="layui-input"/>
- </div>
+
+
</form>
</div>
- <table class="layui-table" id="transdtl-table" lay-filter="table"></table>
+ <table class="layui-table" id="transdtlform-table" lay-filter="transdtlform-table">
+ <thead>
+ <tr>
+ <th rowspan="2" style="min-width:100px;text-align: center;vertical-align: middle;">商户名称</th>
+ <th rowspan="2" style="min-width:100px;text-align: center;vertical-align: middle;">终端编号</th>
+ <th colspan="2" style="min-width:140px;text-align: center">早餐</th>
+ <th colspan="2" style="min-width:140px;text-align: center">中餐</th>
+ <th colspan="2" style="min-width:140px;text-align: center">晚餐</th>
+ </tr>
+ <tr>
+ <th style="min-width:70px;text-align: center">人次</th>
+ <th style="min-width:70px;text-align: center">金额</th>
+ <th style="min-width:70px;text-align: center">人次</th>
+ <th style="min-width:70px;text-align: center">金额</th>
+ <th style="min-width:70px;text-align: center">人次</th>
+ <th style="min-width:70px;text-align: center">金额</th>
+ </tr>
+ </thead>
+ <tbody id="pdata">
+ <!-- start ajax zone -->
+ <tr th:each="group,iterStat : ${pagelist}">
+ <td th:rowspan="${iterStat.size+1}"
+ style="min-width:100px;text-align: center;vertical-align:middle">
+ [[${group.devgroupname}]]
+ </td>
+
+ <td th:each="device,iterStat : ${group}"
+ style="min-width:100px;text-align: center;vertical-align:middle">
+ [[${device.devicename}]]
+ </td>
+ <c:if test="${mtype3.mealtype eq mb.mealtype}">
+ <td style="min-width:70px;text-align: center">
+ <c:out
+ value="${mb.totalcnt}"/>
+ </td>
+ <td style="min-width:70px;text-align: center">
+ <fmt:formatNumber
+ pattern="##0.00"
+ value="${mb.totalamt}"/>
+ </td>
+ </c:if>
+ </tr>
+ <tr>
+ <td style="min-width:100px;text-align: center;vertical-align:middle"
+ title="${second.termid}">
+ <c:out value="${second.termname}"/>
+ </td>
+ <c:if test="${mtype4.mealtype eq mb1.mealtype}">
+ <td style="min-width:70px;text-align: center">
+ <c:out
+ value="${mb1.totalcnt}"/>
+ </td>
+ <td style="min-width:70px;text-align: center">
+ <fmt:formatNumber
+ pattern="##0.00"
+ value="${mb1.totalamt}"/>
+ </td>
+ </c:if>
+ </tr>
+ <tr>
+ <td style="min-width:100px;text-align: right">
+ <c:out value="${temp.shopname}"/>
+ 小计:
+ </td>
+ <td style="min-width:70px;text-align: center">
+ <c:out
+ value="${s1.totalcnt}"/>
+ </td>
+ <td style="min-width:70px;text-align: center">
+ <fmt:formatNumber
+ pattern="##0.00"
+ value="${s1.totalamt}"/>
+ </td>
+ </tr>
+ </c:forEach>
+ <tr class="active">
+ <td colspan="2" style="min-width:100px;text-align: right">总计:</td>
+ <td style="min-width:70px;text-align: center">
+ <c:out
+ value="${s2.totalcnt}"/>
+ </td>
+ <td style="min-width:70px;text-align: center">
+ <fmt:formatNumber pattern="##0.00"
+ value="${s2.totalamt}"/>
+ </td>
+ </tr>
+ </tbody>
+ </table>
</div>
</div>
<script>
-
- layui.use(['form', 'table', 'layer', 'admin', 'element'], function () {
- let form = layui.form;
+ layui.use(['form', 'table', 'layer', 'admin', 'element','treeSelect'], function () {
let table = layui.table;
- let admin = layui.admin;
var treeSelect = layui.treeSelect;
+ var enddate = $("#transdtlform-enddate").val();
+ var treeNode=null;
-
-
- // 搜索按钮点击事件
- $('#btn-search').click(function () {
- let key = $('#search-value').val().trim();
- table.reload('table', {where: {searchkey: key}});
- });
treeSelect.render({
- elem: '#search-devparabind-form-devgroupid',
+ elem: '#search-transdtlform-form-devgroupid',
data: '[[@{/device/binddevparagrouptree}]]',
type: 'get',
placeholder: '选择设备组',
@@ -65,12 +150,15 @@
},
// 点击回调
click: function (d) {
- var treeNode = d.current;
- console.log(treeNode);
+ treeNode = d.current;
return true;
},
success: function (d) {
- console.log(d); // 加载完成后的回调函数
+ // 加载完成后的回调函数
+ //checkNode需指向filter而非id
+ treeSelect.checkNode(
+ 'search-transdtlform-form-devgroupid-filter',
+ 1);
}
});
laydate.render({
@@ -86,6 +174,39 @@
max: enddate
});
+ form.on('submit(transdtlform-form-submit)', function (data) {
+ layer.load(2);
+ let token = $("meta[name='_csrf_token']").attr("value");
+ $.ajax({
+ type: "POST",
+ dataType: "json",
+ url: url,
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json',
+ 'X-CSRF-TOKEN': token,
+ },
+ data: JSON.stringify(data.field),
+ success: function (result) {
+ layer.closeAll('loading');
+ if (result.code == 200) {
+ layer.msg(result.msg, {icon: 1});
+ } else if (result.code == 401) {
+ layer.msg(result.msg, {icon: 2, time: 1500}, function () {
+ location.replace('/login');
+ }, 1000);
+ return;
+ } else {
+ layer.msg(result.msg, {icon: 2});
+ }
+ },
+ error: function () {
+ layer.closeAll('loading');
+ layer.msg("请求服务器失败!", {icon: 2});
+ }
+ });
+ return false;
+ });
});