Commit c4bc396d by zhangchen

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

parent 5674e041
......@@ -67,7 +67,11 @@ public class CommuneOrderController extends AbstractOrderController<CommuneOrder
return response;
}
/**
* 业务层小程序付款
* @param request
* @return
*/
@SuppressWarnings("unchecked")
@ResponseBody
@RequestMapping(value = "/voucherPlaceOrderForMiniApp", method = RequestMethod.POST)
......
......@@ -337,6 +337,26 @@ public class OrderDao extends GenericHibernateDao<Order, Integer> {
query.setParameter("activityId", activityId);
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")
public PagedEntityBean<Order> queryComOrders(OrderQuery queryBean) {
......
......@@ -47,6 +47,13 @@ public class Voucher implements java.io.Serializable {
private String operator;
//删除时间
private Date deleteTime;
//客户购买体验券真实姓名
private String realName;
//客户身份证后四位
private String idCard;
//客户购买体验券电话
private String mobilePhone;
@Column(name = "deleteStatus", nullable = false, length = 50)
public int getDeleteStatus() {
......@@ -353,6 +360,30 @@ public class Voucher implements java.io.Serializable {
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;
}
......
......@@ -92,8 +92,20 @@ public class CommuneOrderItem implements java.io.Serializable {
@Column(name = "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;
}
......@@ -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 {
if(Integer.parseInt(conf[1])==0||Integer.parseInt(conf[1])==usedWay){
VoucherRule roucherRule = voucherRuleDao.findById(Integer.parseInt(conf[0]));
for(int i=0;i<roucherRule.getQuantity();i++){
Voucher againVoucher = this.getVoucherFromRule(roucherRule);
Voucher againVoucher = this.getVoucherFromRule(roucherRule,"","","");
againVoucher.setNo("");
againVoucher.setUid(uid);
againVoucher.setSourceRemark(remark);
......@@ -1101,7 +1101,7 @@ public class VoucherService {
ClientConfig clientConfig = clientConfigDao.getByType(voucherSendType);
//社员订单赠送优惠券配置:431_sendBeginTime_sendEndTime(规则id_开始发送时间_结束发送方式)
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 {
}
}
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 {
* @param myselfOrder 是否用户自己的订单
* @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);
try {
Date sendBeginTime = DateUtil.parseDateTime(jsobj.getString("sendBeginTime"));
......@@ -1151,11 +1151,12 @@ public class VoucherService {
for(String id:ids){
VoucherRule roucherRule = voucherRuleDao.findById(Integer.parseInt(id));
for(int i=0;i<roucherRule.getQuantity();i++){
Voucher voucher = this.getVoucherFromRule(roucherRule);
Voucher voucher = this.getVoucherFromRule(roucherRule,realName,idCard,mobilePhone);
voucher.setNo("");
voucher.setUid(uid);
voucher.setSourceRemark(orderId);
voucher.setSource(myselfOrder?VoucherSourceEnum.RULE_USERORDER_PRESENT.getValue():VoucherSourceEnum.RULE_FRIENDORDER_PRESENT.getValue());
voucherDao.save(voucher);
}
......@@ -1171,7 +1172,7 @@ public class VoucherService {
* @param voucherRule
* @return Voucher
*/
private Voucher getVoucherFromRule(VoucherRule voucherRule){
private Voucher getVoucherFromRule(VoucherRule voucherRule,String realName,String idCard,String mobilePhone){
if(voucherRule==null){
return null;
}
......@@ -1190,6 +1191,9 @@ public class VoucherService {
voucher.setCanUseAmount(voucherRule.getCanUseAmount());
voucher.setFullCutAmount(voucherRule.getFullCutAmount());
voucher.setCreatedTime(new Date());
voucher.setRealName(realName);
voucher.setIdCard(idCard);
voucher.setMobilePhone(mobilePhone);
return voucher;
}
......
......@@ -158,9 +158,15 @@ public class CommuneOrderService extends AbstractOrderService<CommuneOrderBean,
throw new OrderException(-41, "您提交的预付款金额有问题,请检查!");
}
int count = this.getOrderDao().queryVoucherPayedOrder(communeOrderBean.getUid(),communeOrderBean.getActivityId());
if(count>=buyoucherActivity.getBuyLimitTimes()){
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
......@@ -260,6 +266,10 @@ public class CommuneOrderService extends AbstractOrderService<CommuneOrderBean,
orderItem.setCommuneYears(communeOrderBean.getCommuneYears());
orderItem.setRecommendUid(communeOrderBean.getRecommendUid());
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));
communeOrderItemDao.save(orderItem);
......
......@@ -85,7 +85,7 @@ public class CommuneNotifyService extends AbstractNotifyService {
if(communeOrderItem.getActivityId() != null ){
//执行发券
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 {
}
//执行发券
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())){
......
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