123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375 |
- package com.iamberry.wechat.handles.agent;
- import java.text.MessageFormat;
- import java.util.*;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpSession;
- import com.iamberry.wechat.core.entity.activity.ActivityDate;
- import com.iamberry.wechat.core.entity.coupon.CouponItemDto;
- import com.iamberry.wechat.face.coupon.CouponItemService;
- import com.iamberry.wechat.face.order.CodeService;
- import com.iamberry.wechat.handles.thanksgiving.ThanksGivingHandler;
- import com.iamberry.wechat.service.ActivityUtil;
- import com.iamberry.wechat.service.ImberryConfig;
- 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.RequestParam;
- import org.springframework.web.bind.annotation.ResponseBody;
- import com.iamberry.wechat.core.entity.ResultMsg;
- import com.iamberry.wechat.core.entity.WechatUtils;
- import com.iamberry.wechat.core.entity.agent.AgentMemberDto;
- import com.iamberry.wechat.core.entity.agent.AgentOrderDto;
- import com.iamberry.wechat.core.entity.cart.ShopSalesOrderDto;
- import com.iamberry.wechat.core.entity.member.Member;
- import com.iamberry.wechat.core.entity.mq.MQMessage;
- import com.iamberry.wechat.face.agent.AgentMemberService;
- import com.iamberry.wechat.face.agent.AgentOrderService;
- import com.iamberry.wechat.face.cart.CartService;
- import com.iamberry.wechat.face.member.MemberService;
- import com.iamberry.wechat.handles.mq.MQServiceProxy;
- import com.iamberry.wechat.tools.NameUtils;
- import com.iamberry.wechat.tools.ResultInfo;
- /**
- * 微代理 handler 类
- * @author 穆再兴
- * 2016年4月19日
- */
- @Controller
- @RequestMapping("/wechat/agent")
- public class AgentHandler {
- private Logger logger = LoggerFactory.getLogger(AgentHandler.class);
- @Autowired
- private AgentOrderService agentOrderService; //微代理订单service
- @Autowired
- private MemberService memberService; //会员service
- @Autowired
- private AgentMemberService agentMemberService; //微代理会员service
- @Autowired
- private CartService cartService;
- @Autowired
- private MQServiceProxy mQservice;
- @Autowired
- private ActivityUtil activityUtil;
- @Autowired
- private CodeService codeService;
- @Autowired
- private CouponItemService couponItemService;
-
- /**
- * 获取当前用户<微代理> 的订单记录
- * 2016年4月19日
- * @author 穆再兴
- * @return json格式
- */
- @RequestMapping("/agentOrder")
- @ResponseBody
- public ResultMsg getAgentOrderJson(HttpServletRequest req,
- @RequestParam(value="rebackStatus",defaultValue= "4", required=false)Integer rebackStatus,
- @RequestParam(value="pageSize",defaultValue= "6", required=false)String pageSize,
- @RequestParam(value="pageNO",defaultValue= "1", required=false)String pageNO){
- ResultMsg rm = new ResultMsg();
- Member member = WechatUtils.getUserBySession(req);
- member = memberService.getMemberByUserOpenId(member.getUserOpenid());
-
- //查当前用户<微代理>userid 所有订单
- AgentOrderDto orderDto = new AgentOrderDto();
- orderDto.setOrderOpenid(member.getUserOpenid());
- orderDto.getPage().setPageSize(Integer.parseInt(pageSize));
- orderDto.getPage().setPageNumber(Integer.parseInt(pageNO));
- orderDto.setRebackStatus(rebackStatus);
-
- orderDto.getPage().initRecordBegin();
-
- Map<String, Object> map = agentOrderService.getOrderListAndCountByOpenid(orderDto);
- map.put("userIncome", member.getUserIncome() == null ? 0 : member.getUserIncome().intValue());
- rm.setResultCode(ResultInfo.SUCCESSCODE);
- rm.setMessage(NameUtils.getConfig("SUCCESSINFO"));
- rm.setStatus(true);
- rm.setData(map);
- return rm;
- }
-
- /**
- * 会员中心页面
- * 2016年4月21日
- * @author 穆再兴
- * @return
- */
- @RequestMapping("/member")
- @ResponseBody
- public ResultMsg getMemberInfo(HttpServletRequest req){
- ResultMsg rm = new ResultMsg();
- Member member = new Member();
- String openId = req.getParameter("openId");
- if(openId != null && !openId.equals("")){
- member = memberService.getMemberByUserOpenId(openId);
- }else{
- member = WechatUtils.getUserBySession(req);
- }
- member = memberService.getMemberByUserOpenId(member.getUserOpenid());
- AgentMemberDto agentMember = agentMemberService.getMemberInfo(member);
- agentMember.setUserIsVip(member.getUserIsVip());
- agentMember.setUserArrange(member.getUserArrange());
- agentMember.setUser38Interests(2);
- agentMember.setUserSurplusIntegral(member.getUserSurplusIntegral()); //userSurplusIntegral
- agentMember.setUserTel(member.getUserTel());
- agentMember.setUserSex(member.getUserSex());
- agentMember.setUserBirthDate(member.getUserBirthDate());
- agentMember.setUserName(member.getUserName());
- CouponItemDto couponItemDto = new CouponItemDto();
- couponItemDto.setCouponVipExclusive(1);
- couponItemDto.setUseropenid(member.getUserOpenid());
- couponItemDto.setBeginDate(new Date());
- couponItemDto.setCouponUseStatus(1);
- Integer couponCount = couponItemService.getCouponItemCount(couponItemDto);
- CouponItemDto vipCouponItemDto = new CouponItemDto();
- vipCouponItemDto.setCouponVipExclusive(2);
- vipCouponItemDto.setUseropenid(member.getUserOpenid());
- vipCouponItemDto.setBeginDate(new Date());
- vipCouponItemDto.setCouponUseStatus(1);
- Integer couponVipCount = couponItemService.getCouponItemCount(vipCouponItemDto);
- agentMember.setCouponCount(couponCount);
- agentMember.setCouponVipCount(couponVipCount);
- rm.setMessage(NameUtils.getConfig("SUCCESSINFO"));
- rm.setStatus(true);
- rm.setData(agentMember);
- return rm;
- }
- /**
- * 完善用户信息
- * @return
- */
- @RequestMapping("/updateMemberInfo")
- @ResponseBody
- public ResultMsg updateMemberInfo(HttpServletRequest request,Member member,String code){
- ResultMsg rm = new ResultMsg();
- Member m = WechatUtils.getUserBySession(request);
- m = memberService.getMemberByUserOpenId(m.getUserOpenid());
- if(m.getUserIsVip() == 2 && m.getUserArrange() == 1){
- return new ResultMsg(false, ResultMsg.ERROR, "您已经是会员了!",null);
- }
- if(m.getUserOpenid()== null || "".equals(m.getUserOpenid())){
- return new ResultMsg(false, ResultMsg.ERROR, "完善信息失败-用户OpenId为空",null);
- }
- if(member == null){
- return new ResultMsg(false, ResultMsg.ERROR, "完善信息失败,用户信息为空,请联系公众号客服!",null);
- }
- //姓名
- if(member.getUserName() == null){
- return new ResultMsg(false, ResultMsg.ERROR, "完善信息失败,姓名不能为空!",null);
- }
- //性别
- if(member.getUserSex() == null){
- return new ResultMsg(false, ResultMsg.ERROR, "完善信息失败,性别不能为空!",null);
- }
- //生日 userBirthDate
- if(member.getUserBirthDate() == null){
- return new ResultMsg(false, ResultMsg.ERROR, "完善信息失败,生日不能为空!",null);
- }
- //手机号码
- if(member.getUserTel() == null){
- return new ResultMsg(false, ResultMsg.ERROR, "完善信息失败,手机号码为空!",null);
- }
- //验证码
- if(code == null || "".equals(code)){
- return new ResultMsg(false, ResultMsg.ERROR, "完善信息失败,验证码为空!",null);
- }
- //使用request对象的getSession()获取session,如果session不存在则创建一个
- HttpSession session = request.getSession();
- Map verificMemberPhoneMap = (Map) session.getAttribute("verification_tel_"+m.getUserOpenid());
- String verificationTel = (String) verificMemberPhoneMap.get("verification_tel");
- String verificationCode = (String) verificMemberPhoneMap.get("verification_code");
- Date verificationDate = (Date) verificMemberPhoneMap.get("verification_date");
- if(verificationTel == null || verificationCode == null || verificationDate == null){
- logger.info("openid="+member.getUserOpenid()+"phone:"+member.getUserTel()+"=完善信息失败,请重新获取验证码");
- return new ResultMsg(false, ResultMsg.ERROR, "完善信息失败,请重新获取验证码!",null);
- }
- if(member.getUserTel().length() != 11 && member.getUserTel().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:"+member.getUserTel()+"=验证码不正确,请重新输入");
- return new ResultMsg(false, ResultMsg.ERROR, "验证码不正确,请重新输入!",null);
- }
- if((verData.getTime() < System.currentTimeMillis())){
- return new ResultMsg(false, ResultMsg.ERROR, "验证码已失效,请重新获取!",null);
- }
- ResultMsg msg = new ResultMsg();
- member.setUserOpenid(m.getUserOpenid());
- member.setUserIsVip(2); //是否为vip :1:非vip 2:vip
- member.setUserArrange(1); ////1:已整理 2:未整理
- Integer flag = memberService.becomeVipByOpenId(member);
- if (flag > 0 ) {
- msg.setResultCode(ResultInfo.SUCCESSCODE);
- msg.setStatus(true);
- return msg;
- } else {
- msg.setResultCode(ResultInfo.ERRORCODE);
- msg.setStatus(false);
- msg.setMessage("成为会员失败");
- return msg;
- }
- }
- /**
- * 修改手机号码
- * @return
- */
- @RequestMapping("/updateMemberPhone")
- @ResponseBody
- public ResultMsg updateMemberPhone(HttpServletRequest request,Member member,String code){
- ResultMsg rm = new ResultMsg();
- Member m = WechatUtils.getUserBySession(request);
- //手机号码
- if(member.getUserTel() == null){
- return new ResultMsg(false, ResultMsg.ERROR, "修改手机号码失败,手机号码为空!",null);
- }
- //验证码
- if(code == null || "".equals(code)){
- return new ResultMsg(false, ResultMsg.ERROR, "修改手机号码失败,验证码为空!",null);
- }
- //使用request对象的getSession()获取session,如果session不存在则创建一个
- HttpSession session = request.getSession();
- Map verificMemberPhoneMap = (Map) session.getAttribute("verification_tel_"+m.getUserOpenid());
- String verificationTel = (String) verificMemberPhoneMap.get("verification_tel");
- String verificationCode = (String) verificMemberPhoneMap.get("verification_code");
- Date verificationDate = (Date) verificMemberPhoneMap.get("verification_date");
- if(verificationTel == null || verificationCode == null || verificationDate == null){
- logger.info("openid="+member.getUserOpenid()+"phone:"+member.getUserTel()+"=修改手机号码失败,请重新获取验证码");
- return new ResultMsg(false, ResultMsg.ERROR, "修改手机号码失败,请重新获取验证码!",null);
- }
- if(member.getUserTel().length() != 11 && member.getUserTel().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:"+member.getUserTel()+"=验证码不正确,请重新输入");
- return new ResultMsg(false, ResultMsg.ERROR, "验证码不正确,请重新输入!",null);
- }
- if((verData.getTime() < System.currentTimeMillis())){
- return new ResultMsg(false, ResultMsg.ERROR, "验证码已失效,请重新获取!",null);
- }
- ResultMsg msg = new ResultMsg();
- member.setUserOpenid(m.getUserOpenid());
- Integer flag = memberService.nowUpdateUserByOpenId(member);
- if (flag > 0 ) {
- msg.setResultCode(ResultInfo.SUCCESSCODE);
- msg.setStatus(true);
- return msg;
- } else {
- msg.setResultCode(ResultInfo.ERRORCODE);
- msg.setStatus(false);
- msg.setMessage("修改电话号码失败");
- return msg;
- }
- }
- /**
- * 发送短信
- * @param request
- * @return
- * @throws Exception
- */
- @ResponseBody
- @RequestMapping("/send_phone")
- public ResultMsg sendPhone(HttpServletRequest request,String phone) throws Exception {
- ResultMsg msg = new ResultMsg();
- if(phone.trim().length() != 11){
- msg.setMessage("电话号码错误!");
- return msg;
- }
- Member m = WechatUtils.getUserBySession(request);
- //获取验证码
- 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中
- Map verificMemberPhoneMap = new HashMap();
- verificMemberPhoneMap.put("verification_code",num);
- verificMemberPhoneMap.put("verification_tel",phone);
- verificMemberPhoneMap.put("verification_date",new Date());
- session.setAttribute("verification_tel_"+m.getUserOpenid(),verificMemberPhoneMap);
- if ("SUCCESS".equals(result)) {
- logger.info("短信发送成功,验证码为:" + num);
- msg.setResultCode(ResultInfo.SUCCESSCODE);
- msg.setStatus(true);
- return msg;
- } else {
- logger.info("短信发送失败:" + result);
- msg.setResultCode(ResultInfo.ERRORCODE);
- msg.setStatus(false);
- msg.setMessage("短信发送失败");
- return msg;
- }
- }
-
- /**
- * 前台根据openid获取用户信息
- * create date 2016年6月2日
- * @param openid
- * @return
- */
- @RequestMapping("/memberInfo")
- @ResponseBody
- public ResultMsg getMemberInfo(HttpServletRequest req,
- @RequestParam(value="openid",defaultValue= "", required=false)String openid){
- ResultMsg rm = new ResultMsg();
- Member member = WechatUtils.getUserBySession(req);
- member = memberService.getMemberByUserOpenId(member.getUserOpenid());
-
- rm.setStatus(true);
- rm.setResultCode(ResultInfo.SUCCESSCODE);
- rm.setMessage(NameUtils.getConfig("SUCCESSINFO"));
- rm.setData(member);
- return rm;
- }
-
- }
|