| | |
| | | }
|
| | |
|
| | | boolean isupdateRank = true;
|
| | | UserInfoExtra extra = new UserInfoExtra();
|
| | |
|
| | | UserInfoExtra userInfoExtra = userInfoExtraMapper.getInfoExtraByUid(uid);
|
| | | if (userInfoExtra != null && userInfoExtra.getId() != null) {
|
| | |
| | | isupdateRank = false;
|
| | | }
|
| | | }
|
| | | extra.setId(userInfoExtra.getId());
|
| | | } else {
|
| | | userInfoExtra = new UserInfoExtra();
|
| | | userInfoExtra.setUserInfo(new UserInfo(uid));
|
| | | extra.setUserInfo(new UserInfo(uid));
|
| | | }
|
| | |
|
| | | |
| | | // 更新等级
|
| | | if (isupdateRank) {
|
| | | updateRank(userInfoExtra);
|
| | | List<UserRank> listRank = userRankService.getAllRank();
|
| | | if (listRank == null || listRank.size() == 0) {
|
| | | throw new UserInfoExtraException(1, "系统等级不存在");
|
| | | }
|
| | |
|
| | | int selfOrderNum = 0;
|
| | | int sharedOrderNum = 0;
|
| | | int inviteOrderNum = 0;
|
| | | Map<String, Object> map = commonOrderCountService.lastMonthSettleOrderNumber(uid);
|
| | | if (map != null) {
|
| | | // 返利订单
|
| | | if (map.get("totalSelf") != null) {
|
| | | selfOrderNum = Integer.parseInt(map.get("totalSelf").toString());
|
| | | }
|
| | |
|
| | | // 分享订单
|
| | | if (map.get("totalShared") != null) {
|
| | | sharedOrderNum = Integer.parseInt(map.get("totalShared").toString());
|
| | | }
|
| | |
|
| | | // 邀请订单
|
| | | if (map.get("totalInvite") != null) {
|
| | | inviteOrderNum = Integer.parseInt(map.get("totalInvite").toString());
|
| | | }
|
| | | }
|
| | |
|
| | | UserRank rank = null;
|
| | | for (UserRank userRank : listRank) {
|
| | | // 邀请满足
|
| | | Integer inviteNum = userRank.getInviteNum();
|
| | | if (inviteOrderNum >= inviteNum) {
|
| | | rank = userRank;
|
| | | extra.setRankOrderNum(inviteOrderNum);
|
| | | extra.setRankSource(Constant.TYPE_INVITE);
|
| | | }
|
| | |
|
| | | // 分享满足
|
| | | int shareNum = userRank.getShareNum();
|
| | | if (sharedOrderNum >= shareNum) {
|
| | | rank = userRank;
|
| | | extra.setRankOrderNum(sharedOrderNum);
|
| | | extra.setRankSource(Constant.TYPE_SHAER);
|
| | | }
|
| | |
|
| | | // 返利满足
|
| | | int directNum = userRank.getRebateNum();
|
| | | if (selfOrderNum >= directNum) {
|
| | | rank = userRank;
|
| | | extra.setRankOrderNum(selfOrderNum);
|
| | | extra.setRankSource(Constant.TYPE_REBATE);
|
| | | }
|
| | |
|
| | | if (rank != null) {
|
| | | extra.setUserRank(rank);
|
| | | } else {
|
| | | rank = userRank;
|
| | | // 默认最低等级:青铜
|
| | | extra.setUserRank(rank);
|
| | | extra.setRankOrderNum(selfOrderNum);
|
| | | extra.setRankSource(Constant.TYPE_REBATE);
|
| | | break;
|
| | | }
|
| | | }
|
| | |
|
| | | // 等级更新时间 当月1号
|
| | | Calendar calendar1 = Calendar.getInstance();
|
| | | calendar1.set(Calendar.DAY_OF_MONTH, 1);
|
| | | extra.setRankUpdateTime(calendar1.getTime());
|
| | |
|
| | | // 保存等级信息
|
| | | saveUserInfoExtra(extra);
|
| | |
|
| | | // 保存等级变化记录
|
| | | UserRankRecord userRankRecord = new UserRankRecord();
|
| | | userRankRecord.setUid(uid);
|
| | | userRankRecord.setRankId(rank.getId());
|
| | | userRankRecord.setCreateTime(new Date());
|
| | | userRankRecordMapper.insertSelective(userRankRecord);
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | userInfoExtraMapper.insertSelective(userInfoExtra);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public UserInfoExtra updateRank(UserInfoExtra userInfoExtra) throws UserInfoExtraException {
|
| | | UserInfo userInfo = userInfoExtra.getUserInfo();
|
| | | if (userInfo == null) {
|
| | | throw new UserInfoExtraException(1, "用户不存在");
|
| | | }
|
| | |
|
| | | Long uid = userInfo.getId();
|
| | | if (uid == null) {
|
| | | throw new UserInfoExtraException(1, "用户ID不存在");
|
| | | }
|
| | |
|
| | | List<UserRank> listRank = userRankService.getAllRank();
|
| | | if (listRank == null || listRank.size() == 0) {
|
| | | throw new UserInfoExtraException(1, "系统等级不存在");
|
| | | }
|
| | |
|
| | | int selfOrderNum = 0;
|
| | | int sharedOrderNum = 0;
|
| | | int inviteOrderNum = 0;
|
| | | Map<String, Object> map = commonOrderCountService.lastMonthSettleOrderNumber(uid);
|
| | | if (map != null) {
|
| | | // 返利订单
|
| | | if (map.get("totalSelf") != null) {
|
| | | selfOrderNum = Integer.parseInt(map.get("totalSelf").toString());
|
| | | }
|
| | |
|
| | | // 分享订单
|
| | | if (map.get("totalShared") != null) {
|
| | | sharedOrderNum = Integer.parseInt(map.get("totalShared").toString());
|
| | | }
|
| | |
|
| | | // 邀请订单
|
| | | if (map.get("totalInvite") != null) {
|
| | | inviteOrderNum = Integer.parseInt(map.get("totalInvite").toString());
|
| | | }
|
| | | }
|
| | |
|
| | | UserRank rank = null;
|
| | | for (UserRank userRank : listRank) {
|
| | | // 邀请满足
|
| | | Integer inviteNum = userRank.getInviteNum();
|
| | | if (inviteOrderNum >= inviteNum) {
|
| | | rank = userRank;
|
| | | userInfoExtra.setRankOrderNum(inviteOrderNum);
|
| | | userInfoExtra.setRankSource(Constant.TYPE_INVITE);
|
| | | }
|
| | |
|
| | | // 分享满足
|
| | | int shareNum = userRank.getShareNum();
|
| | | if (sharedOrderNum >= shareNum) {
|
| | | rank = userRank;
|
| | | userInfoExtra.setRankOrderNum(sharedOrderNum);
|
| | | userInfoExtra.setRankSource(Constant.TYPE_SHAER);
|
| | | }
|
| | |
|
| | | // 返利满足
|
| | | int directNum = userRank.getRebateNum();
|
| | | if (selfOrderNum >= directNum) {
|
| | | rank = userRank;
|
| | | userInfoExtra.setRankOrderNum(selfOrderNum);
|
| | | userInfoExtra.setRankSource(Constant.TYPE_REBATE);
|
| | | }
|
| | |
|
| | | if (rank != null) {
|
| | | userInfoExtra.setUserRank(rank);
|
| | | } else {
|
| | | rank = userRank;
|
| | | // 默认最低等级:青铜
|
| | | userInfoExtra.setUserRank(rank);
|
| | | userInfoExtra.setRankOrderNum(selfOrderNum);
|
| | | userInfoExtra.setRankSource(Constant.TYPE_REBATE);
|
| | | break;
|
| | | }
|
| | | }
|
| | |
|
| | | // 等级更新时间 当月1号
|
| | | Calendar calendar1 = Calendar.getInstance();
|
| | | calendar1.set(Calendar.DAY_OF_MONTH, 1);
|
| | | userInfoExtra.setRankUpdateTime(calendar1.getTime());
|
| | |
|
| | | // 保存信息并返回
|
| | | saveUserInfoExtra(userInfoExtra);
|
| | |
|
| | | UserRankRecord userRankRecord = new UserRankRecord();
|
| | | userRankRecord.setUid(uid);
|
| | | userRankRecord.setRankId(rank.getId());
|
| | | userRankRecord.setCreateTime(new Date());
|
| | | userRankRecordMapper.insertSelective(userRankRecord);
|
| | |
|
| | | return userInfoExtra;
|
| | | }
|
| | |
|
| | | @Override
|
| | | public UserInfoExtra saveUserInfoExtra(UserInfoExtra userInfoExtra) throws UserInfoExtraException {
|
| | |
| | | }
|
| | |
|
| | | @Override
|
| | | @Transactional
|
| | | public UserInfoExtra getByUidForUpdate(Long uid) {
|
| | | return userInfoExtraMapper.getByUidForUpdate(uid);
|
| | | }
|
| | |
|
| | | @Override
|
| | | @Transactional
|
| | | public void updateGoldCoin(Long id, Integer goldCoin) {
|
| | | userInfoExtraMapper.updateGoldCoin(id, goldCoin);
|
| | | }
|
| | | |
| | | @Override
|
| | | public void addGoldCoinByUid(Long uid, Integer goldCoin) {
|
| | | userInfoExtraMapper.addGoldCoinByUid(uid, goldCoin);
|
| | | }
|
| | | |
| | | @Override
|
| | | public void updateByPrimaryKeySelective(UserInfoExtra record) {
|
| | | userInfoExtraMapper.updateByPrimaryKeySelective(record);
|
| | | }
|
| | |
|
| | | @Override
|
| | |
| | | try {
|
| | | String inviteCode = createInviteCode(uid);
|
| | | if (!StringUtil.isNullOrEmpty(inviteCode)) {
|
| | | userInfoExtra.setUserInfo(new UserInfo(uid));
|
| | | userInfoExtra.setInviteCode(inviteCode);
|
| | | |
| | | saveUserInfoExtra(userInfoExtra);
|
| | | |
| | | UserInfoExtra extra= new UserInfoExtra();
|
| | | extra.setId(userInfoExtra.getId());
|
| | | extra.setInviteCode(inviteCode);
|
| | | userInfoExtraMapper.updateByPrimaryKeySelective(extra);
|
| | | return inviteCode;
|
| | | }
|
| | | } catch (Exception e) {
|