前置对接pos机修改
diff --git a/src/main/java/com/supwisdom/dlpay/api/service/impl/PayApiServiceImpl.java b/src/main/java/com/supwisdom/dlpay/api/service/impl/PayApiServiceImpl.java
index c443ae8..f3c454a 100644
--- a/src/main/java/com/supwisdom/dlpay/api/service/impl/PayApiServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/api/service/impl/PayApiServiceImpl.java
@@ -45,6 +45,7 @@
@Override
public CitizenPayResponse citizencardPayFinish(CitizenCardPayfinishParam param) {
- return null;
+ CitizenPayResponse resp =citizenCardPayProxy.citizencardPayFinish(param);
+ return resp;
}
}
diff --git a/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java b/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java
index 0451c78..9bb853f 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,12 +9,13 @@
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.restaurant.bean.DiscountBean;
import com.supwisdom.dlpay.restaurant.bean.ManageFeeAmtBean;
import com.supwisdom.dlpay.restaurant.bean.SalesAmtBean;
import com.supwisdom.dlpay.restaurant.dao.DevparaBindDao;
+import com.supwisdom.dlpay.restaurant.dao.DiscountDetailDao;
+import com.supwisdom.dlpay.restaurant.dao.DiscountRuleDao;
import com.supwisdom.dlpay.restaurant.dao.MealTypeDao;
import com.supwisdom.dlpay.restaurant.domain.*;
import com.supwisdom.dlpay.restaurant.service.*;
@@ -55,8 +56,9 @@
@Autowired
private PayApiService payApiService;
@Autowired
- private CitizenCardPayProxy citizenCardPayProxy;
-
+ private DiscountRuleDao discountRuleDao;
+ @Autowired
+ private DeviceDiscountRuleService deviceDiscountRuleService;
@Override
@@ -209,6 +211,14 @@
TTransDtl dtl=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);
@@ -236,6 +246,14 @@
resp.setRetmsg("交易参考号" + req.getBillno() + "不存在");
return resp;
}
+
+ TDevice tDevice = deviceService.getDeviceByDevphyid(req.getDevphyid());
+ if (tDevice == null) {
+ resp.setRetcode(ErrorCode.ERRIF_POS_NOREG);
+ resp.setRetmsg("设备不存在");
+ return resp;
+ }
+
TCustomer cus = customerService.getCustomerByCustid(tTransdtl.getCustid());
if (null == cus) {
resp.setRetcode(ErrorCode.ERRIF_POSDTL_NOTEXIST);
@@ -244,43 +262,50 @@
}
Integer extamount = 0; //TODO:改 餐补规则的应用??
- if (cus.getCusttype() == 1) {
- extamount += 100;
- }
+ /* Integer posamount=req.getAmount();
+ DiscountBean discountBean=deviceDiscountRuleService.getCustomerDiscount(tDevice.getId(),req.getTermtime().substring(0,4));
+ if(null!=discountBean){
+ String
+ }*/
- Integer posamount=req.getAmount();
tTransdtl.setAmount(req.getAmount() / 100.0);
tTransdtl.setManagefee(extamount / 100.0); //managefeetype :mealer discount
tTransdtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_WAIT);
- transDtlService.saveTransdtl(tTransdtl);
+ TTransDtl dtl=transDtlService.saveTransdtl(tTransdtl);
CitizenCardPayinitParam param=new CitizenCardPayinitParam();
- param.setBillno(tTransdtl.getBillno());
- param.setShopaccno(tTransdtl.getShopid());
- param.setTransdate(tTransdtl.getTransdate());
- param.setTranstime(tTransdtl.getTranstime());
- param.setCardNo(tTransdtl.getCardno());
- param.setAmount(MoneyUtil.YuanToFen(tTransdtl.getAmount()));
+ param.setBillno(dtl.getBillno());
+ param.setShopaccno(dtl.getShopid());
+ param.setTransdate(dtl.getTransdate());
+ param.setTranstime(dtl.getTranstime());
+ param.setCardNo(dtl.getCardno());
+ Double amt=dtl.getAmount()*100;
+ param.setAmount(amt.intValue());
param.setDtltype("canteen");
- CitizenPayResponse response=citizenCardPayProxy.citizencardPayinit(param);
- if(response.getRetcode() == 0){
- CitizenCardPayfinishParam confirmParam=new CitizenCardPayfinishParam();
- confirmParam.setRefno(response.getRefno());
- CitizenPayResponse confirmResp = citizenCardPayProxy.citizencardPayFinish(confirmParam);
- if(confirmResp.getRetcode() == 0){
- tTransdtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_SUCCESS);
- transDtlService.saveTransdtl(tTransdtl);
- }else{
- tTransdtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_FAIL);
- tTransdtl.setAttr1(confirmResp.getRetmsg());
- transDtlService.saveTransdtl(tTransdtl);
- }
- }else{
+ CitizenPayResponse response=payApiService.citizencardPayinit(param);
+ if(response.getRetcode()!=0){
tTransdtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_FAIL);
- tTransdtl.setAttr1(response.getRetmsg());
transDtlService.saveTransdtl(tTransdtl);
+ 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());
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/bean/DiscountBean.java b/src/main/java/com/supwisdom/dlpay/restaurant/bean/DiscountBean.java
new file mode 100644
index 0000000..369acb4
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/bean/DiscountBean.java
@@ -0,0 +1,53 @@
+package com.supwisdom.dlpay.restaurant.bean;
+
+import com.supwisdom.dlpay.system.bean.PageBean;
+
+public class DiscountBean{
+ private String ruletype;
+ private Integer limitcnt;
+ private String amount;
+ private Integer ruleid;
+
+ public DiscountBean(){
+
+ }
+
+ public DiscountBean(String ruletype, Integer limitcnt, String amount, Integer ruleid) {
+ this.ruletype = ruletype;
+ this.limitcnt = limitcnt;
+ this.amount = amount;
+ this.ruleid = ruleid;
+ }
+
+ public Integer getRuleid() {
+ return ruleid;
+ }
+
+ public void setRuleid(Integer ruleid) {
+ this.ruleid = ruleid;
+ }
+
+ public String getRuletype() {
+ return ruletype;
+ }
+
+ public void setRuletype(String ruletype) {
+ this.ruletype = ruletype;
+ }
+
+ public Integer getLimitcnt() {
+ return limitcnt;
+ }
+
+ public void setLimitcnt(Integer limitcnt) {
+ this.limitcnt = limitcnt;
+ }
+
+ public String getAmount() {
+ return amount;
+ }
+
+ public void setAmount(String amount) {
+ this.amount = amount;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceDiscountRuleController.java b/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceDiscountRuleController.java
index ef1b587..ac610bf 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceDiscountRuleController.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceDiscountRuleController.java
@@ -138,7 +138,7 @@
@AuthenticationPrincipal UserDetails operUser) {
try {
if (StringUtil.isEmpty(rulename)
- || (!RestaurantConstant.RULETYPE_QUOTA.equals(ruletype) && !RestaurantConstant.RULETYPE_REDUCTION.equals(ruletype))
+ || (!RestaurantConstant.RULETYPE_QUOTA.equals(ruletype) && !RestaurantConstant.RULETYPE_REDUCTION.equals(ruletype)&& !RestaurantConstant.RULETYPE_DISCOUNT.equals(ruletype))
|| !DateUtil.checkDatetimeValid(starttime, "HH:mm")
|| !DateUtil.checkDatetimeValid(endtime, "HH:mm")
|| !NumberUtil.isAmount(amount) || null == limitcnt) {
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 4f0dbdd..b44b02e 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TTransDtl.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TTransDtl.java
@@ -30,6 +30,7 @@
private String transmode;
private Integer custtype;
private Double managefee;
+ private Integer ruleid;
private String mealtype;
private Integer termsqlno;
private String refno;
@@ -260,4 +261,13 @@
public void setCoreStatus(String coreStatus) {
this.coreStatus = coreStatus;
}
+
+ @Column(name = "ruleid", length = 10)
+ public Integer getRuleid() {
+ return ruleid;
+ }
+
+ public void setRuleid(Integer ruleid) {
+ this.ruleid = ruleid;
+ }
}
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 e40f5d6..47d613e 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/DeviceDiscountRuleService.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/DeviceDiscountRuleService.java
@@ -3,10 +3,7 @@
import com.supwisdom.dlpay.exception.WebCheckException;
import com.supwisdom.dlpay.framework.domain.TOperator;
import com.supwisdom.dlpay.framework.util.PageResult;
-import com.supwisdom.dlpay.restaurant.bean.DevparaBinddevShowBean;
-import com.supwisdom.dlpay.restaurant.bean.DiscountRuleBindShowBean;
-import com.supwisdom.dlpay.restaurant.bean.DiscountRuleSelectBean;
-import com.supwisdom.dlpay.restaurant.bean.DiscountRuleShowBean;
+import com.supwisdom.dlpay.restaurant.bean.*;
import com.supwisdom.dlpay.restaurant.domain.TDiscountDetail;
import com.supwisdom.dlpay.restaurant.domain.TDiscountDevbind;
import org.springframework.transaction.annotation.Transactional;
@@ -49,6 +46,9 @@
@Transactional(rollbackFor = Exception.class, readOnly = true)
TDiscountDevbind getDiscountDevbindById(String id);
+ @Transactional(rollbackFor = Exception.class, readOnly = true)
+ DiscountBean getCustomerDiscount(Integer deviceid, String termtime);
+
@Transactional(rollbackFor = Exception.class)
boolean deleteDiscountDevbind(TDiscountDevbind bind);
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 7530e47..e2f32ed 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
@@ -6,10 +6,7 @@
import com.supwisdom.dlpay.framework.util.ImportExcelUtil;
import com.supwisdom.dlpay.framework.util.PageResult;
import com.supwisdom.dlpay.framework.util.StringUtil;
-import com.supwisdom.dlpay.restaurant.bean.DevparaBinddevShowBean;
-import com.supwisdom.dlpay.restaurant.bean.DiscountRuleBindShowBean;
-import com.supwisdom.dlpay.restaurant.bean.DiscountRuleSelectBean;
-import com.supwisdom.dlpay.restaurant.bean.DiscountRuleShowBean;
+import com.supwisdom.dlpay.restaurant.bean.*;
import com.supwisdom.dlpay.restaurant.dao.*;
import com.supwisdom.dlpay.restaurant.domain.*;
import com.supwisdom.dlpay.restaurant.service.DeviceDiscountRuleService;
@@ -405,6 +402,24 @@
}
@Override
+ public DiscountBean getCustomerDiscount(Integer deviceid, String termtime) {
+ 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 ");
+ Query query = entityManager.createNativeQuery(sql.toString());
+ query.setParameter("deviceid", deviceid);
+ query.setParameter("termtime", termtime);
+ query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.aliasToBean(DiscountBean.class));
+ List<DiscountBean> list = query.getResultList();
+ if(list.size()>0){
+ return list.get(0);
+ }
+ return null;
+ }
+
+ @Override
public boolean deleteDiscountDevbind(TDiscountDevbind bind) {
if (null != bind) {
discountDevbindDao.delete(bind);
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 b07eb45..c93865e 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/util/RestaurantConstant.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/util/RestaurantConstant.java
@@ -31,6 +31,7 @@
public static final String RULETYPE_QUOTA = "quota"; //定额
public static final String RULETYPE_REDUCTION = "reduction"; //减免
+ public static final String RULETYPE_DISCOUNT = "discount"; //折扣
public static final int POS_TIME_ERROR_DIFFMINS = 10; //设备时钟误差
diff --git a/src/main/resources/templates/restaurant/discountrule/rule.html b/src/main/resources/templates/restaurant/discountrule/rule.html
index dbfb625..1607c04 100644
--- a/src/main/resources/templates/restaurant/discountrule/rule.html
+++ b/src/main/resources/templates/restaurant/discountrule/rule.html
@@ -13,6 +13,7 @@
<option value=""> 选择餐补类型 </option>
<option value="quota"> 定额 </option>
<option value="reduction"> 减免 </option>
+ <option value="discount"> 折扣 </option>
</select> 
<input id="search-discountrule-rulename" class="layui-input search-input" maxlength="20" type="text" placeholder="输入名称查询"/> 
<button id="btn-search-discountrule" class="layui-btn icon-btn" data-type="search"><i class="layui-icon"></i>搜索
@@ -57,6 +58,8 @@
return '定额';
} else if ('reduction' == d.ruletype) {
return '减免';
+ } else if('discount' == d.ruletype){
+ return '折扣';
} else {
return d.ruletype;
}
diff --git a/src/main/resources/templates/restaurant/discountrule/ruleform.html b/src/main/resources/templates/restaurant/discountrule/ruleform.html
index f9e0fc5..7d50742 100644
--- a/src/main/resources/templates/restaurant/discountrule/ruleform.html
+++ b/src/main/resources/templates/restaurant/discountrule/ruleform.html
@@ -4,6 +4,8 @@
<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-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>
@@ -127,8 +129,10 @@
var changeDiscountRuletype = function (val) {
if ('reduction' == val) {
$("#form-discountrule-amount-text").text("减免金额(元)");
- } else {
+ } else if('quota'==val) {
$("#form-discountrule-amount-text").text("固定金额(元)");
+ }else{
+ $("#form-discountrule-amount-text").text("折率(折)");
}
}