Commit 9b73ae56 by chongli

微信小程序

parent eb0d269b
......@@ -144,6 +144,15 @@ public class VoucherController {
return response;
}
@ResponseBody
@RequestMapping(value = "/sendVoucherForMiniAppRegister", method = RequestMethod.POST)
public Response<String> sendVoucherForMiniAppRegister(@RequestBody Request<VoucherQueryDto> request) {
Response<String> response = new Response<String>();
response.setBody(voucherService.sendVoucherForMiniAppRegister(request.getBody()));
response.setStatusEnum(ResponseStatusEnum.SUCCESS);
return response;
}
@ResponseBody
@RequestMapping(value = "/queryListForMiniApps", method = RequestMethod.POST)
......
......@@ -167,7 +167,7 @@ public class UserController {
response.setBody(userService.register(request.getBody()));
return response;
}
//小程序授权登录,返回token,如果为空表示未关联
@ResponseBody
@RequestMapping(value = "/loginMiniApp", method = RequestMethod.POST)
public Response<MiniAppLoginResultBean> loginMiniApp(@RequestBody Request<WeChatAppLoginReq> request) throws Exception {
......@@ -178,24 +178,24 @@ public class UserController {
return response;
}
//小程序没有手机号
@ResponseBody
@RequestMapping(value = "/getUserInfoForMiniApp", method = RequestMethod.POST)
public Response<Map<String,String>> getUserInfoForMiniApp(@RequestBody Request<String> request) throws Exception {
Response<Map<String,String>> response = new Response<Map<String,String>>();
@RequestMapping(value = "/miniAppLoginByDynamicPassword", method = RequestMethod.POST)
public Response<MiniAppLoginResultBean> miniAppLoginByDynamicPassword(@RequestBody Request<WeChatAppLoginReq> request) throws Exception {
Response<MiniAppLoginResultBean> response = new Response<MiniAppLoginResultBean>();
response.setStatus(ResponseStatusEnum.SUCCESS.getValue());
response.setMessage(ResponseStatusEnum.SUCCESS.getMsg());
response.setBody(userService.getUserInfoForMiniApp(request.getBody()));
response.setBody(userService.miniAppLoginByDynamicPassword(request.getBody()));
return response;
}
//小程序没有手机号
@ResponseBody
@RequestMapping(value = "/miniAppLoginByDynamicPassword", method = RequestMethod.POST)
public Response<MiniAppLoginResultBean> miniAppLoginByDynamicPassword(@RequestBody Request<MiniAppLoginBean> request) throws Exception {
Response<MiniAppLoginResultBean> response = new Response<MiniAppLoginResultBean>();
@RequestMapping(value = "/getUserInfoForMiniApp", method = RequestMethod.POST)
public Response<Map<String,String>> getUserInfoForMiniApp(@RequestBody Request<String> request) throws Exception {
Response<Map<String,String>> response = new Response<Map<String,String>>();
response.setStatus(ResponseStatusEnum.SUCCESS.getValue());
response.setMessage(ResponseStatusEnum.SUCCESS.getMsg());
response.setBody(userService.miniAppLoginByDynamicPassword(request.getBody()));
response.setBody(userService.getUserInfoForMiniApp(request.getBody()));
return response;
}
......
......@@ -1149,6 +1149,14 @@ public class UserExtDao extends GenericHibernateDao<UserExt, Integer> {
}
public int updateHasMPRegisterVoucher(String uid) {
String sql = "update UserExt set hasMPRegisterVoucher=1 where uid=:uid";
Query query = getSession().createQuery(sql);
query.setParameter("uid", uid);
return query.executeUpdate();
}
public PagedResponseBean<UserExtBean> getUserExtByName(UserExtQuery qu) {
Session session = this.getSession();
String queryByName = "";
......@@ -1195,12 +1203,12 @@ public class UserExtDao extends GenericHibernateDao<UserExt, Integer> {
}
public int updateWeiXinInfoMore(UserExt userext2) {
String sql = "update UserExt set unionId=:unionId,miniAppOpenId=:miniAppOpenId,miniAppSessionKey=:miniAppSessionKey,nickName=:nickName,headImgUrl=:headImgUrl where extID=:extID";
String sql = "update UserExt set inviterUid=:inviterUid,unionId=:unionId,miniAppOpenId=:miniAppOpenId,miniAppSessionKey=:miniAppSessionKey,headImgUrl=:headImgUrl where extID=:extID";
Query query = getSession().createQuery(sql);
query.setParameter("inviterUid", userext2.getInviterUid());
query.setParameter("unionId", userext2.getUnionId());
query.setParameter("miniAppOpenId", userext2.getMiniAppOpenId());
query.setParameter("miniAppSessionKey", userext2.getMiniAppSessionKey());
query.setParameter("nickName", userext2.getNickName());
query.setParameter("headImgUrl", userext2.getHeadImgUrl());
query.setParameter("extID", userext2.getExtID());
return query.executeUpdate();
......
......@@ -352,6 +352,9 @@ public class UserExt implements java.io.Serializable {
/** 爱好 */
private String hobby;
private String inviterUid;//邀请人uid
private Integer hasMPRegisterVoucher;//小程序注册是否已经送券
......@@ -375,6 +378,11 @@ public class UserExt implements java.io.Serializable {
this.uid = uid;
}
@Column(name = "hasMPRegisterVoucher")
public Integer getHasMPRegisterVoucher() {
return hasMPRegisterVoucher;
}
@Column(name = "PrePayCardAmount", nullable = false, precision = 10)
public BigDecimal getPrePayCardAmount() {
return this.prePayCardAmount;
......@@ -716,6 +724,11 @@ public class UserExt implements java.io.Serializable {
this.unionId = unionId;
}
@Column(name = "inviterUid", length = 50)
public String getInviterUid() {
return inviterUid;
}
@Column(name = "openId", length = 128)
public String getOpenId() {
return openId;
......@@ -1007,7 +1020,12 @@ public class UserExt implements java.io.Serializable {
this.hobby = hobby;
}
public void setInviterUid(String inviterUid) {
this.inviterUid = inviterUid;
}
public void setHasMPRegisterVoucher(Integer hasMPRegisterVoucher) {
this.hasMPRegisterVoucher = hasMPRegisterVoucher;
}
}
package com.ctrip.fun.golf.service.basic;
import java.math.BigDecimal;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
......@@ -12,10 +13,18 @@ import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import com.alibaba.fastjson.JSONObject;
import com.ctrip.fun.common.core.exceptions.service.ServiceException;
import com.ctrip.fun.common.core.util.BeanConverter;
import com.ctrip.fun.common.core.util.DateUtil;
......@@ -50,18 +59,23 @@ import com.ctrip.fun.golf.dao.basic.VoucherDao;
import com.ctrip.fun.golf.dao.basic.VoucherGetLogDao;
import com.ctrip.fun.golf.dao.basic.VoucherRuleDao;
import com.ctrip.fun.golf.dao.basic.VoucherShareLogDao;
import com.ctrip.fun.golf.dao.client.ClientConfigDao;
import com.ctrip.fun.golf.dao.membership.ConfigDao;
import com.ctrip.fun.golf.dao.order.EventActivityOrderItemDao;
import com.ctrip.fun.golf.dao.order.OrderDao;
import com.ctrip.fun.golf.dao.product.CourseResourceDao;
import com.ctrip.fun.golf.dao.tour.TourBasicDao;
import com.ctrip.fun.golf.dao.user.UserExtDao;
import com.ctrip.fun.golf.domain.basic.OperationMessage;
import com.ctrip.fun.golf.domain.basic.Sms;
import com.ctrip.fun.golf.domain.basic.Voucher;
import com.ctrip.fun.golf.domain.basic.VoucherGetLog;
import com.ctrip.fun.golf.domain.basic.VoucherRule;
import com.ctrip.fun.golf.domain.basic.VoucherShareLog;
import com.ctrip.fun.golf.domain.client.ClientConfig;
import com.ctrip.fun.golf.domain.product.CourseResource;
import com.ctrip.fun.golf.domain.tour.TourBasic;
import com.ctrip.fun.golf.domain.user.UserExt;
import com.ctrip.fun.golf.exceptions.VoucherException;
import com.ctrip.fun.golf.vo.PagedEntityBean;
import com.ctrip.fun.mall.vo.LabelValueBean;
......@@ -84,6 +98,11 @@ public class VoucherService {
private OrderDao orderDao = null;
private TourBasicDao tourBasicDao;
@Autowired
private ClientConfigDao clientConfigDao = null;
@Autowired
private UserExtDao userExtDao = null;
private int remindExpireVoucherDay = 7;
public VoucherDao getVoucherDao() {
......@@ -660,6 +679,51 @@ public class VoucherService {
}
public void executeOrderActive(String uid,String voucherSendType){
ClientConfig clientConfig = clientConfigDao.getByType(voucherSendType);
//社员订单赠送优惠券配置:431_sendBeginTime_sendEndTime(规则id_开始发送时间_结束发送方式)
String commune_voucher = clientConfig.getMessage();
JSONObject jsobj = JSONObject.parseObject(commune_voucher);
try {
Date sendBeginTime = DateUtil.parseDateTime(jsobj.getString("sendBeginTime"));
Date sendEndTime = DateUtil.parseDateTime(jsobj.getString("sendEndTime"));
Date now = new Date();
if(sendBeginTime.getTime()<now.getTime()&&now.getTime()<sendEndTime.getTime()){
String[] ids = jsobj.getString("id").split(",");
for(String id:ids){
VoucherRule voucherRule = this.getVoucherRuleDao().findById(Integer.parseInt(id));
this.getVoucherDao().sendVoucherToSpecificUsers(voucherRule, "'"+uid+"'", voucherRule.getQuantity());
}
}
} catch (ParseException e) {
e.printStackTrace();
}
}
public String sendVoucherForMiniAppRegister(VoucherQueryDto queryBean) {
ClientConfig clientConfig = clientConfigDao.getByType("sendVoucherConfig");
String miniAppRegisterControl = clientConfig.getMessage();
JSONObject jsobj = JSONObject.parseObject(miniAppRegisterControl);
UserExt userext = userExtDao.getByUid(queryBean.getUid());
Integer hasMPRegisterVoucher = userext.getHasMPRegisterVoucher();
if(hasMPRegisterVoucher==null||hasMPRegisterVoucher==0){
int isOpen = jsobj.getIntValue("isOpen");
if(isOpen==1){
userExtDao.updateHasMPRegisterVoucher(userext.getUid());
if("1".equals(queryBean.getIsCommune())){
this.executeOrderActive(queryBean.getUid(), "sendVoucherToCommune");
return jsobj.getString("communeMessage");
}else if("0".equals(queryBean.getIsCommune())){
this.executeOrderActive(queryBean.getUid(), "sendVoucherToNonCommune");
return jsobj.getString("nonCommuneMessage");
}
}
}
return "";
}
public PagedResponseBean<VoucherItemDTO> queryListForMiniApps(VoucherQueryDto queryBean) {
return voucherDao.queryListForMiniApps(queryBean);
}
......
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