123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261 |
- package com.iamberry.wechat.handles.thanksgiving;
- import com.iamberry.wechat.core.entity.ResultMsg;
- import com.iamberry.wechat.core.entity.WechatUtils;
- import com.iamberry.wechat.core.entity.coupon.CouponItemDto;
- import com.iamberry.wechat.core.entity.coupon.CouponType;
- import com.iamberry.wechat.core.entity.member.Member;
- import com.iamberry.wechat.core.entity.thanksgiving.ThanksGiving;
- import com.iamberry.wechat.face.coupon.CouponItemService;
- import com.iamberry.wechat.face.coupon.CouponTypeService;
- import com.iamberry.wechat.face.home.HomeService;
- import com.iamberry.wechat.face.member.MemberService;
- import com.iamberry.wechat.face.order.CodeService;
- import com.iamberry.wechat.face.thanksgiving.ThanksGivingService;
- import com.iamberry.wechat.service.ImberryConfig;
- import com.iamberry.wechat.tools.NameUtils;
- import com.iamberry.wechat.tools.payUtil.RandomUtil;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.ResponseBody;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.http.HttpSession;
- import java.io.IOException;
- import java.text.MessageFormat;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.List;
- /**
- * 感恩活动
- */
- @Controller
- @RequestMapping("/wechat/tanksgiv")
- public class ThanksGivingHandler {
- private Logger logger = LoggerFactory.getLogger(ThanksGivingHandler.class);
- @Autowired
- private CodeService codeService;
- @Autowired
- private ThanksGivingService thanksGivingService;
- @Autowired
- private MemberService memberService;
- @Autowired
- private HomeService homeService;
- /**
- * 免费送滤芯
- * @param request
- * @param response
- * @throws ServletException
- * @throws IOException
- */
- @RequestMapping(value = "/free_collection", method = RequestMethod.GET)
- public void freeCollection(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- request.getRequestDispatcher(NameUtils.getConfig("WECHAT_GO_FREE_COLLECTION")).forward(request, response);return;
- }
- /**
- * 免费领取滤芯
- * @param request
- * @param response
- * @throws ServletException
- * @throws IOException
- */
- @RequestMapping(value = "/receiving_filter", method = RequestMethod.GET)
- public void receivingFilter(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- request.getRequestDispatcher(NameUtils.getConfig("WECHAT_GO_RECEIVING_FILTER_CARTRIDGE")).forward(request, response);return;
- }
- /**
- * 发送验证码
- * 2016年4月21日
- * @author 穆再兴
- * @return
- */
- @ResponseBody
- @RequestMapping("/attention_veri")
- public ResultMsg attentionVeri(HttpServletRequest requeste){
- ResultMsg rm = new ResultMsg();
- Member member = WechatUtils.getUserBySession(requeste);
- member = memberService.getMemberByUserOpenId(member.getUserOpenid());
- if(member == null){
- // 创建新的用户
- member = new Member();
- member.setUserOpenid(member.getUserOpenid());
- member.setUserSex(0);
- member.setUserStatus(1);
- int flag = homeService.insertMemberInfo(member);
- if (flag < 1) {
- return new ResultMsg(false, ResultMsg.ERROR, "请先关注“Watero水时代”公众号,并联系客服添加用户!",null);
- }
- }
- rm.setMessage(ResultMsg.SUCCESS);
- rm.setStatus(true);
- return rm;
- }
- /**
- * 发送验证码
- * 2016年4月21日
- * @author 穆再兴
- * @return
- */
- @ResponseBody
- @RequestMapping("/send_veri")
- public ResultMsg sendPhone(HttpServletRequest request,String phone){
- ResultMsg rm = new ResultMsg();
- Member member = WechatUtils.getUserBySession(request);
- if(phone.length() != 11){
- rm.setMessage(ResultMsg.ERROR);
- rm.setMessage("电话号码错误!");
- logger.info("openid="+member.getUserOpenid()+"phone:"+phone+"==电话号码错误!");
- System.out.println("openid="+member.getUserOpenid()+"phone:"+phone+"==电话号码错误!");
- return rm;
- }
- member = memberService.getMemberByUserOpenId(member.getUserOpenid());
- if(member == null){
- // 创建新的用户
- member = new Member();
- member.setUserOpenid(member.getUserOpenid());
- member.setUserSex(0);
- member.setUserStatus(1);
- int flag = homeService.insertMemberInfo(member);
- if (flag < 1) {
- logger.info("openid="+member.getUserOpenid()+"phone:"+phone+"==请先关注“Watero水时代”公众号,并联系客服添加用户!");
- System.out.println("openid="+member.getUserOpenid()+"phone:"+phone+"==请先关注“Watero水时代”公众号,并联系客服添加用户!");
- return new ResultMsg(false, ResultMsg.ERROR, "请先关注“Watero水时代”公众号,并联系客服添加用户!",null);
- }
- }
- ThanksGiving thanksGiving = new ThanksGiving();
- thanksGiving.setThanksGivingPhone(phone);
- List<ThanksGiving> thanksGivingList = thanksGivingService.getThanksGivingList(thanksGiving);
- if(thanksGivingList == null || thanksGivingList.size() < 1){
- logger.info("openid="+member.getUserOpenid()+"phone:"+phone+"=您的手机号码未录入到老客户行列,暂时无法领取,详情请联系客服人员!");
- System.out.println("openid="+member.getUserOpenid()+"phone:"+phone+"==您的手机号码未录入到老客户行列,暂时无法领取,详情请联系客服人员!");
- return new ResultMsg(false, ResultMsg.ERROR, "您的手机号码未录入到老客户行列,暂时无法领取,详情请联系客服人员!",null);
- }
- //获取验证码
- String num = RandomUtil.getRandom();
- //使用request对象的getSession()获取session,如果session不存在则创建一个
- HttpSession session = request.getSession();
- String text = MessageFormat.format(ImberryConfig.PROBATION_VERIFICATION_CODE, num);
- String result = codeService.sendOtherCMS(phone, text);
- //将数据存储到session中
- session.setAttribute("verification_code",num );
- session.setAttribute("verification_tel",phone );
- session.setAttribute("verification_date",new Date());
- rm.setMessage(ResultMsg.SUCCESS);
- rm.setStatus(true);
- return rm;
- }
- /**
- * 领取优惠券
- * 2016年4月21日
- * @author 穆再兴
- * @return
- */
- @ResponseBody
- @RequestMapping("/receive_coupon")
- public ResultMsg receiveCoupon(HttpServletRequest request,String phone,String code){
- ResultMsg rm = new ResultMsg();
- Member member = WechatUtils.getUserBySession(request);
- member = memberService.getMemberByUserOpenId(member.getUserOpenid());
- if(member == null){
- // 创建新的用户
- member = new Member();
- member.setUserOpenid(member.getUserOpenid());
- member.setUserSex(0);
- member.setUserStatus(1);
- int flag = homeService.insertMemberInfo(member);
- if (flag < 1) {
- logger.info("openid="+member.getUserOpenid()+"phone:"+phone+"=请先关注“Watero水时代”公众号,并联系客服添加用户!");
- return new ResultMsg(false, ResultMsg.ERROR, "请先关注“Watero水时代”公众号,并联系客服添加用户!",null);
- }
- }
- //判断验证码
- //使用request对象的getSession()获取session,如果session不存在则创建一个
- HttpSession session = request.getSession();
- String verificationTel = (String) session.getAttribute("verification_tel");
- String verificationCode = (String) session.getAttribute("verification_code");
- Date verificationDate = (Date) session.getAttribute("verification_date");
- if(verificationTel == null || verificationCode == null || verificationDate == null){
- logger.info("openid="+member.getUserOpenid()+"phone:"+phone+"=领取出错,请重新获取验证码");
- return new ResultMsg(false, ResultMsg.ERROR, "领取出错,请重新获取验证码!",null);
- }
- if(phone.length() != 11 && phone.equals(verificationTel)){
- rm.setMessage(ResultMsg.ERROR);
- rm.setMessage("电话号码错误!");
- return rm;
- }
- if(code == null || "".equals(code)){
- return new ResultMsg(false, ResultMsg.ERROR, "验证码为空!",null);
- }
- Calendar nowTime = Calendar.getInstance();
- nowTime.setTime(verificationDate);
- nowTime.add(Calendar.MINUTE, 5);
- Date verData = nowTime.getTime();
- if(!verificationCode.equals(code)){
- logger.info("openid="+member.getUserOpenid()+"phone:"+phone+"=验证码不正确,请重新输入");
- return new ResultMsg(false, ResultMsg.ERROR, "验证码不正确,请重新输入!",null);
- }
- if((verData.getTime() < System.currentTimeMillis())){
- return new ResultMsg(false, ResultMsg.ERROR, "验证码已失效,请重新获取!",null);
- }
- ThanksGiving thanksGiving = new ThanksGiving();
- thanksGiving.setThanksGivingPhone(phone);
- List<ThanksGiving> thanksGivingList = thanksGivingService.getThanksGivingList(thanksGiving);
- if(thanksGivingList == null){
- logger.info("openid="+member.getUserOpenid()+"phone:"+phone+"=您的手机号码未录入到老客户行列,暂时无法领取,详情请联系客服人员");
- return new ResultMsg(false, ResultMsg.ERROR, "您的手机号码未录入到老客户行列,暂时无法领取,详情请联系客服人员!",null);
- }
- thanksGiving = thanksGivingList.get(0);
- if(thanksGiving.getThanksGivingStatus() != 1 ){
- logger.info("openid="+member.getUserOpenid()+"phone:"+phone+"=领取失败,该电话号码已领取优惠券!==="+thanksGiving.getThanksGivingStatus());
- return new ResultMsg(false, ResultMsg.ERROR, "领取失败,该电话号码已领取优惠券!",null);
- }
- ThanksGiving tg = new ThanksGiving();
- tg.setThanksGivingPhone(phone);
- tg.setThanksGivingId(thanksGivingList.get(0).getThanksGivingId());
- tg.setThanksGivingOpenId(member.getUserOpenid());
- Integer flag = 0;
- try{
- flag = thanksGivingService.update(tg);
- }catch (Exception e){
- e.printStackTrace();
- return new ResultMsg(false, ResultMsg.ERROR, e.getMessage(),null);
- }
- if(flag < 1){
- logger.info("openid="+member.getUserOpenid()+"phone:"+phone+"=领取失败,请重新领取!");
- return new ResultMsg(false, ResultMsg.ERROR, "领取失败,请重新领取!",null);
- }
- //领取成功 验证码失效,
- session.setAttribute("verification_code",null );
- session.setAttribute("verification_tel",null );
- session.setAttribute("verification_date",null );
- return new ResultMsg(true, ResultMsg.SUCCESS, "领取成功!",null);
- }
- }
|