Merge remote-tracking branch 'origin/master'
| | |
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | | |
| | | |
| | | |
| | | /**
|
| | | * 插入邀请素材
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "saveInvite")
|
| | | public void saveInvite(InviteMaterial inviteMaterial, PrintWriter out) {
|
| | | try {
|
| | | inviteMaterial.setState(0);
|
| | | inviteMaterialService.insert(inviteMaterial);
|
| | | JsonUtil.printMode(out, null, JsonUtil.loadTrueResult("上传成功"));
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, null, JsonUtil.loadFalseResult("上传失败"));
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | | |
| | | |
| | | /**
|
| | | * 插入邀请素材
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "insertTimeInvite")
|
| | | public void insertTimeInvite(PrintWriter out) {
|
| | | try {
|
| | | dynamicInfoService.insertTimeInvite();
|
| | | JsonUtil.printMode(out, null, JsonUtil.loadTrueResult("操作成功"));
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, null, JsonUtil.loadFalseResult("操作失败"));
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | data.put("title", title);
|
| | |
|
| | | } else { // 有图分享
|
| | | |
| | | // 邀请链接
|
| | | String shortLink = HttpUtil.getShortLink("http://" + Constant.wxGZConfig.getLoginHost() + "/" |
| | | + Constant.systemCommonConfig.getProjectName() + "/client/threeShareNew?uid=" + uid);
|
| | | data.put("inviteLink", shortLink);
|
| | | data.put("inviteCode", inviteCode);
|
| | | data.put("helpLink", configService.get("invite_help_link"));
|
| | | |
| | | |
| | | // 邀请背景图片
|
| | | List<GoodsPicture> imgs = dynamicInfo.getImgs();
|
| | | String bgUrl = imgs.get(0).getUrl();
|
| | | String bgUrl = imgs.get(0).getUrlOriginal();
|
| | | if (StringUtil.isNullOrEmpty(bgUrl)) {
|
| | | out.print(JsonUtil.loadFalseResult("图片路径不存在"));
|
| | | return;
|
| | | }
|
| | | |
| | | // 用户信息
|
| | | UserInfo userInfo = userInfoService.selectByPKey(uid);
|
| | | String portrait = userInfo.getPortrait();
|
| | | // 画邀请图片
|
| | | if (StringUtil.isNullOrEmpty(dynamicInfo.getInviteMaterialId())) {
|
| | | String imgLink = spreadUserImgService.getInviteImg(bgUrl,uid, portrait, inviteCode);
|
| | | String imgLink = spreadUserImgService.drawInviteQrCodeNew(bgUrl,uid, portrait, inviteCode);
|
| | | data.put("imgLink", imgLink);
|
| | | } else {
|
| | | |
| | | String title ="";
|
| | | List<ClientTextStyleVO> listTitle = dynamicInfo.getTitle();
|
| | | if (listTitle != null && listTitle.size() > 0) {
|
| | | for (ClientTextStyleVO textStyleVO : listTitle) {
|
| | | title += textStyleVO.getContent();
|
| | | }
|
| | | }
|
| | | title = title.replace("【邀请码】", inviteCode);
|
| | | title = title.replace("【邀请链接】", UserUtil.getInviteShortLink(uid));
|
| | | |
| | | String title = imgs.get(0).getTitleOriginal();
|
| | | String imgLink = spreadUserImgService.getInviteImgToGreet(bgUrl,uid, portrait, inviteCode, title, new Date());
|
| | | data.put("imgLink", imgLink);
|
| | | }
|
| | |
| | | String valueN = values.getValue();
|
| | | String valueBr = valueN.replace("\n", "<br><br>");
|
| | | data.put("inviteRules", valueBr);
|
| | | |
| | | |
| | | // 邀请链接
|
| | | String shortLink = HttpUtil.getShortLink("http://" + Constant.wxGZConfig.getLoginHost() + "/" |
| | | + Constant.systemCommonConfig.getProjectName() + "/client/threeShareNew?uid=" + uid);
|
| | | data.put("inviteLink", shortLink);
|
| | | data.put("inviteCode", inviteCode);
|
| | | data.put("helpLink", configService.get("invite_help_link"));
|
| | | }
|
| | | }
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | |
| | | @Expose
|
| | | private String params;
|
| | |
|
| | | |
| | | // 分享图片原图链接
|
| | | private String urlOriginal ;
|
| | | // 分享图片文字
|
| | | private String titleOriginal ;
|
| | |
|
| | | public String getUrl() {
|
| | | return url;
|
| | |
| | | public void setParams(String params) {
|
| | | this.params = params;
|
| | | }
|
| | |
|
| | | public String getUrlOriginal() {
|
| | | return urlOriginal;
|
| | | }
|
| | |
|
| | | public void setUrlOriginal(String urlOriginal) {
|
| | | this.urlOriginal = urlOriginal;
|
| | | }
|
| | |
|
| | | public String getTitleOriginal() {
|
| | | return titleOriginal;
|
| | | }
|
| | |
|
| | | public void setTitleOriginal(String titleOriginal) {
|
| | | this.titleOriginal = titleOriginal;
|
| | | }
|
| | | }
|
| | |
| | |
|
| | | import java.io.IOException;
|
| | | import java.math.BigDecimal;
|
| | | import java.text.SimpleDateFormat;
|
| | | import java.util.ArrayList;
|
| | | import java.util.Date;
|
| | | import java.util.List;
|
| | |
| | | import org.springframework.cache.annotation.Cacheable;
|
| | | import org.springframework.core.task.TaskExecutor;
|
| | | import org.springframework.stereotype.Service;
|
| | | import org.yeshi.utils.DateLunarUtil;
|
| | | import org.yeshi.utils.DateUtil;
|
| | | import org.yeshi.utils.taobao.TbImgUtil;
|
| | |
|
| | |
| | | }
|
| | |
|
| | |
|
| | | List<ClientTextStyleVO> listtitle = new ArrayList<ClientTextStyleVO>();
|
| | | |
| | | |
| | | List<GoodsPicture> listImg = new ArrayList<GoodsPicture>();
|
| | | if(StringUtil.isNullOrEmpty(picUrl)) {
|
| | | dynamicVO.setImgs(listImg);
|
| | | dynamicVO.setShowType(DynamicInfo.SHOW_TYPE_ZERO);
|
| | | |
| | | // 介绍内容
|
| | | ClientTextStyleVO row1 = new ClientTextStyleVO();
|
| | | row1.setColor("#333333");
|
| | | row1.setContent(title);
|
| | | List<ClientTextStyleVO> listtitle = new ArrayList<ClientTextStyleVO>();
|
| | | listtitle.add(row1);
|
| | | dynamicVO.setTitle(listtitle);
|
| | | dynamicInfoDao.insert(dynamicVO);
|
| | | } else {
|
| | | try {
|
| | | dynamicVO.setTitle(listtitle);
|
| | | dynamicVO.setShowType(DynamicInfo.SHOW_TYPE_ONE);
|
| | |
|
| | | List<GoodsPicture> listImg = new ArrayList<GoodsPicture>();
|
| | | if(!StringUtil.isNullOrEmpty(picUrl)) {
|
| | | // 图片
|
| | | String imgLink = qrCodeService.drawInviteQrCodeNew(picUrl , null, null, null);
|
| | | GoodsPicture p2 = new GoodsPicture();
|
| | | p2.setW(100);
|
| | | p2.setH(100);
|
| | | p2.setUrl(picUrl);
|
| | | p2.setUrl(imgLink);
|
| | | p2.setUrlOriginal(picUrl);
|
| | | listImg.add(p2);
|
| | | dynamicVO.setShowType(DynamicInfo.SHOW_TYPE_ONE);
|
| | | } else {
|
| | | dynamicVO.setShowType(DynamicInfo.SHOW_TYPE_ZERO);
|
| | | dynamicVO.setImgs(listImg);
|
| | | |
| | | |
| | | dynamicInfoDao.insert(dynamicVO);
|
| | | } catch (Exception e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | |
|
| | | dynamicVO.setImgs(listImg);
|
| | | dynamicInfoDao.insert(dynamicVO);
|
| | | }
|
| | |
|
| | |
|
| | |
| | | if (inviteMaterial == null) {
|
| | | return;
|
| | | }
|
| | | String materialId = inviteMaterial.getId();
|
| | |
|
| | | Date date = new Date();
|
| | | String materialId = inviteMaterial.getId();
|
| | | String content = inviteMaterial.getText();
|
| | | |
| | | if (!StringUtil.isNullOrEmpty(content)) {
|
| | | DynamicInfo dynamicTxt= new DynamicInfo();
|
| | | dynamicTxt.setId(UUID.randomUUID().toString().replace("-", ""));
|
| | |
| | | dynamicTxt.setShareType(DynamicInfo.SHARE_TYPE_INVITE);
|
| | | dynamicTxt.setUser(activityUserService.listRand(1).get(0));
|
| | | dynamicTxt.setShareCount(1000 + (int) (Math.random() * 8000));
|
| | | dynamicTxt.setCreateTime(new Date());
|
| | | dynamicTxt.setUpdateTime(new Date());
|
| | | dynamicTxt.setCreateTime(date);
|
| | | dynamicTxt.setUpdateTime(date);
|
| | | |
| | | SimpleDateFormat format = new SimpleDateFormat("MM月dd日");
|
| | | |
| | | StringBuffer buffer = new StringBuffer();
|
| | | buffer.append("------------------------------------------\n");
|
| | | buffer.append("今天 : " + format.format(date));
|
| | | buffer.append(" ");
|
| | | buffer.append(DateLunarUtil.getWeekd(date) + "\n");
|
| | | buffer.append("各位亲爱的你");
|
| | | buffer.append(" ");
|
| | | buffer.append("早安~\n");
|
| | | buffer.append("我的邀请码:【邀请码】\n");
|
| | | buffer.append("购物省钱返利券App:【邀请链接】");
|
| | | |
| | |
|
| | | ClientTextStyleVO row1 = new ClientTextStyleVO();
|
| | | row1.setColor("#333333");
|
| | | row1.setContent(content);
|
| | | row1.setContent(content + "\n" + buffer.toString());
|
| | | List<ClientTextStyleVO> listtitle = new ArrayList<ClientTextStyleVO>();
|
| | | listtitle.add(row1);
|
| | | dynamicTxt.setTitle(listtitle);
|
| | |
| | | dynamicPic.setShareType(DynamicInfo.SHARE_TYPE_INVITE);
|
| | | dynamicPic.setUser(activityUserService.listRand(1).get(0));
|
| | | dynamicPic.setShareCount(1000 + (int) (Math.random() * 8000));
|
| | | dynamicPic.setCreateTime(new Date());
|
| | | dynamicPic.setUpdateTime(new Date());
|
| | | dynamicPic.setCreateTime(date);
|
| | | dynamicPic.setUpdateTime(date);
|
| | |
|
| | | try {
|
| | | // 画图
|
| | |
| | | p2.setW(100);
|
| | | p2.setH(100);
|
| | | p2.setUrl(url);
|
| | | p2.setUrlOriginal(picture);
|
| | | p2.setTitleOriginal(content);
|
| | | List<GoodsPicture> listImg = new ArrayList<GoodsPicture>();
|
| | | listImg.add(p2);
|
| | | dynamicPic.setImgs(listImg);
|
| | |
| | | import java.io.IOException;
|
| | | import java.io.InputStream;
|
| | | import java.util.Date;
|
| | | import java.util.UUID;
|
| | |
|
| | | import javax.annotation.Resource;
|
| | |
|
| | |
| | |
|
| | |
|
| | | @Override
|
| | | public String drawInviteQrCodeNew(String url, Long uid, String portrait, String inviteCode) throws IOException {
|
| | | |
| | | if (StringUtil.isNullOrEmpty(url)) {
|
| | | return null;
|
| | | }
|
| | | |
| | | String targetPath = null;
|
| | | String erCodeTempPath = null;
|
| | | InputStream erCodeInputStream = null; // 二维码
|
| | | InputStream portraitInputStream = null; // 头像
|
| | | InputStream urlInputStream = HttpUtil.getAsInputStream(url); // 背景
|
| | | |
| | | String uuid = UUID.randomUUID().toString().replace("-", "");
|
| | | if (uid == null) {
|
| | | targetPath = FileUtil.getCacheDir() + "/share_" + uuid + "_" + System.currentTimeMillis() + ".jpg";
|
| | | // 官方 邀请码(无效的)
|
| | | inviteCode = "FLQAPP";
|
| | | // 官方二维码
|
| | | erCodeInputStream = ImageUtil.class.getClassLoader().getResourceAsStream("image/official.png");
|
| | | // 官方默认头像
|
| | | portraitInputStream = ImageUtil.class.getClassLoader().getResourceAsStream("image/official_icon.png");
|
| | | |
| | | } else {
|
| | | |
| | | targetPath = FileUtil.getCacheDir() + "/share_" + uid + "_" + System.currentTimeMillis() + ".jpg";
|
| | | erCodeTempPath = FileUtil.getCacheDir() + "/" + uid + "_" + System.currentTimeMillis() + ".jpg";
|
| | | |
| | | String erCode = HttpUtil.getShortLink("http://" + Constant.wxGZConfig.getLoginHost() + "/"
|
| | | + Constant.systemCommonConfig.getProjectName() + "/client/threeShareNew?uid=" + uid);
|
| | | // 生成
|
| | | try {
|
| | | QRCodeUtil.getInstance(250).encode(erCode, erCodeTempPath);
|
| | | } catch (Exception e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | | |
| | | urlInputStream = HttpUtil.getAsInputStream(url); // 背景
|
| | | portraitInputStream = HttpUtil.getAsInputStream(portrait); // 头像
|
| | | erCodeInputStream = new FileInputStream(new File(erCodeTempPath)); // 二维码
|
| | | }
|
| | | // 开始根据 url(背景图), qrCode(二维码), portrait(头像) 生成图片
|
| | | ImageUtil.inviteFriendImg(urlInputStream, portraitInputStream, erCodeInputStream, targetPath, inviteCode);
|
| | |
|
| | | if (new File(targetPath).exists() && new File(targetPath).length() > 0) {
|
| | | |
| | | int index = url.lastIndexOf("/");
|
| | | String newUrl = url.substring(index + 1);
|
| | | String urlMd5 = newUrl.substring(0, newUrl.lastIndexOf("."));
|
| | |
|
| | | String fileUrl= null;
|
| | | if (uid == null) {
|
| | | fileUrl= "ercode/" + "ercode_" + uuid + "_" + System.currentTimeMillis() + "_" + urlMd5 + ".jpg";
|
| | | } else {
|
| | | |
| | | fileUrl = "ercode/" + "ercode_" + uid + "_" + System.currentTimeMillis() + "_" + urlMd5 + ".jpg";
|
| | | if (new File(erCodeTempPath).exists())
|
| | | new File(erCodeTempPath).delete();
|
| | | }
|
| | | |
| | | String imgUrl = COSManager.getInstance().uploadFile(new File(targetPath), fileUrl).getUrl();
|
| | | if (new File(targetPath).exists())
|
| | | new File(targetPath).delete();
|
| | |
|
| | | return imgUrl;
|
| | | }
|
| | | return null;
|
| | | }
|
| | | |
| | | @Override
|
| | | public String drawInviteToGreet(String url, Long uid, String portrait, String inviteCode, String content,
|
| | | Date date) throws IOException {
|
| | |
|
| | |
| | | InputStream portraitInputStream = null; // 头像
|
| | | InputStream urlInputStream = HttpUtil.getAsInputStream(url); // 背景
|
| | |
|
| | | String uuid = UUID.randomUUID().toString().replace("-", "");
|
| | | if (uid == null) {
|
| | | targetPath = FileUtil.getCacheDir() + "/share_official" + System.currentTimeMillis() + ".jpg";
|
| | | targetPath = FileUtil.getCacheDir() + "/share_" + uuid + "_" + System.currentTimeMillis() + ".jpg";
|
| | | // 官方 邀请码(无效的)
|
| | | inviteCode = "FLQAPP";
|
| | | // 官方二维码
|
| | |
| | | e.printStackTrace();
|
| | | }
|
| | | erCodeInputStream = new FileInputStream(new File(erCodeTempPath));
|
| | | portraitInputStream = HttpUtil.getAsInputStream(portrait); // 头像
|
| | | }
|
| | |
|
| | |
|
| | |
| | |
|
| | | // 上传文件
|
| | | if (new File(targetPath).exists() && new File(targetPath).length() > 0) {
|
| | | // 将url 转为 md5 让到下面中添加 在比较md5的值
|
| | | int index = url.lastIndexOf("/");
|
| | | String newUrl = url.substring(index + 1);
|
| | | String urlMd5 = newUrl.substring(0, newUrl.lastIndexOf("."));
|
| | |
| | | // 上传文件相对位置
|
| | | String fileUrl= null;
|
| | | if (uid == null) {
|
| | | fileUrl="ercode/" + "ercode_official" + "_" + urlMd5 + ".jpg";
|
| | | fileUrl= "ercode/" + "ercode_" + uuid + "_" + System.currentTimeMillis() + "_" + urlMd5 + ".jpg";
|
| | | } else {
|
| | | fileUrl="ercode/" + "ercode_" + uid + "_" + urlMd5 + ".jpg";
|
| | |
|
| | | fileUrl = "ercode/" + "ercode_" + uid + "_" + System.currentTimeMillis() + "_" + urlMd5 + ".jpg";
|
| | | if (new File(erCodeTempPath).exists())
|
| | | new File(erCodeTempPath).delete();
|
| | | }
|
| | |
|
| | | String imgUrl = COSManager.getInstance().uploadFile(new File(targetPath), fileUrl).getUrl();
|
| | | |
| | | |
| | |
|
| | | if (new File(targetPath).exists())
|
| | | new File(targetPath).delete();
|
| | |
| | |
|
| | |
|
| | | @Override
|
| | | public String getInviteImg(String bgImg, Long uid, String portrait, String inviteCode) throws Exception {
|
| | | return qrCodeService.drawInviteQrCode(bgImg, uid, portrait, inviteCode);
|
| | | public String drawInviteQrCodeNew(String bgImg, Long uid, String portrait, String inviteCode) throws Exception {
|
| | | return qrCodeService.drawInviteQrCodeNew(bgImg, uid, portrait, inviteCode);
|
| | | }
|
| | |
|
| | |
|
| | |
| | | */
|
| | | public String drawInviteToGreet(String url, Long uid, String portrait, String inviteCode, String content, Date date)
|
| | | throws IOException;
|
| | |
|
| | | /**
|
| | | * uid为空时 默认官方
|
| | | * @param url
|
| | | * @param uid
|
| | | * @param portrait
|
| | | * @param inviteCode
|
| | | * @return
|
| | | * @throws IOException
|
| | | */
|
| | | public String drawInviteQrCodeNew(String url, Long uid, String portrait, String inviteCode) throws IOException;
|
| | | }
|
| | |
| | | * @return
|
| | | * @throws Exception
|
| | | */
|
| | | String getInviteImg(String bgImg, Long uid, String portrait, String inviteCode) throws Exception;
|
| | | String drawInviteQrCodeNew(String bgImg, Long uid, String portrait, String inviteCode) throws Exception;
|
| | |
|
| | | /**
|
| | | * 邀请图片 问候
|