From 16677ca85d81072629eec261b7e4565b22086e6f Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 12 五月 2020 21:00:28 +0800
Subject: [PATCH] 京东/拼多多订单添加子来源
---
fanli/src/main/java/com/yeshi/fanli/service/impl/user/SpreadUserImgServiceImpl.java | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 169 insertions(+), 2 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/SpreadUserImgServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/SpreadUserImgServiceImpl.java
index 05da839..9a6b6e2 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/SpreadUserImgServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/SpreadUserImgServiceImpl.java
@@ -23,6 +23,8 @@
import com.yeshi.fanli.entity.bus.invite.SpreadImg;
import com.yeshi.fanli.entity.bus.invite.SpreadUserImg;
import com.yeshi.fanli.entity.bus.user.UserInfo;
+import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.service.inter.config.SpreadImgService;
import com.yeshi.fanli.service.inter.user.QrCodeService;
import com.yeshi.fanli.service.inter.user.SpreadUserImgService;
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
@@ -48,6 +50,9 @@
@Resource
private UserInfoExtraService userInfoExtraService;
+
+ @Resource
+ private SpreadImgService spreadImgService;
@Override
public void addUserInviteImg(Long uid, String imgUrl) {
@@ -238,6 +243,169 @@
return imgList;
}
+
+ @Override
+ public List<String> getUserSpreadImgToPage(Long uid, int page, int count, HttpServletRequest request) {
+ // 鏌ヨ绯荤粺鐨勬帹骞垮浘
+ List<SpreadImg> spreadImgList = spreadImgService.listAll();
+ //鐢ㄦ埛鐨勫凡鐢熸垚鎺ㄥ箍鍥�
+ List<SpreadUserImg> spreadUserImgList = spreadUserImgMapper.listByUid(uid);
+
+ for (SpreadUserImg img : spreadUserImgList) {
+ img.setMd5(getSpreadUserImgMD5(img.getUrl()));
+ }
+
+ for (SpreadImg img : spreadImgList) {
+ img.setMd5(getSpreadImgMD5(img.getUrl()));
+ }
+
+ Comparator<SpreadImg> cmSpreadImg = new Comparator<SpreadImg>() {
+ @Override
+ public int compare(SpreadImg o1, SpreadImg o2) {
+ return o1.getMd5().compareTo(o2.getMd5());
+ }
+ };
+
+ Comparator<SpreadUserImg> cmUserSpreadImg = new Comparator<SpreadUserImg>() {
+ @Override
+ public int compare(SpreadUserImg o1, SpreadUserImg o2) {
+ return o1.getMd5().compareTo(o2.getMd5());
+ }
+ };
+ Collections.sort(spreadUserImgList, cmUserSpreadImg);
+ Collections.sort(spreadImgList, cmSpreadImg);
+
+ boolean equal = true;
+ if (spreadUserImgList.size() != spreadImgList.size()) {
+ equal = false;
+ } else {
+ for (int i = 0; i < spreadUserImgList.size(); i++) {
+ if (!spreadUserImgList.get(i).getMd5().equalsIgnoreCase(spreadImgList.get(i).getMd5())) {
+ equal = false;
+ break;
+ }
+ }
+ }
+
+ // 鍒嗛〉澶勭悊
+ int start = 0;
+ if (page > 1)
+ start = 3;
+
+ List<String> imgList = new ArrayList<>();
+ if (equal) {
+ for (; start < spreadUserImgList.size() && start < count; start++) {
+ imgList.add(spreadUserImgList.get(start).getUrl());
+ }
+ return imgList;
+ }
+
+ String path = null;
+ if (page == 1) {
+ // 鍒犻櫎澶氫綑鍘嗗彶鏁版嵁
+ for (int j = 0; j < spreadUserImgList.size(); j++) {
+ boolean needRemove = true;
+ SpreadUserImg userImg = spreadUserImgList.get(j);
+ String imgMD5User = getSpreadUserImgMD5(userImg.getUrl());
+
+ for (int i = 0; i < spreadImgList.size(); i++) {
+ String imgMD5 = getSpreadImgMD5(spreadImgList.get(i).getUrl());
+ if (imgMD5.equalsIgnoreCase(imgMD5User)) {
+ needRemove = false;
+ break;
+ }
+ }
+
+ if (needRemove) {
+ spreadUserImgMapper.deleteByPrimaryKey(userImg.getId());
+ spreadUserImgList.remove(j);
+ j--;
+ }
+ }
+
+ // 缂撳瓨璺緞
+ String rootPath = request.getSession().getServletContext().getRealPath("/").replace("\\", "/");
+ String projectName = request.getContextPath();
+ path = rootPath.replace(projectName, "/temp");
+ File f = new File(path);
+ if (!f.exists())
+ f.mkdirs();
+ }
+
+ // 鐢ㄦ埛澶村儚
+ UserInfo user = userInfoService.selectByPKey(uid);
+ String portrait = user.getPortrait();
+ if (StringUtil.isNullOrEmpty(portrait)) {
+ portrait = Constant.systemCommonConfig.getDefaultPortrait();
+ }
+
+ // 閭�璇风爜
+ String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
+
+
+ for (; start < spreadImgList.size() && start < count; start++) {
+ String url = null;
+ SpreadImg spreadImg = spreadImgList.get(start);
+ String imgMD5 = getSpreadImgMD5(spreadImg.getUrl());
+
+ for (int j = 0; j < spreadUserImgList.size(); j++) {
+ String imgMD5User = getSpreadUserImgMD5(spreadUserImgList.get(j).getUrl());
+ if (imgMD5.equalsIgnoreCase(imgMD5User)) {
+ url = spreadUserImgList.get(j).getUrl();
+ break;
+ }
+ }
+
+ if (!StringUtil.isNullOrEmpty(url)) {
+ imgList.add(url);
+ } else {
+ url = getInviteImgUrl(uid, portrait, inviteCode, imgMD5, spreadImg.getUrl(), path);
+ if (!StringUtil.isNullOrEmpty(url)) {
+ addUserInviteImg(uid, url);
+ imgList.add(url);
+ }
+ }
+ }
+
+ return imgList;
+ }
+
+ /**
+ * 閭�璇峰浘鐢诲浘
+ * @param uid
+ * @param portrait
+ * @param inviteCode
+ * @param urlMd5
+ * @param url
+ * @param path
+ * @return
+ */
+ private String getInviteImgUrl (Long uid, String portrait, String inviteCode, String urlMd5, String url, String path) {
+ try {
+ InputStream inputStream = null;
+ String cachePath = path + urlMd5;
+ File file = new File(cachePath);
+ if (file.exists()) {
+ inputStream = new FileInputStream(file);
+ } else {
+ // 缃戠粶涓嬭浇
+ InputStream input = HttpUtil.getAsInputStream(url);
+ // 缂撳瓨鏈湴
+ FileUtil.saveAsFile(input, cachePath);
+ // 鑾峰彇娴�
+ inputStream = new FileInputStream(file);
+ }
+
+ return qrCodeService.drawInviteQrCodeNew(inputStream, urlMd5, uid, portrait, null, null, null, inviteCode);
+ } catch (Exception e) {
+ LogHelper.errorDetailInfo(e);
+ }
+ return null;
+ }
+
+
+
+
@Override
public String getUserSpreadImg(Long uid, String bgImg) {
// 鏌ヨ鏄惁瀛樺湪
@@ -302,6 +470,5 @@
String rootPath=Thread.currentThread().getContextClassLoader().getResource("").getPath();
rootPath = rootPath.substring(1,rootPath.indexOf("WEB-INF"));
return rootPath;
- }
-
+ }
}
--
Gitblit v1.8.0