Commit c4bc396d by zhangchen

小程序下单体验券ord_communeitem、bsc_voucher 增加姓名、身份证后四位、电话

parent 5674e041
...@@ -67,7 +67,11 @@ public class CommuneOrderController extends AbstractOrderController<CommuneOrder ...@@ -67,7 +67,11 @@ public class CommuneOrderController extends AbstractOrderController<CommuneOrder
return response; return response;
} }
/**
* 业务层小程序付款
* @param request
* @return
*/
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@ResponseBody @ResponseBody
@RequestMapping(value = "/voucherPlaceOrderForMiniApp", method = RequestMethod.POST) @RequestMapping(value = "/voucherPlaceOrderForMiniApp", method = RequestMethod.POST)
......
...@@ -337,6 +337,26 @@ public class OrderDao extends GenericHibernateDao<Order, Integer> { ...@@ -337,6 +337,26 @@ public class OrderDao extends GenericHibernateDao<Order, Integer> {
query.setParameter("activityId", activityId); query.setParameter("activityId", activityId);
return ((BigInteger) query.uniqueResult()).intValue(); return ((BigInteger) query.uniqueResult()).intValue();
} }
/**
* 根据4个标识验证是否同一个人购买体验券
* @param uid
* @param realName
* @param idCard
* @param activityId
* @return
*/
public int queryExperienceVoucherPayedOrder(String uid,String realName,String idCard,String mobilePhone,int activityId){
String sql = "SELECT count(*) FROM ord_communeitem c WHERE c.OrderID IN (SELECT oo.OrderID FROM ord_order oo join bsc_voucher bv on oo.uid = bv.uid WHERE oo.uid ='"+uid+"' AND oo.ProcessStatus = 20 AND oo.OrderCategory = 16 and (bv.realName ='"+realName+"' or bv.idCard ='"+idCard+"') and bv.mobilePhone ='"+mobilePhone+"') AND c.activityId ='"+activityId+"'";
Session session = this.getSession();
Query query = session.createSQLQuery(sql);
// query.setParameter("uid", uid);
// query.setParameter("activityId", activityId);
// query.setParameter("realName", realName);
// query.setParameter("idCard", idCard);
// query.setParameter("mobilePhone", mobilePhone);
return ((BigInteger) query.uniqueResult()).intValue();
}
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public PagedEntityBean<Order> queryComOrders(OrderQuery queryBean) { public PagedEntityBean<Order> queryComOrders(OrderQuery queryBean) {
......
...@@ -47,6 +47,13 @@ public class Voucher implements java.io.Serializable { ...@@ -47,6 +47,13 @@ public class Voucher implements java.io.Serializable {
private String operator; private String operator;
//删除时间 //删除时间
private Date deleteTime; private Date deleteTime;
//客户购买体验券真实姓名
private String realName;
//客户身份证后四位
private String idCard;
//客户购买体验券电话
private String mobilePhone;
@Column(name = "deleteStatus", nullable = false, length = 50) @Column(name = "deleteStatus", nullable = false, length = 50)
public int getDeleteStatus() { public int getDeleteStatus() {
...@@ -353,6 +360,30 @@ public class Voucher implements java.io.Serializable { ...@@ -353,6 +360,30 @@ public class Voucher implements java.io.Serializable {
this.fullCutAmount = fullCutAmount; this.fullCutAmount = fullCutAmount;
} }
public String getRealName() {
return realName;
}
public void setRealName(String realName) {
this.realName = realName;
}
public String getIdCard() {
return idCard;
}
public void setIdCard(String idCard) {
this.idCard = idCard;
}
public String getMobilePhone() {
return mobilePhone;
}
public void setMobilePhone(String mobilePhone) {
this.mobilePhone = mobilePhone;
}
......
...@@ -93,6 +93,18 @@ public class CommuneOrderItem implements java.io.Serializable { ...@@ -93,6 +93,18 @@ public class CommuneOrderItem implements java.io.Serializable {
@Column(name = "userWorkerId") @Column(name = "userWorkerId")
private Integer userWorkerId; private Integer userWorkerId;
@Column(name = "realName")
private String realName;
@Column(name = "idCard")
private String idCard;
@Column(name = "mobilePhone")
private String mobilePhone;
public Integer getId() { public Integer getId() {
return id; return id;
} }
...@@ -198,4 +210,27 @@ public class CommuneOrderItem implements java.io.Serializable { ...@@ -198,4 +210,27 @@ public class CommuneOrderItem implements java.io.Serializable {
} }
public String getRealName() {
return realName;
}
public void setRealName(String realName) {
this.realName = realName;
}
public String getIdCard() {
return idCard;
}
public void setIdCard(String idCard) {
this.idCard = idCard;
}
public String getMobilePhone() {
return mobilePhone;
}
public void setMobilePhone(String mobilePhone) {
this.mobilePhone = mobilePhone;
}
} }
...@@ -943,7 +943,7 @@ public class VoucherService { ...@@ -943,7 +943,7 @@ public class VoucherService {
if(Integer.parseInt(conf[1])==0||Integer.parseInt(conf[1])==usedWay){ if(Integer.parseInt(conf[1])==0||Integer.parseInt(conf[1])==usedWay){
VoucherRule roucherRule = voucherRuleDao.findById(Integer.parseInt(conf[0])); VoucherRule roucherRule = voucherRuleDao.findById(Integer.parseInt(conf[0]));
for(int i=0;i<roucherRule.getQuantity();i++){ for(int i=0;i<roucherRule.getQuantity();i++){
Voucher againVoucher = this.getVoucherFromRule(roucherRule); Voucher againVoucher = this.getVoucherFromRule(roucherRule,"","","");
againVoucher.setNo(""); againVoucher.setNo("");
againVoucher.setUid(uid); againVoucher.setUid(uid);
againVoucher.setSourceRemark(remark); againVoucher.setSourceRemark(remark);
...@@ -1101,7 +1101,7 @@ public class VoucherService { ...@@ -1101,7 +1101,7 @@ public class VoucherService {
ClientConfig clientConfig = clientConfigDao.getByType(voucherSendType); ClientConfig clientConfig = clientConfigDao.getByType(voucherSendType);
//社员订单赠送优惠券配置:431_sendBeginTime_sendEndTime(规则id_开始发送时间_结束发送方式) //社员订单赠送优惠券配置:431_sendBeginTime_sendEndTime(规则id_开始发送时间_结束发送方式)
String commune_voucher = clientConfig.getMessage(); String commune_voucher = clientConfig.getMessage();
this.sendVoucherForPlaceOrderByConfig(uid, orderId, myselfOrder, commune_voucher); this.sendVoucherForPlaceOrderByConfig(uid, orderId, myselfOrder, commune_voucher,"","","");
} }
...@@ -1129,7 +1129,7 @@ public class VoucherService { ...@@ -1129,7 +1129,7 @@ public class VoucherService {
} }
} }
if(rule_String!=null){ if(rule_String!=null){
this.sendVoucherForPlaceOrderByConfig(uid,orderId,true,rule_String); this.sendVoucherForPlaceOrderByConfig(uid,orderId,true,rule_String,"","","");
} }
} }
...@@ -1140,7 +1140,7 @@ public class VoucherService { ...@@ -1140,7 +1140,7 @@ public class VoucherService {
* @param myselfOrder 是否用户自己的订单 * @param myselfOrder 是否用户自己的订单
* @param voucherSendType 发券配置的key值 * @param voucherSendType 发券配置的key值
*/ */
public void sendVoucherForPlaceOrderByConfig(String uid,String orderId,boolean myselfOrder,String voucherConfig){ public void sendVoucherForPlaceOrderByConfig(String uid,String orderId,boolean myselfOrder,String voucherConfig,String realName,String idCard,String mobilePhone){
JSONObject jsobj = JSONObject.parseObject(voucherConfig); JSONObject jsobj = JSONObject.parseObject(voucherConfig);
try { try {
Date sendBeginTime = DateUtil.parseDateTime(jsobj.getString("sendBeginTime")); Date sendBeginTime = DateUtil.parseDateTime(jsobj.getString("sendBeginTime"));
...@@ -1151,11 +1151,12 @@ public class VoucherService { ...@@ -1151,11 +1151,12 @@ public class VoucherService {
for(String id:ids){ for(String id:ids){
VoucherRule roucherRule = voucherRuleDao.findById(Integer.parseInt(id)); VoucherRule roucherRule = voucherRuleDao.findById(Integer.parseInt(id));
for(int i=0;i<roucherRule.getQuantity();i++){ for(int i=0;i<roucherRule.getQuantity();i++){
Voucher voucher = this.getVoucherFromRule(roucherRule); Voucher voucher = this.getVoucherFromRule(roucherRule,realName,idCard,mobilePhone);
voucher.setNo(""); voucher.setNo("");
voucher.setUid(uid); voucher.setUid(uid);
voucher.setSourceRemark(orderId); voucher.setSourceRemark(orderId);
voucher.setSource(myselfOrder?VoucherSourceEnum.RULE_USERORDER_PRESENT.getValue():VoucherSourceEnum.RULE_FRIENDORDER_PRESENT.getValue()); voucher.setSource(myselfOrder?VoucherSourceEnum.RULE_USERORDER_PRESENT.getValue():VoucherSourceEnum.RULE_FRIENDORDER_PRESENT.getValue());
voucherDao.save(voucher); voucherDao.save(voucher);
} }
...@@ -1171,7 +1172,7 @@ public class VoucherService { ...@@ -1171,7 +1172,7 @@ public class VoucherService {
* @param voucherRule * @param voucherRule
* @return Voucher * @return Voucher
*/ */
private Voucher getVoucherFromRule(VoucherRule voucherRule){ private Voucher getVoucherFromRule(VoucherRule voucherRule,String realName,String idCard,String mobilePhone){
if(voucherRule==null){ if(voucherRule==null){
return null; return null;
} }
...@@ -1190,6 +1191,9 @@ public class VoucherService { ...@@ -1190,6 +1191,9 @@ public class VoucherService {
voucher.setCanUseAmount(voucherRule.getCanUseAmount()); voucher.setCanUseAmount(voucherRule.getCanUseAmount());
voucher.setFullCutAmount(voucherRule.getFullCutAmount()); voucher.setFullCutAmount(voucherRule.getFullCutAmount());
voucher.setCreatedTime(new Date()); voucher.setCreatedTime(new Date());
voucher.setRealName(realName);
voucher.setIdCard(idCard);
voucher.setMobilePhone(mobilePhone);
return voucher; return voucher;
} }
......
...@@ -158,9 +158,15 @@ public class CommuneOrderService extends AbstractOrderService<CommuneOrderBean, ...@@ -158,9 +158,15 @@ public class CommuneOrderService extends AbstractOrderService<CommuneOrderBean,
throw new OrderException(-41, "您提交的预付款金额有问题,请检查!"); throw new OrderException(-41, "您提交的预付款金额有问题,请检查!");
} }
int count = this.getOrderDao().queryVoucherPayedOrder(communeOrderBean.getUid(),communeOrderBean.getActivityId()); int count = this.getOrderDao().queryVoucherPayedOrder(communeOrderBean.getUid(),communeOrderBean.getActivityId());
if(count>=buyoucherActivity.getBuyLimitTimes()){ if(count>=buyoucherActivity.getBuyLimitTimes()){
throw new OrderException(-666, "已超过活动次数!"); throw new OrderException(-666, "已超过活动次数!");
} }
//协和体验券每个客户仅限一次购买
int count1 = this.getOrderDao().queryExperienceVoucherPayedOrder(communeOrderBean.getUid(),communeOrderBean.getRealName(),communeOrderBean.getIdCard(),communeOrderBean.getMobilePhone(),communeOrderBean.getActivityId());
if(count1>=buyoucherActivity.getBuyLimitTimes()){
throw new OrderException(-666, "同一个客户只允许购买一张体验券!");
}
} }
@Override @Override
...@@ -260,6 +266,10 @@ public class CommuneOrderService extends AbstractOrderService<CommuneOrderBean, ...@@ -260,6 +266,10 @@ public class CommuneOrderService extends AbstractOrderService<CommuneOrderBean,
orderItem.setCommuneYears(communeOrderBean.getCommuneYears()); orderItem.setCommuneYears(communeOrderBean.getCommuneYears());
orderItem.setRecommendUid(communeOrderBean.getRecommendUid()); orderItem.setRecommendUid(communeOrderBean.getRecommendUid());
orderItem.setUserWorkerId(communeOrderBean.getUserWorkerId()); orderItem.setUserWorkerId(communeOrderBean.getUserWorkerId());
//为了记录体验券登记人信息
orderItem.setRealName(com.ctrip.fun.golf.utils.StringUtils.filterOffUtf8Mb4(communeOrderBean.getRealName()));
orderItem.setIdCard(communeOrderBean.getIdCard());
orderItem.setMobilePhone(communeOrderBean.getMobilePhone());
this.getOrderDao().updateOrdersCanInvoiceDate(orderId, DateUtil.addDays(new Date(), 1)); this.getOrderDao().updateOrdersCanInvoiceDate(orderId, DateUtil.addDays(new Date(), 1));
communeOrderItemDao.save(orderItem); communeOrderItemDao.save(orderItem);
......
...@@ -85,7 +85,7 @@ public class CommuneNotifyService extends AbstractNotifyService { ...@@ -85,7 +85,7 @@ public class CommuneNotifyService extends AbstractNotifyService {
if(communeOrderItem.getActivityId() != null ){ if(communeOrderItem.getActivityId() != null ){
//执行发券 //执行发券
BuyVoucherActivity buyVoucherActivity = buyVoucherActivityDao.findById(communeOrderItem.getActivityId()); BuyVoucherActivity buyVoucherActivity = buyVoucherActivityDao.findById(communeOrderItem.getActivityId());
voucherService.sendVoucherForPlaceOrderByConfig(uid, order.getOrderId()+"", true, buyVoucherActivity.getVoucherConfig()); voucherService.sendVoucherForPlaceOrderByConfig(uid, order.getOrderId()+"", true, buyVoucherActivity.getVoucherConfig(),"","","");
} }
} }
...@@ -115,7 +115,12 @@ public class CommuneNotifyService extends AbstractNotifyService { ...@@ -115,7 +115,12 @@ public class CommuneNotifyService extends AbstractNotifyService {
} }
//执行发券 //执行发券
String uid = order.getUid();//下单人id String uid = order.getUid();//下单人id
voucherService.sendVoucherForPlaceOrderByConfig(uid, order.getOrderId()+"", true, buyVoucherActivity.getVoucherConfig()); if(!"".equals(communeOrderItem.getRealName()) && !"".equals(communeOrderItem.getIdCard()) && communeOrderItem.getIdCard()!=null &&communeOrderItem.getRealName()!=null){
voucherService.sendVoucherForPlaceOrderByConfig(uid, order.getOrderId()+"", true, buyVoucherActivity.getVoucherConfig(),communeOrderItem.getRealName(),communeOrderItem.getIdCard(),communeOrderItem.getMobilePhone());
}else{
voucherService.sendVoucherForPlaceOrderByConfig(uid, order.getOrderId()+"", true, buyVoucherActivity.getVoucherConfig(),"","","");
}
//给推荐人发现金红包 //给推荐人发现金红包
if(buyVoucherActivity.getIsSendRedPacket() != null && buyVoucherActivity.getIsSendRedPacket() == 1 && !StringUtils.isEmpty(communeOrderItem.getRecommendUid())){ if(buyVoucherActivity.getIsSendRedPacket() != null && buyVoucherActivity.getIsSendRedPacket() == 1 && !StringUtils.isEmpty(communeOrderItem.getRecommendUid())){
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment