tcard表结构修改,消费逻辑加上餐补,交易流水添加refno,添加折扣餐补,
diff --git a/build.gradle b/build.gradle
index cf76fc3..431798f 100644
--- a/build.gradle
+++ b/build.gradle
@@ -56,7 +56,7 @@
compile group: 'org.apache.poi', name: 'poi-ooxml', version: '3.10.1'
compile group: 'org.apache.poi', name: 'poi-ooxml-schemas', version: '3.10.1'
compile group: 'org.apache.poi', name: 'poi-scratchpad', version: '3.10.1'
- compile 'com.supwisdom:payapi-sdk:ae0b0e2'
+ compile 'com.supwisdom:payapi-sdk:55725ca'
compile group: 'org.springframework.security.oauth', name: 'spring-security-oauth2', version: '2.3.4.RELEASE'
diff --git a/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java b/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java
index 9bb853f..d733c84 100644
--- a/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java
@@ -9,7 +9,10 @@
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.MoneyUtil;
import com.supwisdom.dlpay.framework.util.StringUtil;
+import com.supwisdom.dlpay.paysdk.proxy.CitizenCardPayProxy;
+import com.supwisdom.dlpay.paysdk.proxy.TransactionProxy;
import com.supwisdom.dlpay.restaurant.bean.DiscountBean;
import com.supwisdom.dlpay.restaurant.bean.ManageFeeAmtBean;
import com.supwisdom.dlpay.restaurant.bean.SalesAmtBean;
@@ -59,6 +62,10 @@
private DiscountRuleDao discountRuleDao;
@Autowired
private DeviceDiscountRuleService deviceDiscountRuleService;
+ @Autowired
+ private CitizenCardPayProxy citizenCardPayProxy;
+ @Autowired
+ private TransactionProxy transactionProxy;
@Override
@@ -85,21 +92,19 @@
/* if (groupid == 0) {
groupid = 1;
}*/
- TDevparaGroup group = deviceParamService.getDevparaGroupByGroupid(groupid);
- if (null == group) {
+ TDevparaGroup group=null;
+ TDevparaBind bind = deviceParamService.getDevparaBindByDeviceid(tDevice.getId());
+ if (null == bind) {
group=deviceParamService.getDefaultDevparaGroup();
- if(null ==group){
- resp.setRetcode(ErrorCode.ERRIF_POS_NOFUNC);
- resp.setRetmsg("未找到" + req.getDevphyid() + "参数组");
- return resp;
- }
+ }else{
+ group=deviceParamService.getDevparaGroupByGroupid(groupid);
}
+
+
tDevice.setRunstatus(1);
tDevice.setLastlogintime(sysdt);
deviceService.saveDevice(tDevice);
-
if(group.getGlobalflag()==false){
- TDevparaBind bind = deviceParamService.getDevparaBindByDeviceid(tDevice.getId());
if (null == bind) {
bind = new TDevparaBind();
bind.setDeviceid(tDevice.getId());
@@ -131,7 +136,6 @@
resp.setRetmsg("设备不存在");
return resp;
}
- //TODO:改 检查卡状态
TCard tCard = cardService.getCardByCardnoAndCardphyid(req.getCardno(), req.getCardphyid());
if (null == tCard) {
resp.setRetcode(ErrorCode.ERRIF_CARD_NOTEXIST);
@@ -165,7 +169,6 @@
return resp;
}
- //TODO:改 同一流水号判重??二维码消费逻辑:请求核心平台解码获取身份
TTransDtl tTransdtl = new TTransDtl();
tTransdtl.setAccdate(systemUtilService.getAccdate());
tTransdtl.setTermid(tDevice.getId());
@@ -183,7 +186,8 @@
tTransdtl.setAmount(0D);
tTransdtl.setManagefee(0.0);
tTransdtl.setRevflag(0);
- List<TMealtype> mealtypes = mealTypeDao.findAllByOrderByEndtime(); //TODO:改 餐次设备时钟
+
+ List<TMealtype> mealtypes = mealTypeDao.findAllByOrderByEndtime();
try {
for (TMealtype m : mealtypes) {
if (DateUtil.compareTime(m.getEndtime(), req.getTermtime())) {
@@ -209,16 +213,8 @@
tTransdtl.setCustname("");
}
- TTransDtl dtl=transDtlService.saveTransdtl(tTransdtl);
+ transDtlService.saveTransdtl(tTransdtl);
-/* CitizenCardPayinitParam param=new CitizenCardPayinitParam();
- param.setBillno(dtl.getBillno());
- param.setShopaccno(dtl.getShopid());
- param.setTransdate(dtl.getTransdate());
- param.setTranstime(dtl.getTranstime());
- param.setCardNo(dtl.getCardno());
- param.setAmount(0);
- CitizenPayResponse response=payApiService.citizencardPayinit(param);*/
resp.setBillno(tTransdtl.getBillno());
resp.setRetcode(ErrorCode.ERRIF_OK);
resp.setAnonymous(false);
@@ -226,12 +222,7 @@
resp.setSourcetype("pos");
resp.setUserid(tTransdtl.getCustid());
resp.setUsername(customer.getCustname());
- /* if (response.getRetcode()!=0){
- dtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_FAIL);
- transDtlService.saveTransdtl(dtl);
- resp.setRetcode(response.getRetcode().toString());
- resp.setRetmsg(response.getRetmsg());
- }*/
+
return resp;
}
@@ -261,15 +252,26 @@
return resp;
}
- Integer extamount = 0; //TODO:改 餐补规则的应用??
- /* Integer posamount=req.getAmount();
- DiscountBean discountBean=deviceDiscountRuleService.getCustomerDiscount(tDevice.getId(),req.getTermtime().substring(0,4));
- if(null!=discountBean){
- String
- }*/
+ Double extamount = 0.0;
+ Double amount=req.getAmount() / 100.0;
- tTransdtl.setAmount(req.getAmount() / 100.0);
- tTransdtl.setManagefee(extamount / 100.0); //managefeetype :mealer discount
+ DiscountBean bean=deviceDiscountRuleService.getCustomerDiscount(tDevice.getId(),req.getTermtime(), cus.getCustid());
+ if(null!=bean){
+ Integer limit=transDtlService.getDiscountLimitToday(req.getTermdate(),cus.getCustid(),bean.getRuleid());
+ if(bean.getLimitcnt()>=limit){
+ tTransdtl.setRuleid(bean.getRuleid());
+ if(RestaurantConstant.RULETYPE_REDUCTION.equals(bean.getRuletype())){
+ amount=amount-Double.parseDouble(bean.getAmount());
+ }else if (RestaurantConstant.RULETYPE_DISCOUNT.equals(bean.getRuletype())){
+ amount=amount*(Double.parseDouble(bean.getAmount())/10);
+ }else if (RestaurantConstant.RULETYPE_QUOTA.equals(bean.getRuletype())){
+ amount=Double.parseDouble(bean.getAmount());
+ }
+ }
+ }
+
+ tTransdtl.setAmount(amount);
+ tTransdtl.setManagefee(extamount); //managefeetype :mealer discount
tTransdtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_WAIT);
TTransDtl dtl=transDtlService.saveTransdtl(tTransdtl);
@@ -279,46 +281,45 @@
param.setTransdate(dtl.getTransdate());
param.setTranstime(dtl.getTranstime());
param.setCardNo(dtl.getCardno());
- Double amt=dtl.getAmount()*100;
- param.setAmount(amt.intValue());
+ param.setAmount(MoneyUtil.YuanToFen(dtl.getAmount()));
param.setDtltype("canteen");
- CitizenPayResponse response=payApiService.citizencardPayinit(param);
- if(response.getRetcode()!=0){
+ CitizenPayResponse response=citizenCardPayProxy.citizencardPayinit(param);
+ if(response.getRetcode() == 0){
+ tTransdtl.setRefno(response.getRefno());
+ CitizenCardPayfinishParam confirmParam=new CitizenCardPayfinishParam();
+ confirmParam.setRefno(response.getRefno());
+ CitizenPayResponse confirmResp = citizenCardPayProxy.citizencardPayFinish(confirmParam);
+ if(confirmResp.getRetcode() == 0){
+ tTransdtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_SUCCESS);
+ resp.setRetcode(ErrorCode.ERRIF_OK);
+ }else if (confirmResp.getRetcode()==55555){
+ tTransdtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_WAIT);
+ resp.setRetcode(ErrorCode.ERRIF_OK);
+ }else{
+ tTransdtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_FAIL);
+ tTransdtl.setAttr1(confirmResp.getRetmsg()+","+confirmResp.getException());
+ resp.setRetcode(confirmResp.getRetcode().toString());
+ resp.setRetmsg(confirmResp.getRetmsg());
+ }
+ }else{
tTransdtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_FAIL);
- transDtlService.saveTransdtl(tTransdtl);
+ tTransdtl.setAttr1(response.getRetmsg()+","+response.getException());
resp.setRetcode(response.getRetcode().toString());
resp.setRetmsg(response.getRetmsg());
- return resp;
- }else{
- CitizenCardPayfinishParam finishparam=new CitizenCardPayfinishParam();
- finishparam.setRefno(response.getRefno());
- CitizenPayResponse finishresp=payApiService.citizencardPayFinish(finishparam);
- if(finishresp.getRetcode()!=0){
- tTransdtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_FAIL);
- transDtlService.saveTransdtl(tTransdtl);
- resp.setRetcode(finishresp.getRetcode().toString());
- resp.setRetmsg(finishresp.getRetmsg());
- return resp;
- }
}
-
- tTransdtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_SUCCESS);
- //TODO:调核心平台初始化确认 逻辑缺!!!
-
- transDtlService.saveTransdtl(tTransdtl);
resp.setBillno(req.getBillno());
Double retAmount=tTransdtl.getAmount()*100;
resp.setAmount(retAmount.intValue());
- resp.setExtraamt(extamount*100);
+ resp.setExtraamt(0);
resp.setUserid(cus.getCustid());
resp.setUsername(cus.getCustname());
+ resp.setBalance(0);
+ transDtlService.saveTransdtl(tTransdtl);
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;
}
@@ -332,22 +333,24 @@
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;
+
+ QueryDtlResultParam param=new QueryDtlResultParam();
+ param.setRefno(tTransdtl.getRefno());
+ param.setBillno(tTransdtl.getBillno());
+ param.setShopaccno(tTransdtl.getShopid());
+ QueryTransDtlResponse queryresp=transactionProxy.queryDtlResult(param);
+ if(RestaurantConstant.STATUS_TRANSDTL_WAIT.equals(queryresp.getStatus())){
+ resp.setRequire_query(true);
+ }else{
+ resp.setRequire_query(false);
}
-
resp.setBillno(tTransdtl.getBillno());
-
Double retAmount=tTransdtl.getAmount()*100;
resp.setAmount(retAmount.intValue());
Double retExtamt=tTransdtl.getManagefee()*100;
resp.setExtraamt(retExtamt.intValue());
- resp.setUserid(cus.getCustid());
- resp.setUsername(cus.getCustname());
- resp.setRequire_query(true); //TODO:改 什么时候成功
+ resp.setUserid(tTransdtl.getCustid());
+ resp.setUsername(tTransdtl.getCustname());
resp.setBalance(0);
resp.setRetcode(ErrorCode.ERRIF_OK);
return resp;
@@ -364,8 +367,8 @@
}
if (!tTransDtl.getStatus().toUpperCase().equals(
RestaurantConstant.STATUS_TRANSDTL_SUCCESS.toUpperCase())) {
- tTransDtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_FAIL);
- tTransDtl.setAttr1("交易状态未成功");
+ /* tTransDtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_FAIL);
+ tTransDtl.setAttr1("交易状态未成功");*/
resp.setRetcode(ErrorCode.ERRIF_POSDTL_NOTEXIST);
resp.setRetmsg("流水" + req.getReversalbillno() + "交易状态未成功,不能冲正");
return resp;
@@ -615,17 +618,24 @@
TCard tCard = cardService.getCardByCardnoAndCardphyid(req.getCardno(), req.getCardphyid());
if (null == tCard) {
-
err+="卡号[" + req.getCardno() + "]不存在;";
+ }else{
+ TCustomer customer=customerService.getCustomerByCustid(tCard.getCustid());
+ if(null==customer){
+ err+="卡对应人员不存在;";
+ } else {
+ transDtl.setCustid(customer.getCustid());
+ transDtl.setCustname(customer.getCustname());
+ }
}
- TCustomer customer=customerService.getCustomerByCustid(tCard.getCustid());
+ /* TCustomer customer=customerService.getCustomerByCustid(tCard.getCustid());
if(null==customer){
err+="卡对应人员不存在;";
} else {
transDtl.setCustid(customer.getCustid());
transDtl.setCustname(customer.getCustname());
- }
+ }*/
@@ -644,7 +654,7 @@
}
} catch (Exception e) {
e.printStackTrace();
- err+="设置餐补类型失败;";
+ err+="设置分餐失败;";
}
if("true".equals(req.getReversalflag())){
diff --git a/src/main/java/com/supwisdom/dlpay/api/task/PosPayTask.java b/src/main/java/com/supwisdom/dlpay/api/task/PosPayTask.java
index 5267d8e..40ce54c 100644
--- a/src/main/java/com/supwisdom/dlpay/api/task/PosPayTask.java
+++ b/src/main/java/com/supwisdom/dlpay/api/task/PosPayTask.java
@@ -38,20 +38,7 @@
@Autowired
private CitizenCardPayProxy citizenCardPayProxy;
- /* @Scheduled(cron = "${cron.offlinedtl}")
- 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);
- }
- }
-
- }*/
-
- @Scheduled(cron = "${cron.offlinedtl}")
+ /* @Scheduled(cron = "${cron.offlinedtl}")
private void submitOfflineDtlTask(){
String date=DateUtil.getNow("yyyyMMdd");
List<TOfflineTransDtl> dtls=offlineTransDtlService.getUncheckOfflineTransdtl(date);
@@ -70,7 +57,7 @@
CitizenPayResponse response=citizenCardPayProxy.citizencardPayinit(param);
if(response.getRetcode()!=0){
dtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_FAIL);
- dtl.setAttr1(response.getRetmsg());
+ dtl.setAttr1(response.getRetmsg()+","+ response.getException());
offlineTransDtlService.saveTransdtl(dtl);
logger.info(dtl.getBillno()+"初始化失败,"+response.getRetcode()+","+response.getRetmsg()+","+ response.getException());
continue;
@@ -80,7 +67,7 @@
CitizenPayResponse finishresp=citizenCardPayProxy.citizencardPayFinish(finishparam);
if(finishresp.getRetcode()!=0){
dtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_FAIL);
- dtl.setAttr1(response.getRetmsg());
+ dtl.setAttr1(response.getRetmsg()+","+ response.getException());
offlineTransDtlService.saveTransdtl(dtl);
logger.info(dtl.getBillno()+"消费缺认失败,"+finishresp.getRetcode()+","+finishresp.getRetmsg()+","+ finishresp.getException());
continue;
@@ -91,6 +78,6 @@
}
- }
+ }*/
}
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 d77fdeb..4f63744 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/bean/TransDtlSearchBean.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/bean/TransDtlSearchBean.java
@@ -9,8 +9,8 @@
private String startdate;
private String enddate;
private Integer termid;
- private Integer status;
- private Integer shopid;
+ private String status;
+ private String shopid;
private String accdate;
public String getAccdate() {
@@ -61,19 +61,19 @@
this.termid = termid;
}
- public Integer getStatus() {
+ public String getStatus() {
return status;
}
- public void setStatus(Integer status) {
+ public void setStatus(String status) {
this.status = status;
}
- public Integer getShopid() {
+ public String getShopid() {
return shopid;
}
- public void setShopid(Integer shopid) {
+ public void setShopid(String shopid) {
this.shopid = shopid;
}
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 f3eb105..51a607c 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/controller/TransDtlController.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/controller/TransDtlController.java
@@ -53,11 +53,11 @@
public PageResult<TTransDtl> getDataList(@RequestParam("page") Integer pageNo,
@RequestParam("limit") Integer pageSize,
@RequestParam(value = "custname", required = false) String custname,
- @RequestParam(value = "shopid", required = false) Integer shopid,
+ @RequestParam(value = "shopid", required = false) String shopid,
@RequestParam(value = "startdate", required = false) String startdate,
@RequestParam(value = "enddate", required = false) String enddate,
@RequestParam(value = "billno", required = false) String billno,
- @RequestParam(value = "status", required = false) Integer status,
+ @RequestParam(value = "status", required = false) String status,
@RequestParam(value = "termid", required = false) Integer termid) {
try {
if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT;
@@ -76,11 +76,11 @@
@RequestMapping("/export")
@ResponseBody
public JsonResult downloadfile(@RequestParam(value = "custname", required = false) String custname,
- @RequestParam(value = "shopid", required = false) Integer shopid,
+ @RequestParam(value = "shopid", required = false) String shopid,
@RequestParam(value = "startdate", required = false) String startdate,
@RequestParam(value = "enddate", required = false) String enddate,
@RequestParam(value = "billno", required = false) String billno,
- @RequestParam(value = "status", required = false) Integer status,
+ @RequestParam(value = "status", required = false) String status,
@RequestParam(value = "termid", required = false) Integer termid,
HttpServletRequest request, HttpServletResponse response) {
@@ -89,7 +89,7 @@
return transDtlService.export(bean, request, response);
}
- private TransDtlSearchBean getTransDtlSearchBean( String custname, Integer shopid, String startdate, String enddate, String billno,Integer status, Integer termid) {
+ private TransDtlSearchBean getTransDtlSearchBean( String custname, String shopid, String startdate, String enddate, String billno,String status, Integer termid) {
TransDtlSearchBean bean = new TransDtlSearchBean();
bean.setCustname(custname);
bean.setEnddate(enddate);
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 3ae9a10..7d4ff29 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/controller/TransDtlRevertController.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/controller/TransDtlRevertController.java
@@ -12,6 +12,7 @@
import com.supwisdom.dlpay.restaurant.domain.TTransDtl;
import com.supwisdom.dlpay.restaurant.service.ShopSettlementService;
import com.supwisdom.dlpay.restaurant.service.TransDtlService;
+import com.supwisdom.dlpay.restaurant.util.RestaurantConstant;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Controller;
@@ -70,6 +71,7 @@
}
bean.setCustname(custname);
bean.setBillno(refno);
+ bean.setStatus(RestaurantConstant.STATUS_TRANSDTL_SUCCESS);
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 d1f234d..1136ace 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/dao/CardDao.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/dao/CardDao.java
@@ -2,7 +2,6 @@
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;
@@ -13,14 +12,16 @@
import java.util.List;
@Repository
-public interface CardDao extends JpaRepository<TCard, TCardPk> {
+public interface CardDao extends JpaRepository<TCard, String> {
@Query(value = "update TB_CARD set STATUS=:status where CARDNO=:cardno", nativeQuery = true)
void updateStatus(@Param("cardno") Integer cardno,@Param("status") Integer status);
List<TCard> findAllByCustid(String custid);
- List<TCard> findAllByCardno(String cardno);
+ List<TCard> findAllByCardnoAndStatus(String cardno,String status);
Integer countByCardno(String cardno);
+
+ List<TCard> findAllByCardnoAndCardphyidAndStatus(String cardno,String cardphyid,String status);
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/dao/DevparaGroupDao.java b/src/main/java/com/supwisdom/dlpay/restaurant/dao/DevparaGroupDao.java
index 04033ee..d566f99 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/dao/DevparaGroupDao.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/dao/DevparaGroupDao.java
@@ -13,7 +13,9 @@
TDevparaGroup findByGroupid(int groupid);
- TDevparaGroup findByGlobalflag(Boolean t);
+
+ @Query(" from TDevparaGroup t where t.globalflag=true ")
+ TDevparaGroup findGlobalParaGroup();
@Query("select count(t.groupid) from TDevparaGroup t where t.groupname=?1 ")
long checkGroupnameExists(String groupname);
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 f2b60b6..cfb0ade 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/dao/TransDtlDao.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/dao/TransDtlDao.java
@@ -44,4 +44,5 @@
TTransDtl getByTransdateAndTermidAndTermsqlno(String transdate,Integer termid,Integer termsqlno);
+ Integer countByAccdateAndCustidAndRuleid(String accdate,String custid,Integer ruleid);
}
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 14ec99a..a839940 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCard.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCard.java
@@ -4,7 +4,6 @@
import javax.persistence.*;
@Entity
-@IdClass(TCardPk.class)
@Table(name = "TB_CARD")
public class TCard {
private String cardno;
@@ -28,7 +27,6 @@
public void setCardno(String cardno) {
this.cardno = cardno;
}
- @Id
@Column(name = "cardphyid" ,nullable = false,length = 8)
public String getCardphyid() {
return cardphyid;
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCardPk.java b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCardPk.java
deleted file mode 100644
index c9e8c1d..0000000
--- a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCardPk.java
+++ /dev/null
@@ -1,55 +0,0 @@
-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/service/DeviceDiscountRuleService.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/DeviceDiscountRuleService.java
index 47d613e..7ddd9cc 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/DeviceDiscountRuleService.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/DeviceDiscountRuleService.java
@@ -47,7 +47,7 @@
TDiscountDevbind getDiscountDevbindById(String id);
@Transactional(rollbackFor = Exception.class, readOnly = true)
- DiscountBean getCustomerDiscount(Integer deviceid, String termtime);
+ DiscountBean getCustomerDiscount(Integer deviceid, String termtime,String custid);
@Transactional(rollbackFor = Exception.class)
boolean deleteDiscountDevbind(TDiscountDevbind bind);
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 adfcc0f..209d4d4 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/TransDtlService.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/TransDtlService.java
@@ -47,4 +47,7 @@
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
List<TTransDtl> getSubmittingTransdtl();
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
+ Integer getDiscountLimitToday(String termdate,String custid,Integer ruleid);
}
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 baa5428..903a26f 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,7 +4,6 @@
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;
@@ -41,12 +40,11 @@
@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;
+ List<TCard> card=cardDao.findAllByCardnoAndCardphyidAndStatus(cardno,cardphyid,"normal");
+ if(card.size()>0){
+ return card.get(0);
}
- return card.get();
+ return null;
}
@Override
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 1d393e1..540dc9f 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,7 +8,6 @@
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.CardService;
@@ -17,9 +16,6 @@
import org.hibernate.query.internal.NativeQueryImpl;
import org.hibernate.transform.Transformers;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.data.domain.Pageable;
-import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
@@ -56,11 +52,12 @@
public PageResult<CustomerShowBean> getCustomerByCustname(CustomerSearchBean param) {
StringBuffer querySql = new StringBuffer("select t.cardno,t.custid,c.custname, " +
"t.bankcardno,t.cardphyid,c.phone,c.custtype from Tb_card t " +
- "left join tb_customer c on t.custid=c.custid ");
- StringBuffer countSql = new StringBuffer("select count(*) as cnt from Tb_card t left join tb_customer c on t.custid=c.custid ");
+ "left join tb_customer c on t.custid=c.custid where t.status='normal'");
+ StringBuffer countSql = new StringBuffer("select count(*) as cnt from Tb_card t " +
+ "left join tb_customer c on t.custid=c.custid where t.status='normal'");
if (!StringUtil.isEmpty(param.getCustname())) {
- querySql.append(" where c.custname like :str ");
- countSql.append(" where c.custname like :str ");
+ querySql.append(" and c.custname like :str ");
+ countSql.append(" and c.custname like :str ");
}
querySql.append(" order by t.cardno ");
Query query = entityManager.createNativeQuery(querySql.toString());
@@ -79,8 +76,8 @@
@Override
public TCustomer getCustomerByCustid(String custid) {
- Optional<TCustomer> cust=customerDao.findById(custid);
- if(cust.isPresent()){
+ Optional<TCustomer> cust = customerDao.findById(custid);
+ if (cust.isPresent()) {
return cust.get();
}
return null;
@@ -88,15 +85,18 @@
@Override
public JsonResult saveCustomer(CustomerSaveBean customer) {
- if (StringUtil.isEmpty(customer.getCustid())) {
- TCard card =
- cardService.getCardByCardnoAndCardphyid(customer.getCardno(), customer.getCardphyid());
- if (null!=card) {
- return JsonResult.error("用户" + customer.getCustname() + "已拥有该卡");
+ TCard card = new TCard();
+ TCustomer cus = new TCustomer();
+ if (!StringUtil.isEmpty(customer.getCustid())) {
+ Optional<TCustomer> opt1 = customerDao.findById(customer.getCustid());
+ if (opt1.isPresent()) {
+ cus = opt1.get();
+ }
+ List<TCard> cardlist=cardDao.findAllByCustid(customer.getCustid());
+ if(cardlist.size()>0){
+ card=cardlist.get(0);
}
}
-
- TCustomer cus=new TCustomer();
cus.setCusttype(customer.getCusttype());
cus.setBatchno(customer.getBatchno());
cus.setLastsaved(DateUtil.getNow("yyyyMMddHHmmss"));
@@ -109,17 +109,17 @@
if (null != cus) {
String cardverno = systemUtilService.getCardverno();
String date = DateUtil.getNow("yyyyMMdd");
- TCard card = new TCard();
+
card.setCardno(customer.getCardno());
card.setOpendate(date);
card.setCustid(cus.getCustid());
- card.setStatus("normal");
+ card.setStatus(RestaurantConstant.STATUS_CARD_NORMAL);
+ card.setTransstatus(RestaurantConstant.STATUS_CARD_NORMAL);
card.setCardphyid(customer.getCardphyid());
card.setCardverno(cardverno);
card.setBankcardno(customer.getBankcardno());
card.setExpiredate("");
- card=cardDao.save(card);
-
+ card = cardDao.save(card);
saveCardver(cardverno, date, card, card.getStatus(), RestaurantConstant.STATUS_CARD_NORMAL);
}
@@ -148,7 +148,7 @@
TCustomer customer = customerDao.findById(custid).get();
String cardverno = systemUtilService.getCardverno();
List<TCard> card = cardDao.findAllByCustid(custid);
- for(TCard c:card){
+ for (TCard c : card) {
c.setStatus(RestaurantConstant.STATUS_CARD_LOGOUT);
c.setCardverno(cardverno);
cardDao.save(c);
@@ -157,7 +157,6 @@
}
-
customerDao.deleteById(custid);
return JsonResult.ok("成功");
}
@@ -265,7 +264,7 @@
return JsonResult.error("操作失败");
}
- private List<CustomerExportBean> getCustomerExport() {
+ private List<CustomerExportBean> getCustomerExport() {
StringBuffer querySql = new StringBuffer(
"select c.custname,c.phone,t.cardno,t.bankcardno from tb_card t left join tb_customer c on t.custid=c.custid");
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceDiscountRuleServiceImpl.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceDiscountRuleServiceImpl.java
index e2f32ed..7e069e2 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceDiscountRuleServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceDiscountRuleServiceImpl.java
@@ -152,7 +152,7 @@
private TCustomer getCustomerByCardno(String cardno) {
if (!StringUtil.isEmpty(cardno)) {
- TCard clst=cardDao.findAllByCardno(cardno).get(0);
+ TCard clst=cardDao.findAllByCardnoAndStatus(cardno,"normal").get(0);
Optional<TCustomer> list = customerDao.findById(clst.getCustid());
if (list.isPresent()) {
return list.get();
@@ -402,15 +402,17 @@
}
@Override
- public DiscountBean getCustomerDiscount(Integer deviceid, String termtime) {
+ public DiscountBean getCustomerDiscount(Integer deviceid, String termtime,String custid) {
StringBuffer sql = new StringBuffer("select d.limitcnt,d.ruletype,d.amount,d.ruleid from tb_discount_rule d " +
"left join tb_discount_devbind t on t.ruleid=d.ruleid " +
"left join tb_discount_detail c on t.ruleid=c.ruleid " +
- "where c.status='normal' and t.deviceid=:deviceid" +
- "and d.starttime<:termtime and d.endtime>:termtime ");
+ "where c.status='normal' and t.deviceid=:deviceid " +
+ "and d.starttime<:termtime and d.endtime>:termtime " +
+ "and c.userid=:custid");
Query query = entityManager.createNativeQuery(sql.toString());
query.setParameter("deviceid", deviceid);
query.setParameter("termtime", termtime);
+ query.setParameter("custid", custid);
query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.aliasToBean(DiscountBean.class));
List<DiscountBean> list = query.getResultList();
if(list.size()>0){
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceParamServiceImpl.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceParamServiceImpl.java
index 2c3e714..3a18889 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceParamServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceParamServiceImpl.java
@@ -26,6 +26,7 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
@Service
public class DeviceParamServiceImpl implements DeviceParamService {
@@ -57,12 +58,16 @@
@Override
public TDevparaGroup getDevparaGroupByGroupid(int groupid) {
- return devparaGroupDao.findByGroupid(groupid);
+ Optional<TDevparaGroup> opt= devparaGroupDao.findById(groupid);
+ if(opt.isPresent()){
+ return opt.get();
+ }
+ return null;
}
@Override
public TDevparaGroup getDefaultDevparaGroup() {
- return devparaGroupDao.findByGlobalflag(true);
+ return devparaGroupDao.findGlobalParaGroup();
}
@Override
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 06b5a37..714b0e9 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
@@ -1,10 +1,13 @@
package com.supwisdom.dlpay.restaurant.service.impl;
+import com.supwisdom.dlpay.api.bean.ConsumePayCancelParam;
import com.supwisdom.dlpay.api.bean.JsonResult;
+import com.supwisdom.dlpay.api.bean.PayReverseResponse;
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.*;
+import com.supwisdom.dlpay.paysdk.proxy.TransactionProxy;
import com.supwisdom.dlpay.restaurant.bean.AmountCountBean;
import com.supwisdom.dlpay.restaurant.bean.ManageFeeAmtBean;
import com.supwisdom.dlpay.restaurant.bean.SalesAmtBean;
@@ -43,7 +46,8 @@
private ShopSettlementDao shopSettlementDao;
@Autowired
private SystemUtilService systemUtilService;
-
+ @Autowired
+ private TransactionProxy transactionProxy;
@PersistenceContext
private EntityManager entityManager;
@@ -168,9 +172,8 @@
if(null==targetDtl){
return JsonResult.error("未查询到目标流水");
}
- Integer otermsqlno=targetDtl.getTermsqlno();
+
TTransDtl revDtl=new TTransDtl();
- BeanUtils.copyProperties(targetDtl,revDtl);
revDtl.setBillno(systemUtilService.getRefno());
revDtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_INIT);
String date=DateUtil.getNow("yyyyMMdd");
@@ -179,15 +182,38 @@
revDtl.setAcctime(time);
revDtl.setTransdate(date);
revDtl.setTranstime(time);
- revDtl.setRevbillno(dtl.getBillno());
- revDtl.setAttr1(dtl.getAttr1());
- revDtl.setStatus(dtl.getStatus());
+ revDtl.setRevbillno(targetDtl.getBillno());
+ revDtl.setAttr1(targetDtl.getAttr1());
+ revDtl.setStatus(targetDtl.getStatus());
revDtl.setTermsqlno(dtl.getTermsqlno());
+ revDtl.setTermid(targetDtl.getTermid());
+ revDtl.setShopid(targetDtl.getShopid());
+ revDtl.setMealtype(targetDtl.getMealtype());
+ revDtl.setManagefee(targetDtl.getManagefee());
+ revDtl.setRuleid(targetDtl.getRuleid());
+ revDtl.setCustid(targetDtl.getCustid());
+ revDtl.setCustname(targetDtl.getCustname());
+ revDtl.setCusttype(targetDtl.getCusttype());
revDtl.setTranstype(RestaurantConstant.TRANSTYPE_TRANSDTL_REVERT);
revDtl.setAmount(targetDtl.getAmount()*-1.00);
transDtlDao.save(revDtl);
+ ConsumePayCancelParam cancelParam=new ConsumePayCancelParam();
+ cancelParam.setBillno(revDtl.getBillno());
+ cancelParam.setRefno(targetDtl.getRefno());
+ cancelParam.setRequestbillno(targetDtl.getBillno());
+ cancelParam.setShopaccno(targetDtl.getShopid());
+ cancelParam.setTransdate(targetDtl.getTransdate());
+ cancelParam.setTranstime(targetDtl.getTranstime());
+ PayReverseResponse reverseResp=transactionProxy.payCancel(cancelParam);
+ if(reverseResp.getRetcode()!=0){
+ revDtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_FAIL);
+
+
+ }
+ revDtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_SUCCESS);
+ revDtl.setRefno(reverseResp.getRefno());
+ transDtlDao.save(revDtl);
targetDtl.setRevflag(1);
- targetDtl.setTermsqlno(otermsqlno);
transDtlDao.save(targetDtl);
return JsonResult.ok("操作成功");
}
@@ -249,5 +275,10 @@
return transDtlDao.findAllByStatus(RestaurantConstant.STATUS_TRANSDTL_WAIT);
}
+ @Override
+ public Integer getDiscountLimitToday(String termdate, String custid, Integer ruleid) {
+ return transDtlDao.countByAccdateAndCustidAndRuleid(termdate,custid,ruleid);
+ }
+
}
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 24567ce..4eb8794 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
@@ -93,7 +93,7 @@
it.loginTimestamp = now
it.roles = api.roles
it.tenantId = tetantId
- it.token = HmacUtil.HMACSHA256( api.secret,token)
+ it.token = HmacUtil.HMACSHA256( token,api.secret)
}.also {
apiClientRepository.save(it)
}
diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql
index 5c28f58..1c184dd 100644
--- a/src/main/resources/data.sql
+++ b/src/main/resources/data.sql
@@ -1,6 +1,6 @@
-INSERT INTO "tb_apiclient" (appid,roles,secret,status,thirdurl,bcrypt_secret) VALUES ('200001', 'ROLE_THIRD_SHOP;ROLE_THIRD_DEPOSIT;ROLE_THIRD_ADMIN;ROLE_THIRD_CONSUME;ROLE_THIRD_COMMON', 'dc1d26c0d43e442588092c8d45c21bce', 'normal', NULL, '$2a$10$Iaftjij0mOzWY3Yo3e83geMT2ExqsP4b84enC454xFoxP1rKDWl/e');
---INSERT INTO "tb_apiclient" (appid,roles,secret,status,thirdurl,bcrypt_secret) VALUES ('100001', 'ROLE_THIRD_ADMIN', 'oUw2NmA09ficiVWD4TUQLDOkPyzQa3VzbjjsW0B2qTk=', 'normal', NULL, '$2a$10$dcHoUeXbjMJw7YV5UyW/PugQYBK3MlNudXuqfeciSn.sr1fYwEHTK');
+--INSERT INTO "tb_apiclient" (appid,roles,secret,status,thirdurl,bcrypt_secret) VALUES ('100001', 'ROLE_THIRD_ADMIN', 'oUw2NmA09ficiVWD4TUQLDOkPyzQa3VzbjjsW0B2qTk=', 'normal', NULL, '$2a$10$dcHoUeXbjMJw7YV5UyW/PugQYBK3MlNudXuqfeciSn.sr1fYwEHTK');
INSERT INTO "tb_apiclient" (appid,roles,secret,status,thirdurl,bcrypt_secret) VALUES ('3000004', 'ROLE_THIRD_SHOP;ROLE_THIRD_DEPOSIT;ROLE_THIRD_CONSUME', 'c9ae5b4fe5014b5b9eb19e1a0797a3a3', 'normal', NULL, '$2a$10$XvsC6sUyXhKhZvvfKK7.t.UVu8PuP5Mc5UdblLZzsVCtAsT6i2NBK');
+INSERT INTO "tb_apiclient" (appid,roles,secret,status,thirdurl,bcrypt_secret) VALUES ('200001', 'ROLE_THIRD_SHOP;ROLE_THIRD_DEPOSIT;ROLE_THIRD_ADMIN;ROLE_THIRD_CONSUME;ROLE_THIRD_COMMON', 'dc1d26c0d43e442588092c8d45c21bce', 'normal', NULL, '$2a$10$Iaftjij0mOzWY3Yo3e83geMT2ExqsP4b84enC454xFoxP1rKDWl/e');
INSERT INTO "tb_devpara" (paraname,groupid,maxval,minval,paradesc,paraval,valtype) VALUES ('communicate_time', 1, '255', '0', '终端请求超时时间(单位:秒)', '3', 'N');
@@ -82,8 +82,10 @@
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', '已入账', '流水状态');
+INSERT INTO "tb_dictionary"(dictval,dicttype,dictcaption,dicttypename) VALUES ('normal', 'transtatusList', '成功', '流水状态');
+INSERT INTO "tb_dictionary"(dictval,dicttype,dictcaption,dicttypename) VALUES ('fail', 'transtatusList', '失败', '流水状态');
+INSERT INTO "tb_dictionary"(dictval,dicttype,dictcaption,dicttypename) VALUES ('wit', 'transtatusList', '等待', '流水状态');
+
INSERT INTO "tb_function"(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (3, NULL, 0, NULL, 'layui-icon-set', '#', '系统中心', 2, -1);
INSERT INTO "tb_function"(id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (5, NULL, 1, NULL, 'layui-icon-set', '/role/index', '角色管理', 2, 3);
@@ -110,9 +112,12 @@
--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_function" (id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (2, NULL, 1, NULL, '', '/custmeallist/index', '就餐名单管理', 3, 22);
+--INSERT INTO "tb_function" (id,createtime,isleaf,lastsaved,menuicon,menuurl,name,ordernum,parentid) VALUES (7, NULL, 1, NULL, '', '/custmealcheck/index', '就餐名单审核', 4, 22);
+
INSERT INTO "tb_mealtype" (mealtype,endtime,lastsaved,mealname) VALUES ('dinner', '200000', '20190709102922', '晚餐');
-INSERT INTO "tb_mealtype" (mealtype,endtime,lastsaved,mealname) VALUES ('lunch', '130000', '20190709102922', '中午');
+INSERT INTO "tb_mealtype" (mealtype,endtime,lastsaved,mealname) VALUES ('lunch', '140000', '20190709102922', '中午');
INSERT INTO "tb_mealtype" (mealtype,endtime,lastsaved,mealname) VALUES ('breakfast', '100000', '20190709102803', '早餐');
INSERT INTO "tb_oper_role" (id,operid,roleid) VALUES ('2c9cab836a90185f016a901b005f001b', '402882816a8fe884016a8fe8c0530000', '2c9cab836a8af5d5016a8af6ece20000');
INSERT INTO "tb_oper_role" (id,operid,roleid) VALUES ('ff8080816aaf2ec3016aaf30c1b60007', 'LOR2IwRkbOjp+sVG9KR2BpHZbwGKepS4', 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
diff --git a/src/main/resources/templates/restaurant/discountrule/rule.html b/src/main/resources/templates/restaurant/discountrule/rule.html
index 1607c04..7d4706c 100644
--- a/src/main/resources/templates/restaurant/discountrule/rule.html
+++ b/src/main/resources/templates/restaurant/discountrule/rule.html
@@ -66,7 +66,10 @@
}
},
{
- field: 'amount', title: '金额(元)', align: 'center', sort: true, templet: function (d) {
+ field: 'amount', title: '金额/折率', align: 'center', sort: true, templet: function (d) {
+ if ('discount' == d.ruletype) {
+ return d.amount + '折';
+ }
return parseFloat(d.amount).toFixed(2);
}
},
diff --git a/src/main/resources/templates/restaurant/discountrule/rulecheck.html b/src/main/resources/templates/restaurant/discountrule/rulecheck.html
index df4bc99..8895539 100644
--- a/src/main/resources/templates/restaurant/discountrule/rulecheck.html
+++ b/src/main/resources/templates/restaurant/discountrule/rulecheck.html
@@ -69,7 +69,10 @@
}
},
{
- field: 'amount', title: '金额(元)', align: 'center', sort: true, templet: function (d) {
+ field: 'amount', title: '金额/折率', align: 'center', sort: true, templet: function (d) {
+ if ('discount' == d.ruletype) {
+ return d.amount + '折';
+ }
return parseFloat(d.amount).toFixed(2);
}
},
diff --git a/src/main/resources/templates/restaurant/discountrule/ruleform.html b/src/main/resources/templates/restaurant/discountrule/ruleform.html
index 7d50742..6abfe9c 100644
--- a/src/main/resources/templates/restaurant/discountrule/ruleform.html
+++ b/src/main/resources/templates/restaurant/discountrule/ruleform.html
@@ -2,9 +2,9 @@
<div class="layui-form-item">
<label class="layui-form-label">餐补类型</label>
<div class="layui-input-block">
- <input type="radio" name="ruletype" id="form-discountrule-ruletype-quota" lay-filter="discountrule-ruletype-filter" value="quota" title="定额" checked/>
+ <input type="radio" name="ruletype" id="form-discountrule-ruletype-discount" lay-filter="discountrule-ruletype-filter" value="discount" title="折扣" checked/>
+ <input type="radio" name="ruletype" id="form-discountrule-ruletype-quota" lay-filter="discountrule-ruletype-filter" value="quota" title="定额" />
<input type="radio" name="ruletype" id="form-discountrule-ruletype-reduction" lay-filter="discountrule-ruletype-filter" value="reduction" title="减免"/>
- <input type="radio" name="ruletype" id="form-discountrule-ruletype-discount" lay-filter="discountrule-ruletype-filter" value="discount" title="折扣"/>
</div>
</div>
@@ -31,7 +31,7 @@
</div>
<div class="layui-form-item">
- <label class="layui-form-label" id="form-discountrule-amount-text"><span style="color: red">* </span>固定金额(元)</label>
+ <label class="layui-form-label" id="form-discountrule-amount-text"><span style="color: red">* </span>折率(折)</label>
<div class="layui-input-block">
<input type="text" name="amount" id="form-discountrule-amount" maxlength="9" autocomplete="off" style="width: 90%;"
class="layui-input" lay-verify="required|Amount"/>
@@ -73,6 +73,8 @@
var laydate = layui.laydate;
var upload = layui.upload;
+ var discountType='discount';
+
laydate.render({
elem: '#form-discountrule-starttime',
type: 'time',
@@ -91,6 +93,9 @@
form.verify({
"Amount": function (e) {
if (null != e && e.length > 0 && !(/^\d+(\.)?(\.\d{1,2})?$/.test(e))) {
+ if(discountType=='discount'){
+ return "请输入1~9的数字";
+ }
return "请正确输入金额(单位:元,最多两位小数)";
}
},
@@ -124,6 +129,7 @@
});
form.on('radio(discountrule-ruletype-filter)', function (data) {
changeDiscountRuletype(data.value);
+ discountType=data.value;
});
var changeDiscountRuletype = function (val) {
diff --git a/src/main/resources/templates/restaurant/transdtl/index.html b/src/main/resources/templates/restaurant/transdtl/index.html
index 555d218..c60bc72 100644
--- a/src/main/resources/templates/restaurant/transdtl/index.html
+++ b/src/main/resources/templates/restaurant/transdtl/index.html
@@ -129,7 +129,7 @@
cols: [
[
{field: 'custname', title: '姓名',width:100, fixed: 'left'},
- {field: 'cardno', title: '市民卡号', fixed: 'left'},
+ {field: 'cardno', title: '市民卡号',width:100, fixed: 'left'},
{field: 'billno', title: '交易号', fixed: 'left',width:200, sort: true},
{field: 'amount', title: '交易金额', sort: true,
templet: function (item) {
@@ -149,6 +149,19 @@
}
},
{
+ field: 'acctime',
+ title: '交易时间',
+ sort: true,
+ width:100,
+ templet: function (item) {
+ var time = item.transtime;
+ if (time != null) {
+ return time.substr(0, 2) + ':' + time.substr(2, 2) + ':' + time.substr(4, 2);
+ }
+ return '';
+ }
+ },
+ {
field: 'transdate',
title: '记账日期',
sort: true,
@@ -161,10 +174,24 @@
return '';
}
},
- {field: 'termid', title: '终端号', sort: true},
+ {
+ field: 'transtime',
+ title: '记账时间',
+ sort: true,
+ width:100,
+ templet: function (item) {
+ var time = item.transtime;
+ if (time != null) {
+ return time.substr(0, 2) + ':' + time.substr(2, 2) + ':' + time.substr(4, 2);
+ }
+ return '';
+ }
+ },
+ {field: 'termid',width:100, title: '终端号', sort: true},
{
field: 'shopid',
title: '商户',
+ width:100,
align: 'center',
templet: function (item) {
return shoplist[item.shopid];
@@ -173,6 +200,7 @@
{
field: 'status',
title: '流水状态',
+ width:100,
align: 'center',
templet: function (item) {
return getTempDictValue('transtatusList',item.status);
@@ -181,6 +209,7 @@
{
field: 'transtype',
title: '流水类型',
+ width:100,
sort: true,
align: 'center',
templet: function (item) {
diff --git a/src/main/resources/templates/restaurant/transdtlrev/index.html b/src/main/resources/templates/restaurant/transdtlrev/index.html
index 6b2d2c0..564d973 100644
--- a/src/main/resources/templates/restaurant/transdtlrev/index.html
+++ b/src/main/resources/templates/restaurant/transdtlrev/index.html
@@ -79,7 +79,8 @@
cols: [
[
{field: 'custname', title: '姓名', fixed: 'left'},
- {field: 'refno', title: '交易号', fixed: 'left', sort: true},
+ {field: 'billno', title: '交易号', fixed: 'left', sort: true},
+ {field: 'refno', title: '平台交易号', fixed: 'left', sort: true},
{field: 'amount', title: '交易金额', sort: true,
templet: function (item) {
return numberFormat(item.amount,2);
diff --git a/src/test/kotlin/com/supwisdom/dlpay/controller/PosPayServiceTest.java b/src/test/kotlin/com/supwisdom/dlpay/controller/PosPayServiceTest.java
index 43bc906..b6e3c5f 100644
--- a/src/test/kotlin/com/supwisdom/dlpay/controller/PosPayServiceTest.java
+++ b/src/test/kotlin/com/supwisdom/dlpay/controller/PosPayServiceTest.java
@@ -1,13 +1,12 @@
package com.supwisdom.dlpay.controller;
-import com.supwisdom.dlpay.api.bean.ApiVersionResponse;
-import com.supwisdom.dlpay.api.bean.CitizenCardPayfinishParam;
-import com.supwisdom.dlpay.api.bean.CitizenCardPayinitParam;
-import com.supwisdom.dlpay.api.bean.CitizenPayResponse;
+import com.supwisdom.dlpay.api.bean.*;
import com.supwisdom.dlpay.paysdk.ApiLoginHelper;
import com.supwisdom.dlpay.paysdk.proxy.ApiLoginProxy;
import com.supwisdom.dlpay.paysdk.proxy.CitizenCardPayProxy;
+import com.supwisdom.dlpay.paysdk.proxy.ShopProxy;
+import com.supwisdom.dlpay.paysdk.proxy.UserProxy;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
@@ -42,6 +41,12 @@
@Autowired
private ApiLoginProxy apiLoginProxy;
+ @Autowired
+ private UserProxy userProxy;
+
+ @Autowired
+ private ShopProxy shopProxy;
+
private String appid="200001";
private String secret="dc1d26c0d43e442588092c8d45c21bce";
@@ -80,4 +85,20 @@
}
+
+ @org.junit.Test
+ public void OpenAccount() {
+ ApiLoginHelper helper = new ApiLoginHelper(apiLoginProxy);
+ helper.login(appid, secret);
+ OpenUserParam param=new OpenUserParam();
+ param.setUid("12344321");
+ param.setName("张三");
+ param.setIdtype("1");
+ param.setIdno("310101199999999999");
+ UserResponse payInit = userProxy.openAccount(param);
+ assertThat("pay initialized " + payInit.getRetmsg() + payInit.getException(),
+ payInit.getRetcode(), equalTo(0));
+
+
+ }
}