From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 25 二月 2025 16:41:22 +0800 Subject: [PATCH] 淘宝转链接口更新 --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/PreviewInfoServiceImpl.java | 186 ++++++++++++++++++++++++++++++++++------------ 1 files changed, 137 insertions(+), 49 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/PreviewInfoServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/PreviewInfoServiceImpl.java index 0e1f246..3cc68f7 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/PreviewInfoServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/PreviewInfoServiceImpl.java @@ -1,6 +1,6 @@ package com.yeshi.fanli.service.impl.user; -import java.io.File; +import java.io.InputStream; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collections; @@ -12,8 +12,7 @@ import javax.annotation.Resource; import org.springframework.stereotype.Service; -import org.springframework.web.multipart.MultipartFile; -import org.yeshi.utils.FileUtil; +import org.yeshi.utils.entity.FileUploadResult; import org.yeshi.utils.tencentcloud.COSManager; import com.google.gson.Gson; @@ -23,16 +22,17 @@ import com.yeshi.fanli.entity.bus.user.Extract; import com.yeshi.fanli.entity.bus.user.PreviewInfo; import com.yeshi.fanli.entity.bus.user.PreviewInfo.PreviewEnum; +import com.yeshi.fanli.entity.bus.user.ThreeSaleDetail; import com.yeshi.fanli.exception.user.PreviewInfoException; import com.yeshi.fanli.service.inter.money.extract.BindingAccountService; import com.yeshi.fanli.service.inter.user.PreviewInfoService; -import com.yeshi.fanli.util.FilePathEnum; +import com.yeshi.fanli.service.inter.user.invite.ThreeSaleDetailService; +import com.yeshi.fanli.util.ImageUtil; +import com.yeshi.fanli.util.RedisManager; import com.yeshi.fanli.util.StringUtil; -import com.yeshi.fanli.util.TimeUtil; +import org.yeshi.utils.TimeUtil; import com.yeshi.fanli.vo.money.MoneyStatisticVO; import com.yeshi.fanli.vo.user.MineInfoVO; - -import net.coobird.thumbnailator.Thumbnails; @Service public class PreviewInfoServiceImpl implements PreviewInfoService { @@ -43,20 +43,57 @@ @Resource private BindingAccountService bindingAccountService; + @Resource + private RedisManager redisManager; + @Resource + private ThreeSaleDetailService threeSaleDetailService; + + @Override - public void save(Long uid, PreviewEnum type, String content) { - String id = StringUtil.Md5(uid + "#" + type.name()); - + public void save(Long createUid, Long preUid, PreviewEnum type, String content) { + String id = StringUtil.Md5(createUid + "#" + type.name()); PreviewInfo info = new PreviewInfo(); info.setId(id); - info.setUid(uid); + info.setUid(preUid); + info.setCreateUid(createUid); info.setContent(content); info.setType(type); info.setUpdateTime(new Date()); previewInfoDao.save(info); + + if (type == PreviewEnum.extractRecord || type == PreviewEnum.moneyArrival) { + return; + } + + // redis缂撳瓨 + if (StringUtil.isNullOrEmpty(content)) { + removePreview(preUid, type); + } else { + adddPreview(preUid, type, content); + } } + + // 缂撳瓨10鍒嗛挓 + private void adddPreview(Long uid, PreviewEnum type, String content) { + String key = StringUtil.Md5("preview" + uid + "#" + type.name()); + redisManager.cacheCommonString(key, content, 60 * 10); + } + + // 缂撳瓨10鍒嗛挓 + private void removePreview(Long uid, PreviewEnum type) { + String key = StringUtil.Md5("preview" + uid + "#" + type.name()); + redisManager.removeCommonString(key); + } + + + @Override + public String getRedisContent(Long uid, PreviewEnum previewEnum) { + String key = StringUtil.Md5("preview" + uid + "#" + previewEnum.name()); + return redisManager.getCommonString(key); + } + @Override public PreviewInfo get(Long uid, PreviewEnum previewEnum) { @@ -68,7 +105,7 @@ public void saveMoneyInfo(Long uid, MoneyStatisticVO vo) throws PreviewInfoException { if (vo == null) throw new PreviewInfoException(1, "璇峰畬鍠勯〉闈俊鎭�"); - save(uid, PreviewEnum.moneyInfo, new Gson().toJson(vo)); + save(uid, uid, PreviewEnum.moneyInfo, new Gson().toJson(vo)); } @@ -77,25 +114,29 @@ BindingAccount alipay = bindingAccountService.getBindingAccountByUidAndType(uid, BindingAccount.TYPE_ALIPAY); if (alipay == null) throw new PreviewInfoException(1, "鏈粦瀹氭彁鐜拌处鍙�"); + if (money == null || money.compareTo(BigDecimal.ZERO) <= 0) + throw new PreviewInfoException(1, "璇疯緭鍏ユ纭殑閲戦"); if (StringUtil.isNullOrEmpty(time)) throw new PreviewInfoException(1, "鎻愮幇鏃堕棿涓嶈兘涓虹┖"); - if (money.compareTo(BigDecimal.ZERO) <= 0) - throw new PreviewInfoException(1, "鎻愮幇閲戦涓嶈兘灏忎簬0"); + + Date receiveTime = TimeUtil.parseYYYYMMDD_HHMM(time); + if (receiveTime == null) + throw new PreviewInfoException(1, "璇疯緭鍏ユ纭殑鏃堕棿鏍煎紡"); + Gson gson = new Gson(); - List<Extract> list = null; + List<Extract> list = new ArrayList<Extract>(); Extract extract = new Extract(); extract.setName(alipay.getName()); extract.setAccount(alipay.getAccount()); extract.setMoney(money); - extract.setReceiveTime(TimeUtil.parseDotCommon(time)); + extract.setReceiveTime(receiveTime); extract.setId(java.lang.System.currentTimeMillis()); String id = StringUtil.Md5(uid + "#" + PreviewEnum.extractRecord.name()); PreviewInfo previewInfo = previewInfoDao.get(id); if (previewInfo == null) { - list = new ArrayList<Extract>(); list.add(extract); } else { String content = previewInfo.getContent(); @@ -113,13 +154,35 @@ Comparator<Extract> cm = new Comparator<Extract>() { @Override public int compare(Extract o1, Extract o2) { - return (int) (o2.getReceiveTime().getTime() - o1.getReceiveTime().getTime()); + if (o2.getReceiveTime().getTime() > o1.getReceiveTime().getTime()) { + return 1; + } else { + return -1; + } } }; Collections.sort(list, cm); } } - save(uid, PreviewEnum.extractRecord, gson.toJson(list)); + save(uid, uid, PreviewEnum.extractRecord, gson.toJson(list)); + } + + + + @Override + public void previewExtractRecord(Long uid) throws PreviewInfoException{ + String id = StringUtil.Md5(uid + "#" + PreviewEnum.extractRecord.name()); + PreviewInfo previewInfo = previewInfoDao.get(id); + if (previewInfo == null) { + throw new PreviewInfoException(1, "璇锋坊鍔犳彁鐜拌褰曚俊鎭�"); + } + + String content = previewInfo.getContent(); + if (StringUtil.isNullOrEmpty(content)) { + throw new PreviewInfoException(1, "璇锋坊鍔犳彁鐜拌褰曚俊鎭�"); + } + + adddPreview(uid, PreviewEnum.extractRecord, content); } @@ -149,53 +212,78 @@ break; } } - save(uid, PreviewEnum.extractRecord, gson.toJson(list)); + + save(uid, uid, PreviewEnum.extractRecord, gson.toJson(list)); + + // 鍙栨秷棰勮 + removePreview(uid, PreviewEnum.extractRecord); } @Override - public void saveMineInfo(MineInfoVO infoVO, MultipartFile file) throws Exception { + public void saveMineInfo(MineInfoVO infoVO) throws PreviewInfoException { Long uid = infoVO.getUid(); - if (file != null) { - // 璋锋瓕鍘嬬缉鍥剧墖 - String targetPath = FileUtil.getCacheDir() + "/preview" + uid + "_" + System.currentTimeMillis()+ ".jpg"; - Thumbnails.of(file.getInputStream()).size(200, 200).toFile(targetPath); - // 鎵ц涓婁紶 - String filePath =FilePathEnum.userPreview.getPath() + UUID.randomUUID().toString().replace("-", "") + ".jpg"; - String fileLink = COSManager.getInstance().uploadFile(new File(targetPath), filePath).getUrl(); - // 鍒犻櫎鏈湴鍥剧墖 - if (new File(targetPath).exists()) { - new File(targetPath).delete(); - } - infoVO.setPortrait(fileLink); - - // 鍒犻櫎涔嬪墠涓婁紶鍥� - String id = StringUtil.Md5(uid + "#" + PreviewEnum.mineInfo.name()); - PreviewInfo previewInfo = previewInfoDao.get(id); - if (previewInfo != null && !StringUtil.isNullOrEmpty(previewInfo.getContent())) { - MineInfoVO dto = new Gson().fromJson(previewInfo.getContent(), MineInfoVO.class); - if (dto != null && StringUtil.isNullOrEmpty(dto.getPortrait())); - COSManager.getInstance().deleteFile(dto.getPortrait()); - } + Long preUid = infoVO.getPreUid(); + if (uid == null || preUid == null) + throw new PreviewInfoException(1, "璇峰畬鍠勬墍鏈夋暟鎹�"); + + if (uid.longValue() != preUid.longValue()) { + // preUid 蹇呴』鏄笅绾� + ThreeSaleDetail detail = threeSaleDetailService.getByBossUidAndWorkerUid(uid, preUid); + if (detail == null) + throw new PreviewInfoException(1, preUid + "涓嶆槸鎮ㄧ殑涓嬬骇"); } + + if (StringUtil.isNullOrEmpty(infoVO.getSelfRebate()) || StringUtil.isNullOrEmpty(infoVO.getShareBonus()) + || StringUtil.isNullOrEmpty(infoVO.getTeamBonus())) { + throw new PreviewInfoException(1, "璇峰畬鍠勬墍鏈夋暟鎹�"); + } + Gson gson = new Gson(); - save(uid, PreviewEnum.mineInfo, gson.toJson(infoVO)); + save(uid, preUid, PreviewEnum.mineInfo, gson.toJson(infoVO)); } @Override - public String saveMoneyArrival(Long uid, BigDecimal money, String time,String orderNo) throws PreviewInfoException { + public String saveMoneyArrival(Long uid, BigDecimal money, String time,String orderNo, String platform) + throws PreviewInfoException,Exception { if (uid == null ) throw new PreviewInfoException(1, "璇峰厛鐧诲綍"); if (money == null ) throw new PreviewInfoException(1, "璇疯緭鍏ラ噾棰�"); + if(StringUtil.isNullOrEmpty(orderNo)) + throw new PreviewInfoException(1, "璇疯緭鍏ヨ鍗曞彿"); if(StringUtil.isNullOrEmpty(time)) throw new PreviewInfoException(1, "璇疯緭鍏ュ垱寤烘椂闂�"); - if(StringUtil.isNullOrEmpty(time)) - throw new PreviewInfoException(1, "璇疯緭鍏ヨ鍗曞彿"); - String content = ""; // TODO - // save(uid, PreviewEnum.moneyArrival, gson.toJson(infoVO)); - return content; + Date date = TimeUtil.parseYYYYMMDD_HHMM(time); + if (date == null) + throw new PreviewInfoException(1, "璇疯緭鍏ユ纭殑鏃堕棿鏍煎紡"); + + InputStream drawStream = null; + if ("ios".equalsIgnoreCase(platform)) { + drawStream = ImageUtil.drawAlipayIOS(money, orderNo, time); + } else { + drawStream = ImageUtil.drawAlipayAndroid(money, orderNo, time); + } + + if (drawStream == null) + throw new PreviewInfoException(1, "棰勮鐢熸垚澶辫触"); + + // 涓婁紶鏂囦欢 + String uuid = UUID.randomUUID().toString().replace("-", ""); + String upPath = "/user/img/preview/" + uuid + "_" + System.currentTimeMillis() + ".png"; + FileUploadResult result = COSManager.getInstance().uploadInputStream(drawStream, upPath); + if (result == null) { + throw new PreviewInfoException(1, "棰勮鐢熸垚澶辫触"); + } + + // 淇濆瓨淇℃伅 + save(uid, uid, PreviewEnum.moneyArrival, result.getUrl()); + + return result.getUrl(); } } + + + -- Gitblit v1.8.0