From fe879975a3e8a0a1aa280fb839e02d159bfbcff8 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 27 八月 2019 18:04:38 +0800 Subject: [PATCH] 金币任务多次获取bug修改 --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInfoServiceImpl.java | 125 ++++++++++++++++++++++++++++++----------- 1 files changed, 91 insertions(+), 34 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInfoServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInfoServiceImpl.java index 99b30c6..38898ff 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInfoServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInfoServiceImpl.java @@ -1,5 +1,6 @@ package com.yeshi.fanli.service.impl.user; +import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.Serializable; @@ -19,11 +20,14 @@ import org.hibernate.Query; import org.hibernate.SQLQuery; import org.hibernate.Session; +import org.springframework.context.annotation.Lazy; +import org.springframework.core.task.TaskExecutor; import org.springframework.orm.hibernate4.HibernateCallback; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; +import org.yeshi.utils.FileUtil; import org.yeshi.utils.HttpUtil; import org.yeshi.utils.NumberUtil; import org.yeshi.utils.tencentcloud.COSManager; @@ -40,6 +44,7 @@ import com.yeshi.fanli.entity.bus.user.InviteUser; import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo; import com.yeshi.fanli.entity.bus.user.UserInfo; +import com.yeshi.fanli.entity.bus.user.UserInfoModifyRecord.ModifyTypeEnum; import com.yeshi.fanli.entity.bus.user.WeiXinUser; import com.yeshi.fanli.entity.system.BusinessSystem; import com.yeshi.fanli.exception.ThreeSaleException; @@ -49,8 +54,12 @@ import com.yeshi.fanli.service.inter.count.HongBaoV2CountService; import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce; import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionAuthRecordService; +import com.yeshi.fanli.service.inter.user.BindingAccountService; +import com.yeshi.fanli.service.inter.user.ForbiddenUserIdentifyCodeService; +import com.yeshi.fanli.service.inter.user.SpreadUserImgService; import com.yeshi.fanli.service.inter.user.UserActiveLogService; import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService; +import com.yeshi.fanli.service.inter.user.UserInfoModifyRecordService; import com.yeshi.fanli.service.inter.user.UserInfoService; import com.yeshi.fanli.service.inter.user.UserRankService; import com.yeshi.fanli.util.Constant; @@ -62,8 +71,13 @@ import com.yeshi.fanli.util.wx.WXLoginUtil; import com.yeshi.fanli.vo.user.UserInfoVO; +import net.coobird.thumbnailator.Thumbnails; + @Service public class UserInfoServiceImpl implements UserInfoService { + + @Resource(name = "taskExecutor") + private TaskExecutor executor; @Resource private UserInfoDao userInfoDao; @@ -109,6 +123,20 @@ @Resource private TaoBaoUnionAuthRecordService taoBaoUnionAuthRecordService; + + @Resource + private SpreadUserImgService spreadUserImgService; + + @Resource + private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService; + + @Resource + private BindingAccountService bindingAccountService; + + @Lazy + @Resource + private UserInfoModifyRecordService userInfoModifyRecordService; + public UserInfo getUserByLoginTypeAndOpenId(int loginType, String openid, String appid) { List<UserInfo> list = null; @@ -703,17 +731,23 @@ userInfoVO.setLastLoginTime(null); } - /* - * 鏄剧ず鐢ㄦ埛寰俊 娣樺疂 鑰佺増鏈瓨鍦� String wxUnionId = userInfoVO.getWxUnionId(); if - * (wxUnionId == null || wxUnionId.trim().length() == 0) { - * userInfoVO.setWxName(null); } - * - * String taoBaoUid = userInfoVO.getTaoBaoUid(); if (taoBaoUid == null - * || taoBaoUid.trim().length() == 0) { userInfoVO.setTbName(null); } - */ + + //鏄剧ず鐢ㄦ埛寰俊 娣樺疂 鑰佺増鏈瓨鍦� + String wxUnionId = userInfoVO.getWxUnionId(); + if (wxUnionId == null || wxUnionId.trim().length() == 0) { + userInfoVO.setWxName(null); + } + + // 鏄惁缁戝畾鏀粯瀹濓紙璐拱 + 鍒嗕韩鏉冮檺锛� + String taoBaoUid = userInfoVO.getTaoBaoUid(); + String tbSpecialId = userInfoVO.getTbSpecialId(); + String tbRelationId = userInfoVO.getTbRelationId(); + if (StringUtil.isNullOrEmpty(taoBaoUid) || StringUtil.isNullOrEmpty(tbSpecialId) || StringUtil.isNullOrEmpty(tbRelationId)) { + userInfoVO.setTbName(null); + userInfoVO.setTaoBaoUid(null); + } Long uid = userInfoVO.getId(); - /* 缁戝畾鏀舵璐﹀彿淇℃伅 */ List<BindingAccount> account = bindingAccountMapper.selectByUid(uid); if (account != null && account.size() > 0) { @@ -910,44 +944,67 @@ } @Override - public void uploadPortrait(MultipartFile file,Long uid) throws UserInfoException, IOException { - + public void uploadPortrait(MultipartFile file, Long uid) throws UserInfoException, IOException { + UserInfo userInfo = userInfoMapper.selectByPKey(uid); - if(userInfo == null) { + if (userInfo == null) { throw new UserInfoException(1, "鐢ㄦ埛涓嶅瓨鍦�"); } - + + // 璋锋瓕鍘嬬缉鍥剧墖 + String targetPath = FileUtil.getCacheDir() + "/uploadPortrait_" + uid + "_" + System.currentTimeMillis() + + ".jpg"; + Thumbnails.of(file.getInputStream()).size(200, 200).toFile(targetPath); + + // 鎵ц涓婁紶 + String filePath = "/img/user/" + UUID.randomUUID().toString().replace("-", "") + ".jpg"; + String fileLink = COSManager.getInstance().uploadFile(new File(targetPath), filePath).getUrl(); + + // 鍒犻櫎鏈湴鍥剧墖 + if (new File(targetPath).exists()) { + new File(targetPath).delete(); + } + + // 鍘熷ご鍍� String portrait = userInfo.getPortrait(); - if (portrait != null && portrait.trim().length() > 0 && portrait.contains("/img/user/")) { + + // 鏇存柊淇℃伅 + userInfo.setPortrait(fileLink); + userInfoMapper.updateByPrimaryKeySelective(userInfo); + + // 鍒犻櫎鍘熷ご鍍� + if (!StringUtil.isNullOrEmpty(portrait) && portrait.contains("/img/user/")) { COSManager.getInstance().deleteFile(portrait); } + userInfoModifyRecordService.addModifyRecord(uid, ModifyTypeEnum.portrait, fileLink); - // 鏂囦欢瑙f瀽 - InputStream inputStream = file.getInputStream(); - String contentType = file.getContentType(); - String type = contentType.substring(contentType.indexOf("/") + 1); - - // 鏂囦欢璺緞 - String filePath="/img/user/"+UUID.randomUUID().toString().replace("-", "") + "." + type; - // 鎵ц涓婁紶 - String fileLink= COSManager.getInstance().uploadFile(inputStream, filePath).getUrl(); - - userInfo.setPortrait(fileLink); - userInfoMapper.updateByPrimaryKey(userInfo); + executor.execute(new Runnable() { + @Override + public void run() { + try { + // 鍒犻櫎鍒嗕韩澶村儚淇℃伅 + spreadUserImgService.deleteImgUrl(uid); + } catch (Exception e) { + try { + LogHelper.errorDetailInfo(e); + } catch (Exception e1) { + e1.printStackTrace(); + } + } + } + }); } - - + @Override public void saveUserInfo(String nickName, Long uid) throws UserInfoException { UserInfo userInfo = userInfoMapper.selectByPKey(uid); - if(userInfo == null) { + if (userInfo == null) { throw new UserInfoException(1, "鐢ㄦ埛涓嶅瓨鍦�"); } - - UserInfo updateInfo = new UserInfo(); - updateInfo.setId(userInfo.getId()); - updateInfo.setNickName(nickName); - userInfoMapper.updateByPrimaryKeySelective(updateInfo); + + userInfo.setNickName(nickName); + userInfoMapper.updateByPrimaryKeySelective(userInfo); } + } -- Gitblit v1.8.0