From ee88b54979c633a4ade518d4c124a2d07d378562 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 11 十月 2019 10:56:18 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserAccountControllerV2.java | 313 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 313 insertions(+), 0 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserAccountControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserAccountControllerV2.java new file mode 100644 index 0000000..2babc45 --- /dev/null +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserAccountControllerV2.java @@ -0,0 +1,313 @@ +package com.yeshi.fanli.controller.client.v2; + +import java.io.PrintWriter; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.yeshi.utils.JsonUtil; + +import com.yeshi.fanli.entity.accept.AcceptData; +import com.yeshi.fanli.entity.bus.user.SMSHistory; +import com.yeshi.fanli.entity.bus.user.UserInfo; +import com.yeshi.fanli.entity.push.DeviceActive; +import com.yeshi.fanli.entity.system.BusinessSystem; +import com.yeshi.fanli.exception.user.UserAccountException; +import com.yeshi.fanli.log.LogHelper; +import com.yeshi.fanli.service.inter.config.BusinessSystemService; +import com.yeshi.fanli.service.inter.homemodule.HomeNavbarUserService; +import com.yeshi.fanli.service.inter.money.UserMoneyService; +import com.yeshi.fanli.service.inter.order.LostOrderService; +import com.yeshi.fanli.service.inter.order.config.HongBaoManageService; +import com.yeshi.fanli.service.inter.push.DeviceActiveService; +import com.yeshi.fanli.service.inter.push.DeviceTokenHWService; +import com.yeshi.fanli.service.inter.push.DeviceTokenOPPOService; +import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService; +import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinOriginService; +import com.yeshi.fanli.service.inter.user.BindRemindService; +import com.yeshi.fanli.service.inter.user.ForbiddenUserIdentifyCodeService; +import com.yeshi.fanli.service.inter.user.ShamUserService; +import com.yeshi.fanli.service.inter.user.SpreadUserImgService; +import com.yeshi.fanli.service.inter.user.TBPidService; +import com.yeshi.fanli.service.inter.user.UserAccountBindingHistoryService; +import com.yeshi.fanli.service.inter.user.UserAccountService; +import com.yeshi.fanli.service.inter.user.UserInfoDeleteRecordService; +import com.yeshi.fanli.service.inter.user.UserInfoModifyRecordService; +import com.yeshi.fanli.service.inter.user.UserInfoService; +import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService; +import com.yeshi.fanli.service.inter.user.UserSystemCouponService; +import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce; +import com.yeshi.fanli.util.Constant; +import com.yeshi.fanli.util.RedisManager; +import com.yeshi.fanli.util.StringUtil; +import com.yeshi.fanli.util.ThreadUtil; +import com.yeshi.fanli.util.VersionUtil; +import com.yeshi.fanli.util.account.UserUtil; +import com.yeshi.fanli.util.annotation.RequestSerializableByKey; + +import net.sf.json.JSONObject; + +/** + * 璐︽埛绯荤粺 + * + * @author Administrator + * + */ +@Controller +@RequestMapping("api/v2/user") +public class UserAccountControllerV2 { + + @Resource + private UserInfoService userInfoService; + + @Resource + private BusinessSystemService businessSystemService; + + @Resource + private ShamUserService shamUserService; + + @Resource + private ThreeSaleSerivce threeSaleSerivce; + + @Resource + private LostOrderService lostOrderService; + + @Resource + private HongBaoManageService hongBaoManageService; + + @Resource + private UserAccountService userAccountService; + + @Resource + private RedisManager redisManager; + + @Resource + private TBPidService tbPidService; + + @Resource + private DeviceTokenHWService deviceTokenHWService; + + @Resource + private DeviceTokenOPPOService deviceTokenOPPOService; + + @Resource + private TaoBaoUnionConfigService taoBaoUnionConfigService; + + @Resource + private SpreadUserImgService spreadUserImgService; + + @Resource + private UserShareGoodsRecordService userShareGoodsRecordService; + + @Resource + private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService; + + @Resource + private UserSystemCouponService userSystemCouponService; + + @Resource + private UserMoneyService userMoneyService; + + @Resource + private UserAccountBindingHistoryService userAccountBindingHistoryService; + + @Resource + private HomeNavbarUserService homeNavbarUserService; + + @Resource + private UserInfoDeleteRecordService userInfoDeleteRecordService; + + @Resource + private UserTaoLiJinOriginService userTaoLiJinOriginService; + + @Resource + private UserInfoModifyRecordService userInfoModifyRecordService; + + @Resource + private DeviceActiveService deviceActiveService; + + @Resource + private BindRemindService bindRemindService; + + + + /** + * 鏂扮増鐧诲綍 V1.5.3 + * + * @param acceptData + * @param vcode + * @param phone + * @param code + * @param loginType + * 鐧诲綍鏂瑰紡锛� 1-鎵嬫満鐧诲綍 2-寰俊鐧诲綍 + * @param request + * @param out + */ + @RequestMapping(value = "login", method = RequestMethod.POST) + public void login(AcceptData acceptData, int loginType, String vcode, String phone, String code, + HttpServletRequest request, PrintWriter out) { + try { + BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(), + acceptData.getPackages()); + if (system == null) { + out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�")); + return; + } + + UserInfo userInfo = null; + // 鎵嬫満鐧诲綍 + if (loginType == 1) { + userInfo = userAccountService.loginPhone(request, loginType, vcode, phone, system.getAppid()); + } + + // 寰俊鐧诲綍 + if (loginType == 2) { + userInfo = userAccountService.loginWeiXinNew(request, acceptData, loginType, code, system.getAppid()); + } + + if (userInfo == null) { + out.print(JsonUtil.loadFalseResult("鐧诲綍澶辫触")); + } else { + JSONObject data = new JSONObject(); + data.put("userInfo", UserUtil.filterForClientUser(userInfo)); + out.print(JsonUtil.loadTrueResult(data)); + + final UserInfo uuser = userInfo; + ThreadUtil.run(new Runnable() { + public void run() { + String device = acceptData.getDevice(); + try { + // 鍚屾鑷畾涔夊鑸� + homeNavbarUserService.synchroDeviceToUser(uuser.getId(), device); + } catch (Exception e) { + LogHelper.errorDetailInfo(e); + } + + if (VersionUtil.greaterThan_1_5_60(acceptData.getPlatform(), acceptData.getVersion())) { + /* 鏂颁汉绾㈠寘 */ + try { + userTaoLiJinOriginService.synchDeviceHongbao(uuser.getId(), device); + } catch (Exception e) { + e.printStackTrace(); + } + } + + // 缁戝畾oppo鎺ㄩ�� + DeviceActive active = deviceActiveService.getFirstActiveInfo(acceptData.getDevice()); + if (active != null) { + deviceTokenOPPOService.bindUid(uuser.getId(), active.getId()); + } + } + }); + } + + } catch (UserAccountException e) { + int errorCode = e.getCode(); + if (errorCode == 101) { // 闇�瑕佺粦瀹氭墜鏈哄彿 + JSONObject data = new JSONObject(); + data.put("key", e.getMsg()); + JSONObject object = new JSONObject(); + object.put("code", errorCode); + object.put("data", data); + out.print(object.toString()); + } else { + out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); + try { + LogHelper.cookieLog("鐧诲綍鍑洪敊:" + e.getCode() + "-" + e.getMessage()); + } catch (Exception e1) { + e1.printStackTrace(); + } + } + + } catch (Exception e) { + out.print(JsonUtil.loadFalseResult("鐧诲綍澶辫触")); + try { + LogHelper.errorDetailInfo(e); + } catch (Exception e1) { + e1.printStackTrace(); + } + } + } + + + + /** + * 缁戝畾鐢佃瘽鍙风爜 V2.0.1 寰俊鐧诲綍 + * + * @param acceptData + * @param vcode + * @param phone + * @param out + */ + @RequestSerializableByKey(key = "'bindPhoneLogin-'+#phone") + @RequestMapping(value = "bindPhoneLogin") + public void bindPhoneLogin(AcceptData acceptData,String vcode, String phone, String key, HttpServletRequest request, PrintWriter out) { + BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(), + acceptData.getPackages()); + if (system == null) { + out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�")); + return; + } + + if (StringUtil.isNullOrEmpty(vcode)) { + out.print(JsonUtil.loadFalseResult("楠岃瘉鐮佷笉鑳戒负绌�")); + return; + } + + if (StringUtil.isNullOrEmpty(phone)) { + out.print(JsonUtil.loadFalseResult("鐢佃瘽鍙风爜涓嶈兘涓虹┖")); + return; + } + + if (StringUtil.isNullOrEmpty(key)) { + out.print(JsonUtil.loadFalseResult("key鍊间笉鑳戒负绌�")); + return; + } + + phone = phone.replaceAll(" ", ""); + + String oldVCode = redisManager.getSMSVCode(phone, SMSHistory.TYPE_BIND); + if (Constant.IS_OUTNET) { + if (!vcode.equalsIgnoreCase(oldVCode)) { + out.print(JsonUtil.loadFalseResult(9001, "楠岃瘉鐮侀敊璇紝閲嶆柊杈撳叆")); + return; + } + redisManager.clearSMSFrequencyLimit(phone, SMSHistory.TYPE_BIND); + } + + try { + UserInfo userInfo = userAccountService.bindPhoneToLogin(phone, key, system.getAppid(), request); + + JSONObject data = new JSONObject(); + data.put("userInfo", UserUtil.filterForClientUser(userInfo)); + out.print(JsonUtil.loadTrueResult(data)); + } catch (UserAccountException e) { + out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); + } catch (Exception e) { + out.print(JsonUtil.loadFalseResult(1, "缁戝畾澶辫触")); + } + } + + /** + * 缁戝畾鐢佃瘽鍙风爜 V2.0.1 寰俊鐧诲綍 + * + * @param acceptData + * @param vcode + * @param phone + * @param out + */ + @RequestMapping(value = "recordBind") + public void recordBind(AcceptData acceptData, Long uid, PrintWriter out) { + if (uid == null || uid <= 0) { + out.print(JsonUtil.loadFalseResult("鐢ㄦ埛id涓虹┖")); + return; + } + + bindRemindService.addBindPhone(uid); + out.print(JsonUtil.loadTrueResult("璁板綍鎴愬姛")); + } + +} -- Gitblit v1.8.0