123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371 |
- package com.iamberry.wechat.handles.member;
- import java.io.IOException;
- import java.util.HashMap;
- import java.util.Map;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import com.iamberry.wechat.core.entity.integral.MemberIntegral;
- import com.iamberry.wechat.face.integral.UseIntegralService;
- import org.apache.commons.lang.StringUtils;
- 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.RequestParam;
- import org.springframework.web.bind.annotation.ResponseBody;
- import com.iamberry.wechat.core.entity.Page;
- import com.iamberry.wechat.core.entity.ResultMsg;
- import com.iamberry.wechat.core.entity.WechatUtils;
- import com.iamberry.wechat.core.entity.drp.PlaceInfo;
- import com.iamberry.wechat.core.entity.member.Member;
- import com.iamberry.wechat.core.entity.qrcode.QrcodeResult;
- import com.iamberry.wechat.face.drp.PlaceInfoService;
- import com.iamberry.wechat.face.home.HomeService;
- import com.iamberry.wechat.face.member.MemberService;
- import com.iamberry.wechat.face.qrcode.QrcodeService;
- import com.iamberry.wechat.face.qrcode.TemporaryQrcodeService;
- import com.iamberry.wechat.tools.NameUtils;
- import com.iamberry.wechat.tools.ResultInfo;
- import com.iamberry.wechat.tools.StaticInfo;
- /**
- *
- * description:
- * @author: 张应真
- * @createDate: 2016年4月21日
- */
- @Controller
- @RequestMapping("/wechat/member")
- public class MemberHandler {
-
- @Autowired
- private MemberService memberService;
- @Autowired
- private PlaceInfoService placeInfoService;
- @Autowired
- private QrcodeService qrcodeService;
- @Autowired
- private HomeService homeService;
- @Autowired
- private TemporaryQrcodeService temporaryQrcodeService;
- @Autowired
- private UseIntegralService useIntegralService; //会员积分service
- /**
- * 微代理查看下线
- * @return
- * @throws Exception
- */
- @ResponseBody
- @RequestMapping(value = "/porxyCheckUser", method = RequestMethod.POST)
- public ResultMsg porxyCheckUser(
- @RequestParam(defaultValue = "10", value = "pageSize", required = false) Integer pageSize,
- HttpServletRequest request) throws Exception {
- ResultMsg msg = new ResultMsg();
-
- Member member = WechatUtils.getUserBySession(request);
- Page page = new Page();
- page.setPageSize(pageSize);
- page.setTotalRecord(member.getUserId());
-
- String beginNo=request.getParameter("beginNo");
- if(beginNo!=null){
- page.getParams().put("beginNo",beginNo);
- }
- String endNo=request.getParameter("endNo");
- if(endNo!=null){
- page.getParams().put("endNo",endNo);
- }
-
- Map<String, Object> map = memberService.getDownInfoAndBuyedCount(page);
- msg.setData(map);
- msg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
- msg.setResultCode(ResultInfo.SUCCESSCODE);
- msg.setStatus(true);
-
- return msg;
- }
-
- /**
- * 前台获取会员二维码接口
- * @return
- * @throws Exception
- */
- @ResponseBody
- @RequestMapping(value = "/shareProxyMemberUrl", method = RequestMethod.POST)
- public ResultMsg shareMemberUrl(
- @RequestParam(value = "share", required = false) String share,
- @RequestParam(value = "isDefault", required = false) String isDefault,
- HttpServletResponse response,
- HttpServletRequest request) throws Exception {
- ResultMsg msg = new ResultMsg();
-
- if(share != null) {// 是否为分享,不为空表示分享
- Map<String, Object> map = new HashMap<String, Object>();
-
- if ("true".equals(isDefault)) { // 是否分享了默认的二维码,true表示分享默认的二维码
- map.put("shareUrl", NameUtils.getConfig("WECHAT_MEMBER_SHARE_QRCODE") + "?isDefault=true");
- map.put("qrcodeUrl", NameUtils.getConfig("WECHAT_DEFAULT_QRCODE"));
- } else {
- try {
- Member tempMember = memberService.getMemberByUserId(Integer.parseInt(StaticInfo.md5.decrypt(share)));
- if (tempMember != null && tempMember.getUserIdentity() == 2) {
- StringBuffer shareUrl = new StringBuffer(NameUtils.getConfig("WECHAT_MEMBER_SHARE_QRCODE"));
- shareUrl.append("?share=" + StaticInfo.md5.encrypt(tempMember.getUserId().toString()));
- //当前用户
- Member member = WechatUtils.getUserBySession(request);
- // 绑定用户关系
- memberService.buildChildUser(tempMember.getUserOpenid(), member,1,1);
-
- map.put("shareUrl", shareUrl.toString());
- QrcodeResult qr = temporaryQrcodeService.getTempQrcodeUrlByOpenid(tempMember.getUserOpenid());
- if(qr.isSuccess()){
- map.put("qrcodeUrl", qr.getQroceUrl());
- }else{
- map.put("qrcodeUrl", NameUtils.getConfig("WECHAT_DEFAULT_QRCODE"));
- }
- map.put("data", tempMember);
- } else {
- map.put("shareUrl", NameUtils.getConfig("WECHAT_MEMBER_SHARE_QRCODE") + "?isDefault=true");
- map.put("qrcodeUrl", NameUtils.getConfig("WECHAT_DEFAULT_QRCODE"));
- }
-
- } catch (Exception e) {
- e.printStackTrace();
- map.put("shareUrl", NameUtils.getConfig("WECHAT_MEMBER_SHARE_QRCODE") + "?isDefault=true");
- map.put("qrcodeUrl", NameUtils.getConfig("WECHAT_DEFAULT_QRCODE"));
- }
- }
- msg.setData(map);
- msg.setResultCode(ResultInfo.SUCCESSCODE);
- msg.setStatus(true);
- return msg;
- }
-
- Member member = WechatUtils.getUserBySession(request);
- Map<String, Object> map = new HashMap<String, Object>();
- if (member.getUserIdentity() != null && member.getUserIdentity() == 2) { // 1:会员 ; 2:微代理
- if (member.getUserNickname() == null) {
- Member tempMember = memberService.getMemberByUserId(member.getUserId());
- member.setUserNickname(tempMember.getUserNickname());
- member.setUserHead(tempMember.getUserHead());
- map.put("data", tempMember);
- } else {
- map.put("data", member);
- }
- } else {
- Member tempMember = memberService.getMemberByUserId(member.getUserId());
- //if (tempMember == null || tempMember.getUserIdentity() != 2) {
- if (tempMember == null){
- msg.setStatus(false);
- msg.setResultCode(ResultInfo.ERRORCODE);
- msg.setMessage(NameUtils.getConfig("ERRORINFO"));
- return msg;
- }
- map.put("data", tempMember);
- member.setUserNickname(tempMember.getUserNickname());
- member.setUserHead(tempMember.getUserHead());
- member.setUserIdentity(2); // 代理
- }
- StringBuffer shareUrl = new StringBuffer(NameUtils.getConfig("WECHAT_MEMBER_SHARE_QRCODE"));
- shareUrl.append("?share=" + StaticInfo.md5.encrypt(member.getUserId().toString()));
- map.put("shareUrl", shareUrl.toString());
-
- QrcodeResult qr = temporaryQrcodeService.getTempQrcodeUrlByOpenid(member.getUserOpenid());
- if(qr.isSuccess()){
- map.put("qrcodeUrl", qr.getQroceUrl());
- }else{
- map.put("qrcodeUrl", NameUtils.getConfig("WECHAT_DEFAULT_QRCODE"));
- }
-
- msg.setData(map);
- msg.setResultCode(ResultInfo.SUCCESSCODE);
- msg.setStatus(true);
- return msg;
- }
-
- /**
- * 获取分销商二维码
- * @return
- * @throws Exception
- */
- @ResponseBody
- @RequestMapping(value = "/shareDrpUrl", method = RequestMethod.POST)
- public ResultMsg shareDrpUrl(
- @RequestParam(value = "share", required = false) String share, // 如果此参数存在,表示别人查看的二维码,否则表示自己查看二维码
- @RequestParam(value = "isDefault", required = false) String isDefault,
- HttpServletRequest request) throws Exception {
- ResultMsg msg = new ResultMsg();
-
- // 就算失败,也返回默认二维码
- Map<String, String> map = new HashMap<String, String>();
- map.put("shareUrl", NameUtils.getConfig("WECHAT_MEMBER_PROXY_QRCODE") + "?isDefault=true");
- map.put("qrcodeUrl", NameUtils.getConfig("WECHAT_DEFAULT_QRCODE"));
- msg.setData(map);
-
- Member member = WechatUtils.getUserBySession(request);
- // 是否默认
- if ("true".equals(isDefault)) {
- msg.setData(map);
- msg.setResultCode(ResultInfo.SUCCESSCODE);
- msg.setStatus(true);
- return msg;
- }
-
- // 判断是否查看分享连接
- if (share != null) {
- try {
- // 解析加密值
- Integer placeId = Integer.parseInt(StaticInfo.md5.decrypt(share));
- String qrcodeUrl = qrcodeService.selectQrcodeUrlByReplaceUser(placeId);
- if (qrcodeUrl == null) {
- msg.setMessage(ResultInfo.userNoDrpError);
- msg.setResultCode(ResultInfo.ERRORCODE);
- return msg;
- }
- // 拼装数据
- StringBuffer shareUrl = new StringBuffer(NameUtils.getConfig("WECHAT_MEMBER_PROXY_QRCODE"));
- shareUrl.append("?share=" + StaticInfo.md5.encrypt(placeId.toString()));
- map.put("shareUrl", shareUrl.toString());
- map.put("qrcodeUrl", qrcodeUrl);
-
- // 代理商管理元的信息
- Member tempMember = homeService.selectUserInfoByPlaceId(placeId);
- //绑定关系
- memberService.buildChildUser(tempMember.getUserOpenid(), member,2,1);
- map.put("userHeadImage", tempMember.getUserHead());
- map.put("userNickName", tempMember.getUserNickname());
-
- msg.setData(map);
-
- return msg;
- } catch (Exception e) {
- e.printStackTrace();
- msg.setMessage(ResultInfo.userNoDrpError);
- msg.setResultCode(ResultInfo.ERRORCODE);
- return msg;
- }
- }
-
- // 判断用户是否为分销商
- PlaceInfo placeInfo=placeInfoService.getPlaceInfoByOpenId(member.getUserOpenid());
- if(null == placeInfo){
- msg.setMessage(ResultInfo.userNoDrpError);
- msg.setResultCode(ResultInfo.ERRORCODE);
- return msg;
- }
-
- // 查询当前分销商的二维码
- String qrcodeUrl = qrcodeService.selectQrcodeUrlByReplaceUser(placeInfo.getId());
- if (qrcodeUrl == null) {
- msg.setMessage(ResultInfo.userNoDrpError);
- msg.setResultCode(ResultInfo.ERRORCODE);
- return msg;
- }
-
- // 代理商管理的信息
- Member tempMember = memberService.getMemberByUserId(member.getUserId());
- if (tempMember == null) {
- msg.setMessage(ResultInfo.userNoDrpError);
- msg.setResultCode(ResultInfo.ERRORCODE);
- return msg;
- }
- map.put("userHeadImage", tempMember.getUserHead());
- map.put("userNickName", tempMember.getUserNickname());
- StringBuffer shareUrl = new StringBuffer(NameUtils.getConfig("WECHAT_MEMBER_PROXY_QRCODE"));
- shareUrl.append("?share=" + StaticInfo.md5.encrypt(placeInfo.getId()+""));
- map.put("shareUrl", shareUrl.toString());
- map.put("qrcodeUrl", qrcodeUrl);
- msg.setData(map);
- msg.setResultCode(ResultInfo.SUCCESSCODE);
- msg.setStatus(true);
- return msg;
- }
-
- /**
- * 通过openid获取用户二维码
- */
- @ResponseBody
- @RequestMapping("/getQrcode")
- public ResultMsg getQrcode(@RequestParam(value="openid",defaultValue= "", required=false)String openid){
- ResultMsg rm = new ResultMsg();
- if(StringUtils.isEmpty(openid)){
- rm.setStatus(false);
- rm.setResultCode(ResultInfo.ERRORCODE);
- rm.setMessage(NameUtils.getConfig("ERRORINFO"));
- }
- PlaceInfo placeInfo = placeInfoService.getPlaceInfoByOpenId(openid);
- String qrcode = "";
- if(placeInfo == null){
- qrcode = qrcodeService.selectQrcodeUrlByReplaceUser(openid);
- }else{
- qrcode = qrcodeService.selectQrcodeUrlByReplaceUser(placeInfo.getId());
- }
- if(StringUtils.isNotEmpty(qrcode)){
- rm.setStatus(true);
- rm.setResultCode(ResultInfo.SUCCESSCODE);
- rm.setMessage(NameUtils.getConfig("SUCCESSINFO"));
- rm.setData(qrcode);
- }else{
- rm.setStatus(false);
- rm.setResultCode(ResultInfo.ERRORCODE);
- rm.setMessage(NameUtils.getConfig("ERRORINFO"));
- }
- return rm;
- }
- /**
- * 查看二维码
- * @param request
- * @throws IOException
- * @throws ServletException
- */
- @RequestMapping(value = "/showQrcode", method = RequestMethod.GET)
- public void showQrcode(
- HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- request.getRequestDispatcher(NameUtils.getConfig("WECHAT_SHOP_MEMGER_INDEX")).forward(request, response);
- }
- /**
- * 通过openid查询user
- * @param request
- * @return
- * @throws Exception
- */
- @ResponseBody
- @RequestMapping("/getUser")
- public ResultMsg getUser(HttpServletRequest request
- ) throws Exception {
- String openId = WechatUtils.getUserBySession(request).getUserOpenid();
- ResultMsg resultMsg = new ResultMsg();
- Member member = memberService.getMemberByUserOpenId(openId);
- if (member == null) {
- resultMsg.setData("");
- resultMsg.setMessage(NameUtils.getConfig("ERRORINFO"));
- resultMsg.setResultCode(ResultInfo.ERRORCODE);
- resultMsg.setStatus(false);
- return resultMsg;
- } else {
- if (2 == member.getUserStatus()){ // 1:未关注,默认 2:已关注 0:已取消关注
- resultMsg.setData(member.getUserId());
- resultMsg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
- resultMsg.setResultCode(ResultInfo.SUCCESSCODE);
- resultMsg.setStatus(true);
- return resultMsg;
- }else{
- resultMsg.setData("");
- resultMsg.setMessage(NameUtils.getConfig("ERRORINFO"));
- resultMsg.setResultCode(ResultInfo.ERRORCODE);
- resultMsg.setStatus(false);
- return resultMsg;
- }
- }
- }
- }
|