From 69bee82b81626b82b7f39f0e459e4f56b1699b51 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 13 三月 2019 12:02:16 +0800 Subject: [PATCH] 正式数据库修改 --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserAccountServiceImpl.java | 180 +++++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 129 insertions(+), 51 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserAccountServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserAccountServiceImpl.java index 11ed9b4..f9c37e6 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserAccountServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserAccountServiceImpl.java @@ -4,6 +4,7 @@ import java.io.FileWriter; import java.io.IOException; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -13,24 +14,24 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.yeshi.utils.JsonUtil; +import org.yeshi.utils.tencentcloud.COSManager; import com.google.gson.Gson; import com.qcloud.cos.model.COSObjectSummary; import com.qcloud.cos.model.ObjectListing; -import com.yeshi.fanli.dao.mybatis.AccountDetailsMapper; import com.yeshi.fanli.dao.mybatis.AccountMessageMapper; import com.yeshi.fanli.dao.mybatis.BindingAccountMapper; import com.yeshi.fanli.dao.mybatis.MoneyRecordMapper; -import com.yeshi.fanli.dao.mybatis.PidOrderMapper; -import com.yeshi.fanli.dao.mybatis.ThreeSaleMapper; import com.yeshi.fanli.dao.mybatis.UserConnectHistoryMapper; import com.yeshi.fanli.dao.mybatis.UserInfoMapper; import com.yeshi.fanli.dao.mybatis.hongbao.HongBaoMapper; import com.yeshi.fanli.dao.mybatis.order.OrderItemMapper; import com.yeshi.fanli.dao.mybatis.order.OrderMapper; -import com.yeshi.fanli.entity.bus.user.AccountDetails; import com.yeshi.fanli.entity.bus.user.AccountMessage; import com.yeshi.fanli.entity.bus.user.BindingAccount; +import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode; +import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode.ForbiddenUserIdentifyCodeTypeEnum; import com.yeshi.fanli.entity.bus.user.HongBao; import com.yeshi.fanli.entity.bus.user.LoginResult; import com.yeshi.fanli.entity.bus.user.MoneyRecord; @@ -40,25 +41,22 @@ import com.yeshi.fanli.entity.bus.user.UserConnectHistory; import com.yeshi.fanli.entity.bus.user.UserInfo; import com.yeshi.fanli.entity.bus.user.WeiXinUser; -import com.yeshi.fanli.entity.taobao.PidOrder; import com.yeshi.fanli.exception.UserAccountException; import com.yeshi.fanli.log.LogHelper; -import com.yeshi.fanli.service.inter.hongbao.HongBaoService; +import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce; import com.yeshi.fanli.service.inter.msg.UserAccountMsgNotificationService; +import com.yeshi.fanli.service.inter.user.ForbiddenUserIdentifyCodeService; import com.yeshi.fanli.service.inter.user.SpreadUserImgService; import com.yeshi.fanli.service.inter.user.UserAccountService; +import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.FileUtil; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.TimeUtil; -import com.yeshi.fanli.util.factory.AccountDetailsFactory; import com.yeshi.fanli.util.factory.msg.MsgAccountDetailFactory; import com.yeshi.fanli.util.wx.WXLoginUtil; import net.sf.json.JSONObject; - -import org.yeshi.utils.JsonUtil; -import org.yeshi.utils.tencentcloud.COSManager; @Service public class UserAccountServiceImpl implements UserAccountService { @@ -73,9 +71,6 @@ private UserConnectHistoryMapper userConnectHistoryMapper; @Resource - private AccountDetailsMapper accountDetailsMapper; - - @Resource private HongBaoMapper hongBaoMapper; @Resource @@ -85,13 +80,8 @@ private OrderItemMapper orderItemMapper; @Resource - private ThreeSaleMapper threeSaleMapper; + private ThreeSaleSerivce threeSaleSerivce; - @Resource - private PidOrderMapper pidOrderMapper; - - @Resource - private HongBaoService hongBaoService; @Resource private AccountMessageMapper accountMessageMapper; @@ -103,6 +93,12 @@ @Resource private UserAccountMsgNotificationService userAccountMsgNotificationService; + + @Resource + private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService; + + @Resource + private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService; @Transactional @Override @@ -128,7 +124,20 @@ WeiXinUser weiXinUser = null; switch (loginType) { case 1:// 娣樺疂 + // 鍒ゆ柇娣樺疂鏄惁琚皝绂� + if (!StringUtil.isNullOrEmpty(tbUserInfo.getTaoBaoUid())) { + ForbiddenUserIdentifyCode identifyCode = forbiddenUserIdentifyCodeService.listByTypeAndIdentifyCode( + ForbiddenUserIdentifyCodeTypeEnum.taobaoUid, tbUserInfo.getTaoBaoUid()); + if (identifyCode != null && identifyCode.getEffective() != null && identifyCode.getEffective()) + throw new UserAccountException(Constant.CODE_FORBIDDEN_USER, + Constant.FORBIDDEN_USER_REASON_DESC); + } userInfo = getUserInfoByTaoBaoOpenId(appId, tbUserInfo.getOpenid()); + // 鍒ゆ柇鐢ㄦ埛鏄惁琚垹闄� + if (userInfo != null && userInfo.getState() != null + && (userInfo.getState() == UserInfo.STATE_DELETE_OUT_OF_DATE + || userInfo.getState() == UserInfo.STATE_DELETE)) + userInfo = null; if (userInfo == null) {// 鍘熷厛鐨勮处鍙蜂笉瀛樺湪 userInfo = new UserInfo(); userInfo.setAppId(appId); @@ -160,12 +169,23 @@ if (weiXinUser == null) throw new UserAccountException(1001, "鏃犳硶鑾峰彇鍒板井淇′釜浜轰俊鎭�"); LogHelper.test("寰俊鎺堟潈鐢ㄦ埛淇℃伅锛�" + new Gson().toJson(weiXinUser)); + // 鍒ゆ柇寰俊unionid鏄惁琚皝绂� + ForbiddenUserIdentifyCode identifyCode = forbiddenUserIdentifyCodeService.listByTypeAndIdentifyCode( + ForbiddenUserIdentifyCodeTypeEnum.wxUnionId, weiXinUser.getUnionid()); + if (identifyCode != null && identifyCode.getEffective() != null && identifyCode.getEffective()) + throw new UserAccountException(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC); + userInfo = getUserInfoByWXUnionId(appId, weiXinUser.getUnionid()); + // 鍒ゆ柇鐢ㄦ埛鏄惁琚垹闄� + if (userInfo != null && userInfo.getState() != null + && (userInfo.getState() == UserInfo.STATE_DELETE_OUT_OF_DATE + || userInfo.getState() == UserInfo.STATE_DELETE)) + userInfo = null; // 鐩存帴鐢ㄧ殑寰俊鐧诲綍 if (lastUser == null) { if (userInfo != null) { // 浣垮垎閿�鍏崇郴鐢熸晥 - threeSaleMapper.effectThreeSale(userInfo.getId()); + threeSaleSerivce.effective(userInfo); // 鏇存柊澶村儚涓庢樀绉� UserInfo updateUserInfo = new UserInfo(userInfo.getId()); updateUserInfo.setNickName(weiXinUser.getNickname()); @@ -241,7 +261,7 @@ session.removeAttribute("LAST_LOGIN_USER"); // 浣垮垎閿�鍏崇郴鐢熸晥 - threeSaleMapper.effectThreeSale(userInfo.getId()); + threeSaleSerivce.effective(userInfo); return new LoginResult(LoginResult.TYPE_NORMAL, userInfo); } else {// 涓や釜璐﹀彿鎷ユ湁涓嶅悓鐨刄ID @@ -255,7 +275,7 @@ result.setLessUser(lastUser); // 浣垮垎閿�鍏崇郴鐢熸晥 - threeSaleMapper.effectThreeSale(userInfo.getId()); + threeSaleSerivce.effective(userInfo); return result; } @@ -286,7 +306,19 @@ } } case 3:// 鎵嬫満鍙风爜 + // 鍒ゆ柇鎵嬫満鍙风爜鏄惁琚皝绂� + ForbiddenUserIdentifyCode identifyCode1 = forbiddenUserIdentifyCodeService + .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.phone, phone); + if (identifyCode1 != null && identifyCode1.getEffective() != null && identifyCode1.getEffective()) + throw new UserAccountException(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC); + userInfo = getUserInfoByPhone(appId, phone); + // 鍒ゆ柇鐢ㄦ埛鏄惁琚垹闄� + if (userInfo != null && userInfo.getState() != null + && (userInfo.getState() == UserInfo.STATE_DELETE_OUT_OF_DATE + || userInfo.getState() == UserInfo.STATE_DELETE)) + userInfo = null; + if (userInfo == null) {// 鍘熷厛鐨勮处鍙蜂笉瀛樺湪 userInfo = new UserInfo(); userInfo.setAppId(appId); @@ -338,6 +370,12 @@ WeiXinUser weiXinUser = null; switch (loginType) { case 1:// 娣樺疂 + if (!StringUtil.isNullOrEmpty(tbUserInfo.getTaoBaoUid())) { + ForbiddenUserIdentifyCode identifyCode = forbiddenUserIdentifyCodeService.listByTypeAndIdentifyCode( + ForbiddenUserIdentifyCodeTypeEnum.taobaoUid, tbUserInfo.getTaoBaoUid()); + if (identifyCode != null && identifyCode.getEffective() != null && identifyCode.getEffective()) + throw new UserAccountException(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC); + } userInfo = getUserInfoByTaoBaoOpenId(appId, tbUserInfo.getOpenid()); break; case 2:// 寰俊 @@ -345,12 +383,29 @@ weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code); if (weiXinUser == null) throw new UserAccountException(1001, "鏃犳硶鑾峰彇鍒板井淇′釜浜轰俊鎭�"); + + // 鍒ゆ柇鏄惁琚皝绂� + ForbiddenUserIdentifyCode identifyCode = forbiddenUserIdentifyCodeService + .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.phone, phone); + if (identifyCode != null && identifyCode.getEffective() != null && identifyCode.getEffective()) + throw new UserAccountException(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC); + userInfo = getUserInfoByWXUnionId(appId, weiXinUser.getUnionid()); break; case 3:// 鎵嬫満鍙风爜 + // 鍒ゆ柇鏄惁琚皝绂� + ForbiddenUserIdentifyCode identifyCode1 = forbiddenUserIdentifyCodeService + .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.phone, phone); + if (identifyCode1 != null && identifyCode1.getEffective() != null && identifyCode1.getEffective()) + throw new UserAccountException(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC); userInfo = getUserInfoByPhone(appId, phone); break; } + + // 鍒ゆ柇鐢ㄦ埛鏄惁琚垹闄� + if (userInfo != null && userInfo.getState() != null && (userInfo.getState() == UserInfo.STATE_DELETE_OUT_OF_DATE + || userInfo.getState() == UserInfo.STATE_DELETE)) + userInfo = null; if (userInfo != null) { UserInfo updateUserInfo = new UserInfo(userInfo.getId()); @@ -431,9 +486,9 @@ if (!StringUtil.isNullOrEmpty(mainUser.getPhone()) && !StringUtil.isNullOrEmpty(lessUser.getPhone())) throw new UserAccountException(9, "涓や釜璐﹀彿閮界粦瀹氫簡鎵嬫満鍙风爜锛岃瑙g粦鍏朵腑涓�涓�"); - if (lessUser.getMyHongBao().compareTo(new BigDecimal("20")) >= 0 - && mainUser.getMyHongBao().compareTo(new BigDecimal("20")) > 0) - throw new UserAccountException(10, String.format("璐︽埛ID:%s 鐨勮祫閲戣秴杩�20鍏冿紝涓轰繚璇佽祫閲戝畨鍏ㄨ鑱旂郴瀹㈡湇鎵撻��", lessUser.getId() + "")); + if (lessUser.getMyHongBao().compareTo(new BigDecimal("10")) >= 0 + && mainUser.getMyHongBao().compareTo(new BigDecimal("10")) > 0) + throw new UserAccountException(10, String.format("璐︽埛ID:%s 鐨勮祫閲戣秴杩�10鍏冿紝涓轰繚璇佽祫閲戝畨鍏ㄨ鑱旂郴瀹㈡湇鎵撻��", lessUser.getId() + "")); // 鍒ゅ畾鏄惁缁戝畾浜嗗悓涓�鏀粯瀹� List<BindingAccount> mainUserAccountList = bindingAccountMapper.selectByUid(mainUser.getId()); @@ -509,15 +564,7 @@ // 鏈�2涓垨鑰�2涓互涓婄殑鏂颁汉绾㈠寘 if (addCount - subCount > 1) { // 鎵i櫎涓�涓柊浜虹孩鍖� - AccountDetails accountDetails = new AccountDetails(); - accountDetails.setCreateTime(TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss")); - accountDetails.setExtract(null); - accountDetails.setMoney("-" + list.get(1).getMoney().toString()); - accountDetails.setOrderItem(null); - accountDetails.setTitle(" 璐﹀彿鍚堝苟鎵i櫎閲嶅鏂颁汉绾㈠寘"); - accountDetails.setType(AccountDetailsFactory.TUIKUAN); - accountDetails.setUserInfo(mainUser); - accountDetailsMapper.insertSelective(accountDetails); + // TODO 鎵i櫎鏂颁汉绾㈠寘鎿嶄綔 AccountMessage accountMessage = new AccountMessage(); accountMessage.setContent(" 璐﹀彿鍚堝苟鎵i櫎閲嶅鏂颁汉绾㈠寘" + list.get(1).getMoney().toString() + "鍏�"); @@ -557,7 +604,19 @@ if (StringUtil.isNullOrEmpty(unionId)) throw new UserAccountException(2, "unionId涓虹┖"); - return userInfoMapper.getUserInfoByAppIdAndWXUnionId(appId, unionId); + List<UserInfo> list = userInfoMapper.listByAppIdAndWXUnionId(appId, unionId); + // 鍓旈櫎琚垹闄ゆ帀鐨勭敤鎴� + for (int i = 0; i < list.size(); i++) { + if (list.get(i).getState() == UserInfo.STATE_DELETE + || list.get(i).getState() == UserInfo.STATE_DELETE_OUT_OF_DATE) { + list.remove(i); + i--; + } + } + if (list.size() > 0) + return list.get(list.size() - 1); + else + return null; } /** @@ -572,7 +631,21 @@ throw new UserAccountException(1, "appId涓虹┖"); if (StringUtil.isNullOrEmpty(openId)) throw new UserAccountException(2, "openId涓虹┖"); - return userInfoMapper.getUserInfoByAppIdAndTaoBaoOpenId(appId, openId); + List<UserInfo> list = userInfoMapper.listByAppIdAndTaoBaoOpenId(appId, openId); + + // 鍓旈櫎琚垹闄ゆ帀鐨勭敤鎴� + for (int i = 0; i < list.size(); i++) { + if (list.get(i).getState() == UserInfo.STATE_DELETE + || list.get(i).getState() == UserInfo.STATE_DELETE_OUT_OF_DATE) { + list.remove(i); + i--; + } + } + if (list.size() > 0) + return list.get(list.size() - 1); + else + return null; + } /** @@ -587,7 +660,21 @@ throw new UserAccountException(1, "appId涓虹┖"); if (StringUtil.isNullOrEmpty(phone)) throw new UserAccountException(2, "phone涓虹┖"); - return userInfoMapper.getUserInfoByAppIdAndPhone(appId, phone); + List<UserInfo> list = userInfoMapper.listByAppIdAndPhone(appId, phone); + + // 鍓旈櫎琚垹闄ゆ帀鐨勭敤鎴� + for (int i = 0; i < list.size(); i++) { + if (list.get(i).getState() == UserInfo.STATE_DELETE + || list.get(i).getState() == UserInfo.STATE_DELETE_OUT_OF_DATE) { + list.remove(i); + i--; + } + } + if (list.size() > 0) + return list.get(list.size() - 1); + else + return null; + } private void updateLatestLoginTime(Long uid) { @@ -641,9 +728,6 @@ updateUserInfo.setNickName(Constant.systemCommonConfig.getDefaultNickName() + user.getId()); userInfoMapper.updateByPrimaryKeySelective(updateUserInfo); } - - // 娣诲姞鏂颁汉绾㈠寘 - hongBaoService.setNewUserHongBaoMyBatis(user, 1); } @Override @@ -701,7 +785,7 @@ if (!StringUtil.isNullOrEmpty(user.getOpenid()) && !user.getOpenid().equalsIgnoreCase(tbOpenId)) throw new UserAccountException(5, "褰撳墠璐﹀彿宸茬粡缁戝畾浜嗘窐瀹濓紝璇峰厛瑙g粦"); - //缁戝畾鍚屼竴涓窐瀹濆彿 + // 缁戝畾鍚屼竴涓窐瀹濆彿 if (!StringUtil.isNullOrEmpty(user.getOpenid()) && user.getOpenid().equalsIgnoreCase(tbOpenId)) return; @@ -744,6 +828,8 @@ } userInfoMapper.updateByPrimaryKeySelective(update); + + userExtraTaoBaoInfoService.unBindUid(uid); userAccountMsgNotificationService.unBindingSuccess(uid, MsgAccountDetailFactory.TYPE_TB); } @@ -791,8 +877,7 @@ // 澶囦唤鐢ㄦ埛淇℃伅 UserInfo user = userInfoMapper.selectByPrimaryKey(uid); - // 澶囦唤璧勯噾鏄庣粏 - List<AccountDetails> accountDetailsList = accountDetailsMapper.selectByUid(uid); + // TODO 澶囦唤璧勯噾鏄庣粏 // 澶囦唤绾㈠寘淇℃伅 List<HongBao> hongBaoList = hongBaoMapper.selectByUid(uid); // 澶囦唤璁㈠崟锛屽瓙璁㈠崟淇℃伅 @@ -800,10 +885,8 @@ List<OrderItem> orderItemList = orderItemMapper.selectByUid(uid); // 澶囦唤閭�璇峰叧绯� - List<ThreeSale> threeSaleList = threeSaleMapper.selectByUid(uid); + List<ThreeSale> threeSaleList = new ArrayList<>(); - // 澶囦唤鍒嗕韩璧� - List<PidOrder> pidOrderList = pidOrderMapper.selectByUid(uid); FileWriter fw = null; try { @@ -812,9 +895,6 @@ fw.write("#UserInfo" + "\r\n"); fw.write(JsonUtil.getSimpleGsonWithDate().toJson(user) + "\r\n"); - - fw.write("#AccountDetails" + "\r\n"); - fw.write(JsonUtil.getSimpleGsonWithDate().toJson(accountDetailsList) + "\r\n"); fw.write("#HongBao" + "\r\n"); fw.write(JsonUtil.getSimpleGsonWithDate().toJson(hongBaoList) + "\r\n"); @@ -828,8 +908,6 @@ fw.write("#ThreeSale" + "\r\n"); fw.write(JsonUtil.getSimpleGsonWithDate().toJson(threeSaleList) + "\r\n"); - fw.write("#PidOrder" + "\r\n"); - fw.write(JsonUtil.getSimpleGsonWithDate().toJson(pidOrderList) + "\r\n"); fw.close(); -- Gitblit v1.8.0