| | |
| | | package com.yeshi.fanli.controller.client.v2; |
| | | |
| | | import java.io.PrintWriter; |
| | | import java.lang.reflect.Type; |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | import org.springframework.core.task.TaskExecutor; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestMethod; |
| | | import org.yeshi.utils.JsonUtil; |
| | | import org.yeshi.utils.entity.FileUploadResult; |
| | | |
| | | import com.google.gson.Gson; |
| | | import com.google.gson.GsonBuilder; |
| | | import com.google.gson.JsonElement; |
| | | import com.google.gson.JsonPrimitive; |
| | | import com.google.gson.JsonSerializationContext; |
| | | import com.google.gson.JsonSerializer; |
| | | import com.google.gson.*; |
| | | import com.yeshi.common.vo.ClientTextStyleVO; |
| | | import com.yeshi.fanli.dto.jd.JDCouponInfo; |
| | | import com.yeshi.fanli.dto.pdd.PDDGoodsDetail; |
| | | import com.yeshi.fanli.entity.SystemEnum; |
| | | import com.yeshi.fanli.entity.SystemFunction; |
| | | import com.yeshi.fanli.entity.SystemPIDInfo; |
| | | import com.yeshi.fanli.entity.accept.AcceptData; |
| | | import com.yeshi.fanli.entity.bus.clazz.GoodsClass; |
| | | import com.yeshi.fanli.entity.bus.homemodule.CommonShareInfo; |
| | | import com.yeshi.fanli.entity.bus.homemodule.CommonShareInfo.CommonShareInfoEnum; |
| | | import com.yeshi.fanli.entity.bus.homemodule.Special; |
| | | import com.yeshi.fanli.entity.bus.homemodule.SpecialLabel; |
| | | import com.yeshi.fanli.entity.bus.homemodule.SwiperPicture; |
| | |
| | | import com.yeshi.fanli.entity.bus.user.UserInfo; |
| | | import com.yeshi.fanli.entity.common.JumpDetailV2; |
| | | import com.yeshi.fanli.entity.dynamic.CommentInfo; |
| | | import com.yeshi.fanli.entity.dynamic.CommentInfo.CommentInfoEnum; |
| | | import com.yeshi.fanli.entity.dynamic.DynamicInfo; |
| | | import com.yeshi.fanli.entity.dynamic.GoodsEvaluate; |
| | | import com.yeshi.fanli.entity.dynamic.GoodsEvaluate.EvaluateEnum; |
| | |
| | | import com.yeshi.fanli.entity.jd.JDGoods; |
| | | import com.yeshi.fanli.entity.system.ConfigKeyEnum; |
| | | import com.yeshi.fanli.entity.taobao.TaoBaoLink; |
| | | import com.yeshi.fanli.exception.goods.ConvertLinkExceptionException; |
| | | import com.yeshi.fanli.exception.share.ShareGoodsException; |
| | | import com.yeshi.fanli.exception.goods.ConvertLinkException; |
| | | import com.yeshi.fanli.exception.pdd.PDDAuthException; |
| | | import com.yeshi.fanli.exception.pdd.PDDGoodsException; |
| | | import com.yeshi.fanli.exception.taobao.TaoBaoConvertLinkException; |
| | | import com.yeshi.fanli.log.LogHelper; |
| | | import com.yeshi.fanli.service.inter.common.JumpDetailV2Service; |
| | | import com.yeshi.fanli.service.inter.config.ConfigService; |
| | |
| | | import com.yeshi.fanli.service.inter.dynamic.ArticleOfficialService; |
| | | import com.yeshi.fanli.service.inter.dynamic.DynamicInfoService; |
| | | import com.yeshi.fanli.service.inter.dynamic.GoodsEvaluateService; |
| | | import com.yeshi.fanli.service.inter.goods.ShareGoodsService; |
| | | import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService; |
| | | import com.yeshi.fanli.service.inter.homemodule.CommonShareInfoService; |
| | | import com.yeshi.fanli.service.inter.homemodule.SpecialService; |
| | | import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService; |
| | | import com.yeshi.fanli.service.inter.order.config.HongBaoManageService; |
| | | import com.yeshi.fanli.service.inter.pdd.PDDAuthService; |
| | | import com.yeshi.fanli.service.inter.user.QrCodeService; |
| | | import com.yeshi.fanli.service.inter.user.UserFunctionsLimitService; |
| | | import com.yeshi.fanli.service.inter.user.UserInfoExtraService; |
| | | import com.yeshi.fanli.service.inter.user.UserInfoService; |
| | | import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService; |
| | | import com.yeshi.fanli.service.manger.PIDManager; |
| | | import com.yeshi.fanli.service.manger.goods.ConvertLinkManager; |
| | | import com.yeshi.fanli.util.Constant; |
| | | import com.yeshi.fanli.util.MoneyBigDecimalUtil; |
| | | import com.yeshi.fanli.service.manger.goods.TaoBaoLinkManager; |
| | | import com.yeshi.fanli.service.manger.goods.jd.JDConvertLinkManager; |
| | | import com.yeshi.fanli.service.manger.goods.pdd.PDDConvertLinkManager; |
| | | import com.yeshi.fanli.service.manger.goods.tb.TBConvertLinkManager; |
| | | import com.yeshi.fanli.util.*; |
| | | import com.yeshi.fanli.util.StringUtil; |
| | | import com.yeshi.fanli.util.VersionUtil; |
| | | import com.yeshi.fanli.util.cache.JDGoodsCacheUtil; |
| | | import com.yeshi.fanli.util.exception.ExceptionConstant; |
| | | import com.yeshi.fanli.util.goods.GoodsJumpUtil; |
| | | import com.yeshi.fanli.util.goods.GoodsTextUtil; |
| | | import com.yeshi.fanli.util.jd.JDApiUtil; |
| | | import com.yeshi.fanli.util.jd.JDUtil; |
| | | import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil; |
| | | import com.yeshi.fanli.util.pinduoduo.PinDuoDuoUtil; |
| | | import com.yeshi.fanli.util.taobao.DaTaoKeUtil; |
| | | import com.yeshi.fanli.util.taobao.TaoBaoUtil; |
| | | import com.yeshi.fanli.util.taobao.TaoKeApiUtil; |
| | | import com.yeshi.fanli.vo.dynamic.ArticleVO; |
| | | import com.yeshi.fanli.vo.goods.ConvertLinkJumpVO; |
| | | import com.yeshi.fanli.vo.goods.GoodsDetailVO; |
| | | import com.yeshi.fanli.vo.msg.ClientTextStyleVO; |
| | | |
| | | import com.yeshi.fanli.vo.homemodule.BannerVO; |
| | | import com.yeshi.fanli.vo.homemodule.SpecialVO; |
| | | import com.yeshi.fanli.vo.pdd.PDDConvertLinkResultVO; |
| | | import net.sf.json.JSONArray; |
| | | import net.sf.json.JSONObject; |
| | | import org.apache.commons.beanutils.PropertyUtils; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.core.task.TaskExecutor; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestMethod; |
| | | import org.yeshi.utils.*; |
| | | import org.yeshi.utils.entity.FileUploadResult; |
| | | import org.yeshi.utils.tencentcloud.COSManager; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.io.IOException; |
| | | import java.io.InputStream; |
| | | import java.io.PrintWriter; |
| | | import java.lang.reflect.Type; |
| | | import java.math.BigDecimal; |
| | | import java.net.MalformedURLException; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * 动态 |
| | | * |
| | | * @author Administrator |
| | | * |
| | | * @author Administrator |
| | | */ |
| | | @Controller |
| | | @RequestMapping("api/v2/dynamic") |
| | | public class DynamicControllerV2 { |
| | | |
| | | @Resource |
| | | private HongBaoManageService hongBaoManageService; |
| | | private Logger logger= LoggerFactory.getLogger(DynamicControllerV2.class); |
| | | |
| | | @Resource |
| | | private TaoBaoGoodsBriefService taoBaoGoodsBriefService; |
| | | @Resource |
| | | private TaoBaoLinkManager taoBaoLinkManager; |
| | | |
| | | @Resource |
| | | private JumpDetailV2Service jumpDetailV2Service; |
| | | @Resource |
| | | private JumpDetailV2Service jumpDetailV2Service; |
| | | |
| | | @Resource |
| | | private DynamicInfoService dynamicInfoService; |
| | | @Resource |
| | | private DynamicInfoService dynamicInfoService; |
| | | |
| | | @Resource |
| | | private SpecialService specialService; |
| | | @Resource |
| | | private SpecialService specialService; |
| | | |
| | | @Resource |
| | | private ArticleOfficialService articleOfficialService; |
| | | @Resource |
| | | private ArticleOfficialService articleOfficialService; |
| | | |
| | | @Resource |
| | | private SwiperPictureService swiperPictureService; |
| | | @Resource |
| | | private SwiperPictureService swiperPictureService; |
| | | |
| | | @Resource |
| | | private ConfigService configService; |
| | | @Resource |
| | | private ConfigService configService; |
| | | |
| | | @Resource |
| | | private GoodsEvaluateService goodsEvaluateService; |
| | | @Resource |
| | | private GoodsEvaluateService goodsEvaluateService; |
| | | |
| | | @Resource |
| | | private UserInfoService userInfoService; |
| | | @Resource |
| | | private UserInfoExtraService userInfoExtraService; |
| | | @Resource |
| | | private UserInfoService userInfoService; |
| | | @Resource |
| | | private UserInfoExtraService userInfoExtraService; |
| | | |
| | | @Resource |
| | | private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService; |
| | | @Resource |
| | | private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService; |
| | | |
| | | @Resource |
| | | private JDGoodsCacheUtil jdGoodsCacheUtil; |
| | | @Resource |
| | | private JDGoodsCacheUtil jdGoodsCacheUtil; |
| | | |
| | | @Resource |
| | | private QrCodeService qrCodeService; |
| | | @Resource |
| | | private QrCodeService qrCodeService; |
| | | |
| | | @Resource |
| | | private ConvertLinkManager convertLinkManager; |
| | | @Resource |
| | | private ConvertLinkManager convertLinkManager; |
| | | |
| | | @Resource |
| | | private ShareGoodsService shareGoodsService; |
| | | |
| | | @Resource |
| | | private DailyCountMomentsService dailyCountMomentsService; |
| | | |
| | | @Resource(name = "taskExecutor") |
| | | private TaskExecutor executor; |
| | | |
| | | @Resource |
| | | private TBConvertLinkManager tbConvertLinkManager; |
| | | |
| | | private final static long TYPE_REXIAO = 1;// 热销 |
| | | private final static long TYPE_TUIJIAN = 2;// 推荐 |
| | | private final static long TYPE_HAODIAN = 3;// 好店 |
| | | private final static long TYPE_YAOQING = 4;// 邀请 |
| | | private final static long TYPE_HUODONG = 5;// 活动 |
| | | private final static long TYPE_XUEYUAN = 6;// 学院 |
| | | private final static long TYPE_FAQUAN = 7;// 发圈 |
| | | private final static long TYPE_SUCAI = 8;// 素材 |
| | | @Resource |
| | | private JDConvertLinkManager jdConvertLinkManager; |
| | | |
| | | private static Map<Long, GoodsClass> classMap = null; |
| | | @Resource |
| | | private PDDConvertLinkManager pddConvertLinkManager; |
| | | |
| | | private Map<Long, GoodsClass> getAllDynamicClass() { |
| | | if (classMap != null && classMap.size() > 0) |
| | | return classMap; |
| | | classMap = new HashMap<Long, GoodsClass>(); |
| | | List<GoodsClass> listSub = new ArrayList<GoodsClass>(); |
| | | listSub.add(new GoodsClass(0L, "今日单品")); |
| | | listSub.addAll(DaTaoKeUtil.goodsClasses); |
| | | @Resource |
| | | private DailyCountMomentsService dailyCountMomentsService; |
| | | |
| | | GoodsClass menu = new GoodsClass(TYPE_REXIAO, "热销"); |
| | | menu.setListSub(listSub); |
| | | classMap.put(TYPE_REXIAO, menu); |
| | | @Resource |
| | | private CommonShareInfoService commonShareInfoService; |
| | | |
| | | menu = new GoodsClass(TYPE_TUIJIAN, "推荐"); |
| | | menu.setListSub(new ArrayList<GoodsClass>()); |
| | | classMap.put(TYPE_TUIJIAN, menu); |
| | | @Resource |
| | | private PDDAuthService pddAuthService; |
| | | |
| | | menu = new GoodsClass(TYPE_HAODIAN, "好店"); |
| | | menu.setListSub(new ArrayList<GoodsClass>()); |
| | | classMap.put(TYPE_HAODIAN, menu); |
| | | @Resource |
| | | private UserFunctionsLimitService userFunctionsLimitService; |
| | | |
| | | menu = new GoodsClass(TYPE_YAOQING, "邀请"); |
| | | menu.setListSub(new ArrayList<GoodsClass>()); |
| | | classMap.put(TYPE_YAOQING, menu); |
| | | |
| | | menu = new GoodsClass(TYPE_HUODONG, "活动"); |
| | | List<GoodsClass> sub5 = new ArrayList<GoodsClass>(); |
| | | sub5.add(new GoodsClass(0L, "全部")); |
| | | sub5.add(new GoodsClass(1L, "淘宝")); |
| | | sub5.add(new GoodsClass(2L, "京东")); |
| | | sub5.add(new GoodsClass(3L, "拼多多")); |
| | | menu.setListSub(sub5); |
| | | classMap.put(TYPE_HUODONG, menu); |
| | | @Resource |
| | | private PIDManager pidManager; |
| | | |
| | | menu = new GoodsClass(TYPE_XUEYUAN, "学院"); |
| | | menu.setListSub(new ArrayList<GoodsClass>()); |
| | | classMap.put(TYPE_XUEYUAN, menu); |
| | | @Resource(name = "taskExecutor") |
| | | private TaskExecutor executor; |
| | | |
| | | menu = new GoodsClass(TYPE_FAQUAN, "发圈"); |
| | | menu.setListSub(new ArrayList<GoodsClass>()); |
| | | classMap.put(TYPE_FAQUAN, menu); |
| | | private final static long TYPE_REXIAO = 1;// 热销 |
| | | private final static long TYPE_TUIJIAN = 2;// 推荐 |
| | | private final static long TYPE_HAODIAN = 3;// 好店 |
| | | private final static long TYPE_YAOQING = 4;// 邀请 |
| | | private final static long TYPE_HUODONG = 5;// 活动 |
| | | private final static long TYPE_XUEYUAN = 6;// 学院 |
| | | private final static long TYPE_FAQUAN = 7;// 发圈 |
| | | private final static long TYPE_SUCAI = 8;// 素材 |
| | | |
| | | menu = new GoodsClass(TYPE_SUCAI, "素材"); |
| | | menu.setListSub(new ArrayList<GoodsClass>()); |
| | | classMap.put(TYPE_SUCAI, menu); |
| | | return classMap; |
| | | } |
| | | private static Map<Long, GoodsClass> classMap = null; |
| | | |
| | | /** |
| | | * 查询顶部分类 |
| | | * |
| | | * @param acceptData |
| | | * @param page |
| | | * @param cid |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "getClass", method = RequestMethod.POST) |
| | | public void getClass(AcceptData acceptData, Long cid, PrintWriter out) { |
| | | // ios 只返回子集分类 |
| | | if (cid != null) { |
| | | Map<Long, GoodsClass> map = getAllDynamicClass(); |
| | | JSONObject data = new JSONObject(); |
| | | data.put("list", JsonUtil.getApiCommonGson().toJson(map.get(cid).getListSub())); |
| | | out.print(JsonUtil.loadTrueResult(data)); |
| | | return; |
| | | } |
| | | private Map<Long, GoodsClass> getAllDynamicClass() { |
| | | if (classMap != null && classMap.size() > 0) |
| | | return classMap; |
| | | classMap = new HashMap<Long, GoodsClass>(); |
| | | List<GoodsClass> listSub = new ArrayList<GoodsClass>(); |
| | | listSub.add(new GoodsClass(0L, "今日单品")); |
| | | listSub.addAll(DaTaoKeUtil.goodsClasses); |
| | | |
| | | // Android 返回分类以及顶部数据 |
| | | List<GoodsClass> listSub = new ArrayList<GoodsClass>(); |
| | | listSub.add(new GoodsClass(0L, "今日单品")); |
| | | listSub.addAll(DaTaoKeUtil.goodsClasses); |
| | | GoodsClass menu = new GoodsClass(TYPE_REXIAO, "热销"); |
| | | menu.setListSub(listSub); |
| | | classMap.put(TYPE_REXIAO, menu); |
| | | |
| | | GoodsClass menu1 = new GoodsClass(1L, "热销"); |
| | | menu1.setListSub(listSub); |
| | | menu = new GoodsClass(TYPE_TUIJIAN, "推荐"); |
| | | menu.setListSub(new ArrayList<GoodsClass>()); |
| | | classMap.put(TYPE_TUIJIAN, menu); |
| | | |
| | | GoodsClass menu2 = new GoodsClass(2L, "推荐"); |
| | | menu2.setListSub(new ArrayList<GoodsClass>()); |
| | | menu = new GoodsClass(TYPE_HAODIAN, "好店"); |
| | | menu.setListSub(new ArrayList<GoodsClass>()); |
| | | classMap.put(TYPE_HAODIAN, menu); |
| | | |
| | | GoodsClass menu3 = new GoodsClass(3L, "好店"); |
| | | menu3.setListSub(new ArrayList<GoodsClass>()); |
| | | menu = new GoodsClass(TYPE_YAOQING, "邀请"); |
| | | menu.setListSub(new ArrayList<GoodsClass>()); |
| | | classMap.put(TYPE_YAOQING, menu); |
| | | |
| | | GoodsClass menu4 = new GoodsClass(4L, "邀请"); |
| | | menu4.setListSub(new ArrayList<GoodsClass>()); |
| | | menu = new GoodsClass(TYPE_HUODONG, "活动"); |
| | | List<GoodsClass> sub5 = new ArrayList<GoodsClass>(); |
| | | sub5.add(new GoodsClass(0L, "全部")); |
| | | sub5.add(new GoodsClass(1L, "淘宝")); |
| | | sub5.add(new GoodsClass(2L, "京东")); |
| | | sub5.add(new GoodsClass(3L, "拼多多")); |
| | | menu.setListSub(sub5); |
| | | classMap.put(TYPE_HUODONG, menu); |
| | | |
| | | GoodsClass menu5 = new GoodsClass(5L, "活动"); |
| | | List<GoodsClass> sub5 = new ArrayList<GoodsClass>(); |
| | | sub5.add(new GoodsClass(0L, "全部")); |
| | | sub5.add(new GoodsClass(1L, "淘宝")); |
| | | sub5.add(new GoodsClass(2L, "京东")); |
| | | sub5.add(new GoodsClass(3L, "拼多多")); |
| | | menu5.setListSub(sub5); |
| | | menu = new GoodsClass(TYPE_XUEYUAN, "学院"); |
| | | menu.setListSub(new ArrayList<GoodsClass>()); |
| | | classMap.put(TYPE_XUEYUAN, menu); |
| | | |
| | | GoodsClass menu6 = new GoodsClass(6L, "学院"); |
| | | menu6.setListSub(new ArrayList<GoodsClass>()); |
| | | menu = new GoodsClass(TYPE_FAQUAN, "发圈"); |
| | | menu.setListSub(new ArrayList<GoodsClass>()); |
| | | classMap.put(TYPE_FAQUAN, menu); |
| | | |
| | | List<GoodsClass> list = new ArrayList<GoodsClass>(); |
| | | menu = new GoodsClass(TYPE_SUCAI, "素材"); |
| | | menu.setListSub(new ArrayList<GoodsClass>()); |
| | | classMap.put(TYPE_SUCAI, menu); |
| | | return classMap; |
| | | } |
| | | |
| | | Map<Long, GoodsClass> map = getAllDynamicClass(); |
| | | /** |
| | | * 查询顶部分类 |
| | | * |
| | | * @param acceptData |
| | | * @param cid |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "getClass", method = RequestMethod.POST) |
| | | public void getClass(AcceptData acceptData, Long cid, PrintWriter out) { |
| | | // ios 只返回子集分类 |
| | | if (cid != null) { |
| | | Map<Long, GoodsClass> map = getAllDynamicClass(); |
| | | JSONObject data = new JSONObject(); |
| | | data.put("list", JsonUtil.getApiCommonGson().toJson(map.get(cid).getListSub())); |
| | | out.print(JsonUtil.loadTrueResult(data)); |
| | | return; |
| | | } |
| | | |
| | | if (VersionUtil.greaterThan_2_0_7(acceptData.getPlatform(), acceptData.getVersion())) { |
| | | // 2.0.7返回发圈+活动+学院+素材 |
| | | list.add(map.get(TYPE_FAQUAN)); |
| | | list.add(map.get(TYPE_HUODONG)); |
| | | // list.add(map.get(TYPE_XUEYUAN)); |
| | | // list.add(map.get(TYPE_SUCAI)); |
| | | } else if (VersionUtil.greaterThan_2_0_6(acceptData.getPlatform(), acceptData.getVersion())) { |
| | | // 2.0.6返回热销+活动+推荐+学院+邀请 |
| | | list.add(map.get(TYPE_REXIAO)); |
| | | list.add(map.get(TYPE_HUODONG)); |
| | | list.add(map.get(TYPE_TUIJIAN)); |
| | | // list.add(map.get(TYPE_XUEYUAN)); |
| | | list.add(map.get(TYPE_YAOQING)); |
| | | } else if (VersionUtil.greaterThan_2_0_5(acceptData.getPlatform(), acceptData.getVersion())) { |
| | | // 2.0.5返回热销+活动+推荐+邀请 |
| | | list.add(map.get(TYPE_REXIAO)); |
| | | list.add(map.get(TYPE_HUODONG)); |
| | | list.add(map.get(TYPE_TUIJIAN)); |
| | | list.add(map.get(TYPE_YAOQING)); |
| | | } else { |
| | | // 2.0.5以前的版本返回热销+活动+推荐+好店+邀请 |
| | | list.add(map.get(TYPE_REXIAO)); |
| | | list.add(map.get(TYPE_HUODONG)); |
| | | list.add(map.get(TYPE_TUIJIAN)); |
| | | list.add(map.get(TYPE_HAODIAN)); |
| | | list.add(map.get(TYPE_YAOQING)); |
| | | } |
| | | // Android 返回分类以及顶部数据 |
| | | List<GoodsClass> listSub = new ArrayList<GoodsClass>(); |
| | | listSub.add(new GoodsClass(0L, "今日单品")); |
| | | listSub.addAll(DaTaoKeUtil.goodsClasses); |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("list", JsonUtil.getApiCommonGson().toJson(list)); |
| | | out.print(JsonUtil.loadTrueResult(data)); |
| | | } |
| | | GoodsClass menu1 = new GoodsClass(1L, "热销"); |
| | | menu1.setListSub(listSub); |
| | | |
| | | /** |
| | | * 动态商品列表 |
| | | * |
| | | * @param acceptData |
| | | * @param page |
| | | * @param cid |
| | | * @param subId |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "getList", method = RequestMethod.POST) |
| | | public void getList(AcceptData acceptData, Integer page, Long cid, Long subId, PrintWriter out) { |
| | | if (cid == null) { |
| | | out.print(JsonUtil.loadFalseResult("主分类id不能为空")); |
| | | return; |
| | | } |
| | | GoodsClass menu2 = new GoodsClass(2L, "推荐"); |
| | | menu2.setListSub(new ArrayList<GoodsClass>()); |
| | | |
| | | if (cid != null) { |
| | | if (cid == 5) { // 活动主题 |
| | | getSpecialList(acceptData, page, subId, out); |
| | | return; |
| | | } else if (cid == 6) { // 学院 |
| | | getArticleList(acceptData, page, null, false, out); |
| | | return; |
| | | } |
| | | } |
| | | GoodsClass menu3 = new GoodsClass(3L, "好店"); |
| | | menu3.setListSub(new ArrayList<GoodsClass>()); |
| | | |
| | | long count = 0; |
| | | GoodsClass menu4 = new GoodsClass(4L, "邀请"); |
| | | menu4.setListSub(new ArrayList<GoodsClass>()); |
| | | |
| | | int platform = 1; |
| | | if ("ios".equalsIgnoreCase(acceptData.getPlatform())) { |
| | | platform = 2; |
| | | } |
| | | GoodsClass menu5 = new GoodsClass(5L, "活动"); |
| | | List<GoodsClass> sub5 = new ArrayList<GoodsClass>(); |
| | | sub5.add(new GoodsClass(0L, "全部")); |
| | | sub5.add(new GoodsClass(1L, "淘宝")); |
| | | sub5.add(new GoodsClass(2L, "京东")); |
| | | sub5.add(new GoodsClass(3L, "拼多多")); |
| | | menu5.setListSub(sub5); |
| | | |
| | | int version = Integer.parseInt(acceptData.getVersion()); |
| | | List<DynamicInfo> list = dynamicInfoService.queryV2(platform, version, (page - 1) * Constant.PAGE_SIZE, |
| | | Constant.PAGE_SIZE, cid, subId); |
| | | if (list == null) { |
| | | list = new ArrayList<DynamicInfo>(); |
| | | } else { |
| | | count = dynamicInfoService.count(cid, subId); |
| | | } |
| | | GoodsClass menu6 = new GoodsClass(6L, "学院"); |
| | | menu6.setListSub(new ArrayList<GoodsClass>()); |
| | | |
| | | List<GoodsClass> list = new ArrayList<GoodsClass>(); |
| | | |
| | | Map<Long, GoodsClass> map = getAllDynamicClass(); |
| | | |
| | | if (VersionUtil.greaterThan_2_0_7(acceptData.getPlatform(), acceptData.getVersion())) { |
| | | // 2.0.7返回发圈+活动+学院+素材 |
| | | if (acceptData.getSystem() == SystemEnum.blks) { |
| | | list.add(map.get(TYPE_FAQUAN)); |
| | | list.add(map.get(TYPE_HUODONG)); |
| | | // list.add(map.get(TYPE_XUEYUAN)); |
| | | // 不返回素材了 |
| | | // list.add(map.get(TYPE_SUCAI)); |
| | | } else { |
| | | list.add(map.get(TYPE_FAQUAN)); |
| | | } |
| | | } else if (VersionUtil.greaterThan_2_0_6(acceptData.getPlatform(), acceptData.getVersion())) { |
| | | // 2.0.6返回热销+活动+推荐+学院+邀请 |
| | | list.add(map.get(TYPE_REXIAO)); |
| | | list.add(map.get(TYPE_HUODONG)); |
| | | list.add(map.get(TYPE_TUIJIAN)); |
| | | // list.add(map.get(TYPE_XUEYUAN)); |
| | | list.add(map.get(TYPE_YAOQING)); |
| | | } else if (VersionUtil.greaterThan_2_0_5(acceptData.getPlatform(), acceptData.getVersion())) { |
| | | // 2.0.5返回热销+活动+推荐+邀请 |
| | | list.add(map.get(TYPE_REXIAO)); |
| | | list.add(map.get(TYPE_HUODONG)); |
| | | list.add(map.get(TYPE_TUIJIAN)); |
| | | list.add(map.get(TYPE_YAOQING)); |
| | | } else { |
| | | // 2.0.5以前的版本返回热销+活动+推荐+好店+邀请 |
| | | list.add(map.get(TYPE_REXIAO)); |
| | | list.add(map.get(TYPE_HUODONG)); |
| | | list.add(map.get(TYPE_TUIJIAN)); |
| | | list.add(map.get(TYPE_HAODIAN)); |
| | | list.add(map.get(TYPE_YAOQING)); |
| | | } |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("list", JsonUtil.getApiCommonGson().toJson(list)); |
| | | out.print(JsonUtil.loadTrueResult(data)); |
| | | } |
| | | |
| | | /** |
| | | * 动态商品列表 |
| | | * |
| | | * @param acceptData |
| | | * @param page |
| | | * @param cid |
| | | * @param subId |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "getList", method = RequestMethod.POST) |
| | | public void getList(AcceptData acceptData, Integer page, Long cid, Long subId, PrintWriter out) { |
| | | if (cid == null) { |
| | | out.print(JsonUtil.loadFalseResult("主分类id不能为空")); |
| | | return; |
| | | } |
| | | |
| | | if (cid != null) { |
| | | if (cid == 5) { // 活动主题 |
| | | getSpecialList(acceptData, page, subId, out); |
| | | return; |
| | | } else if (cid == 6) { // 学院 |
| | | getArticleList(acceptData, page, null, false, out); |
| | | return; |
| | | } |
| | | } |
| | | |
| | | long count = 0; |
| | | |
| | | int platform = 1; |
| | | if ("ios".equalsIgnoreCase(acceptData.getPlatform())) { |
| | | platform = 2; |
| | | } |
| | | |
| | | int version = Integer.parseInt(acceptData.getVersion()); |
| | | List<DynamicInfo> list = dynamicInfoService.queryV2(platform, version, (page - 1) * Constant.PAGE_SIZE, |
| | | Constant.PAGE_SIZE, cid, subId); |
| | | if (list == null) { |
| | | list = new ArrayList<DynamicInfo>(); |
| | | } else { |
| | | count = dynamicInfoService.count(cid, subId); |
| | | } |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("count", count); |
| | | data.put("list", getGson().toJson(list)); |
| | | out.print(JsonUtil.loadTrueResult(data)); |
| | | } |
| | | |
| | | /** |
| | | * 活动列表 |
| | | * |
| | | * @param acceptData |
| | | * @param out |
| | | */ |
| | | private void getSpecialList(AcceptData acceptData, Integer page, Long subId, PrintWriter out) { |
| | | if (subId == null) { |
| | | out.print(JsonUtil.loadFalseResult("分类id不能为空")); |
| | | return; |
| | | } |
| | | |
| | | // 平台区分 |
| | | int platformCode = Constant.getPlatformCode(acceptData.getPlatform()); |
| | | List<String> listKey = new ArrayList<String>(); |
| | | |
| | | if (subId == 1) { // 淘宝 |
| | | listKey.add("special_channel_tb"); |
| | | } else if (subId == 2) { // 京东 |
| | | listKey.add("special_channel_jd"); |
| | | } else if (subId == 3) { // 拼多多 |
| | | listKey.add("special_channel_pdd"); |
| | | } else { // 全部 |
| | | listKey.add("special_channel_tb"); |
| | | listKey.add("special_channel_jd"); |
| | | listKey.add("special_channel_pdd"); |
| | | } |
| | | |
| | | List<SpecialVO> list = specialService.listByPlaceKeyHasLabel((page - 1) * Constant.PAGE_SIZE, |
| | | Constant.PAGE_SIZE, listKey, platformCode, Integer.parseInt(acceptData.getVersion()), acceptData.getSystem()); |
| | | |
| | | long time = System.currentTimeMillis(); |
| | | |
| | | // 删除尚未启用的过期的 |
| | | for (int i = 0; i < list.size(); i++) { |
| | | Special special = list.get(i); |
| | | if (special.getState() == 1L) { |
| | | continue; |
| | | } |
| | | |
| | | // 是否活动已过期 |
| | | if (special.getStartTime() != null && special.getEndTime() != null) { |
| | | if (time < special.getStartTime().getTime() || time > special.getEndTime().getTime()) { |
| | | continue; |
| | | } else { |
| | | special.setTimeTask(true); |
| | | special.setCountDownTime((special.getEndTime().getTime() - time) / 1000); |
| | | } |
| | | } |
| | | |
| | | // 设置标签 |
| | | List<SpecialLabel> listLabels = special.getListLabels(); |
| | | if (listLabels != null && !listLabels.isEmpty()) { |
| | | List<ClientTextStyleVO> labels = new ArrayList<>(); |
| | | for (SpecialLabel specialLabel : listLabels) { |
| | | labels.add(new ClientTextStyleVO(specialLabel.getName(), specialLabel.getBgColor())); |
| | | } |
| | | special.setLabels(labels); |
| | | } |
| | | |
| | | } |
| | | |
| | | long count = specialService.countByPlaceKeyList(listKey, platformCode, |
| | | Integer.parseInt(acceptData.getVersion()), acceptData.getSystem()); |
| | | |
| | | GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation(); |
| | | Gson gson = gsonBuilder.create(); |
| | | JSONObject data = new JSONObject(); |
| | | data.put("count", count); |
| | | data.put("list", gson.toJson(list)); |
| | | out.print(JsonUtil.loadTrueResult(data)); |
| | | } |
| | | |
| | | /** |
| | | * 时间处理 |
| | | * |
| | | * @return |
| | | */ |
| | | private Gson getGson() { |
| | | GsonBuilder gb = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()); |
| | | gb.excludeFieldsWithoutExposeAnnotation(); |
| | | gb.registerTypeAdapter(Date.class, new JsonSerializer<Date>() { |
| | | @Override |
| | | public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) { |
| | | String desc = ""; |
| | | if (value != null) { |
| | | // 判断是否是同一天 |
| | | |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.setTime(value); |
| | | int y1 = calendar.get(Calendar.YEAR);// 获取年份 |
| | | int d1 = calendar.get(Calendar.DAY_OF_YEAR);// 获取年中第几天 |
| | | |
| | | Date nowDate = new Date(); |
| | | Calendar calendar2 = Calendar.getInstance(); |
| | | calendar2.setTime(nowDate); |
| | | int y2 = calendar2.get(Calendar.YEAR);// 获取年份 |
| | | int d2 = calendar2.get(Calendar.DAY_OF_YEAR);// 获取年中第几天 |
| | | |
| | | long old = value.getTime(); |
| | | long now = nowDate.getTime(); |
| | | if (y1 == y2) { |
| | | if (d1 == d2) { |
| | | long cha = now - old; |
| | | if (cha < 1000 * 60 * 2L) { |
| | | desc = "刚刚"; |
| | | } else if (cha < 1000 * 60 * 60L) { |
| | | desc = (cha / (1000 * 60)) + "分钟前"; |
| | | } else { |
| | | desc = (cha / (1000 * 60 * 60)) + "小时前"; |
| | | } |
| | | } else if (d2 - d1 == 1) { |
| | | desc = "昨天"; |
| | | } else { |
| | | desc = (d2 - d1) + "天前"; |
| | | } |
| | | } else { |
| | | int timeDistance = 0; |
| | | for (int i = y1; i < y2; i++) { |
| | | if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) { |
| | | timeDistance += 366; // 闰年 |
| | | } else { |
| | | timeDistance += 365; // 不是闰年 |
| | | } |
| | | } |
| | | desc = timeDistance + (d2 - d1) + "天前"; |
| | | } |
| | | |
| | | return new JsonPrimitive(desc); |
| | | } |
| | | |
| | | return new JsonPrimitive(""); |
| | | } |
| | | }); |
| | | |
| | | Gson gson = gb.create(); |
| | | return gson; |
| | | } |
| | | |
| | | /** |
| | | * 活动列表 |
| | | * |
| | | * @param acceptData |
| | | * @param out |
| | | */ |
| | | private void getArticleList(AcceptData acceptData, Integer page, String key, boolean search, PrintWriter out) { |
| | | List<ArticleVO> list = articleOfficialService.queryValid((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, |
| | | key); |
| | | if (list != null) { |
| | | for (ArticleVO article : list) { |
| | | String tags = article.getTags(); |
| | | if (StringUtil.isNullOrEmpty(tags)) { |
| | | continue; |
| | | } |
| | | |
| | | String[] arrayTags = tags.split("\\s+"); |
| | | if (arrayTags == null || arrayTags.length == 0) { |
| | | continue; |
| | | } |
| | | |
| | | String[] arrayTagsColour = null; |
| | | String tagsColour = article.getTagsColour(); |
| | | if (!StringUtil.isNullOrEmpty(tagsColour)) { |
| | | arrayTagsColour = tagsColour.split("\\s+"); |
| | | } |
| | | |
| | | String color = "#FE0014"; |
| | | List<ClientTextStyleVO> labels = new ArrayList<ClientTextStyleVO>(); |
| | | for (int i = 0; i < arrayTags.length; i++) { |
| | | String tag = arrayTags[i]; |
| | | if (arrayTagsColour != null && arrayTagsColour.length == arrayTags.length) { |
| | | color = arrayTagsColour[i]; |
| | | } |
| | | ClientTextStyleVO styleVO = new ClientTextStyleVO(); |
| | | styleVO.setColor(color); |
| | | styleVO.setContent(tag); |
| | | labels.add(styleVO); |
| | | } |
| | | article.setLabels(labels); |
| | | } |
| | | } |
| | | |
| | | GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation(); |
| | | Gson gson = gsonBuilder.create(); |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | if (page == 1 && !search) { |
| | | List<BannerVO> banners = swiperPictureService.getByBannerCardAndVersion("article_banners", |
| | | acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion()), acceptData.getSystem()); |
| | | if (banners == null) |
| | | banners = new ArrayList<>(); |
| | | data.put("banners", gson.toJson(banners)); |
| | | |
| | | List<SpecialVO> listSpecial = specialService.listByVersion(0, Integer.MAX_VALUE, "article_specials", |
| | | acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion()), acceptData.getSystem()); |
| | | if (listSpecial == null) |
| | | listSpecial = new ArrayList<>(); |
| | | |
| | | for (SpecialVO special : listSpecial) { |
| | | boolean needLogin = special.isJumpLogin(); |
| | | JumpDetailV2 jumpDetail = special.getJumpDetail(); |
| | | if (jumpDetail != null) { |
| | | jumpDetail.setNeedLogin(needLogin); |
| | | special.setJumpDetail(jumpDetail); |
| | | } |
| | | } |
| | | data.put("specials", gson.toJson(listSpecial)); |
| | | } |
| | | data.put("count", articleOfficialService.countValid(key)); |
| | | data.put("list", gson.toJson(list)); |
| | | out.print(JsonUtil.loadTrueResult(data)); |
| | | } |
| | | |
| | | /** |
| | | * 文章搜索 |
| | | * |
| | | * @param acceptData |
| | | * @param id |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "readArticle", method = RequestMethod.POST) |
| | | public void readArticle(AcceptData acceptData, String id, PrintWriter out) { |
| | | if (StringUtil.isNullOrEmpty(id)) { |
| | | out.print(JsonUtil.loadFalseResult("id不能为空")); |
| | | return; |
| | | } |
| | | articleOfficialService.updateReadNum(id); |
| | | out.print(JsonUtil.loadTrueResult("操作成功")); |
| | | } |
| | | |
| | | /** |
| | | * 文章搜索 |
| | | * |
| | | * @param acceptData |
| | | * @param page |
| | | * @param key |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "searchArticle", method = RequestMethod.POST) |
| | | public void searchArticle(AcceptData acceptData, Integer page, String key, PrintWriter out) { |
| | | getArticleList(acceptData, page, key, true, out); |
| | | } |
| | | |
| | | /** |
| | | * 文章搜索 |
| | | * |
| | | * @param acceptData |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "getArticleHot", method = RequestMethod.POST) |
| | | public void getArticleHot(AcceptData acceptData, PrintWriter out) { |
| | | JSONObject data = new JSONObject(); |
| | | data.put("words", configService.getValue(ConfigKeyEnum.articleHotWords.getKey(), SystemInfoUtil.getSystem(acceptData))); |
| | | out.print(JsonUtil.loadTrueResult(data)); |
| | | } |
| | | |
| | | /** |
| | | * 2.0.7版本后调用 动态列表(适用于发圈与素材) |
| | | * |
| | | * @param acceptData |
| | | * @param page |
| | | * @param cid |
| | | * @param subId |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "getDynamicList", method = RequestMethod.POST) |
| | | public void getDynamicListNew(AcceptData acceptData, Integer page, Long cid, String subId, Long uid, PrintWriter out) { |
| | | try { |
| | | int type = 1; |
| | | if (cid == TYPE_FAQUAN) { |
| | | type = 1; |
| | | } else if (cid == TYPE_SUCAI) { |
| | | type = 2; |
| | | } |
| | | List<GoodsEvaluate> listNew = new ArrayList<>(); |
| | | |
| | | List<GoodsEvaluate> list = goodsEvaluateService.queryMaterialsCache((page - 1) * Constant.PAGE_SIZE, |
| | | Constant.PAGE_SIZE, type, acceptData.getSystem()); |
| | | |
| | | if (!VersionUtil.greaterThan_2_1_1(acceptData.getPlatform(), acceptData.getVersion())) { |
| | | listNew.addAll(list); |
| | | } else if (list.size() > 0) { // 活动图片不允许跳转 |
| | | |
| | | // 云发单是否开启 |
| | | boolean cloudOpen = configService.isRobotCloudOpen(ConfigKeyEnum.robotCloudOpenCircle.getKey(), acceptData.getPlatform(), acceptData.getVersion(), SystemInfoUtil.getSystem(acceptData)); |
| | | if (!cloudOpen && uid != null) { |
| | | List<String> testUsers = configService.getTestUsers(SystemInfoUtil.getSystem(acceptData)); |
| | | if (testUsers != null && testUsers.contains(uid + "")) { |
| | | cloudOpen = true; |
| | | } |
| | | } |
| | | |
| | | for (GoodsEvaluate goodsEvaluate : list) { |
| | | if (goodsEvaluate.getGoods() != null) { |
| | | goodsEvaluate.getGoods().setCreatetime(null); |
| | | } |
| | | GoodsEvaluate evaluateNew = new GoodsEvaluate(); |
| | | try { |
| | | PropertyUtils.copyProperties(evaluateNew, goodsEvaluate); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | continue; |
| | | } |
| | | |
| | | EvaluateEnum evaluateEnum = evaluateNew.getType(); |
| | | // 单品 活动可以一键云发单 |
| | | if (evaluateEnum == EvaluateEnum.activity || evaluateEnum == EvaluateEnum.single) { |
| | | evaluateNew.setCloud(cloudOpen); |
| | | } |
| | | |
| | | if (evaluateEnum != EvaluateEnum.activity) { |
| | | listNew.add(evaluateNew); |
| | | continue; |
| | | } |
| | | |
| | | |
| | | // 跳转过渡页 |
| | | // String jumpLink = |
| | | // configService.get(ConfigKeyEnum.activityDetailLink.getKey()) |
| | | // + "?type=%s&id=%s"; |
| | | // jumpLink = String.format(jumpLink, "circle", |
| | | // evaluateNew.getId()); |
| | | // evaluateNew.setJumpLink(jumpLink); |
| | | |
| | | // 图片数量 |
| | | if (evaluateNew.getImgList() != null && evaluateNew.getImgList().size() > 0) { |
| | | int size = evaluateNew.getImgList().size(); |
| | | List<ImgInfo> listInfoNew = new ArrayList<ImgInfo>(); |
| | | |
| | | for (ImgInfo imgInfo : goodsEvaluate.getImgList()) { |
| | | |
| | | if (acceptData.getSystem() == SystemEnum.yhqjx || acceptData.getSystem() == SystemEnum.hsb) { |
| | | imgInfo.setGoods(null); |
| | | imgInfo.setGoodsVO(null); |
| | | } |
| | | |
| | | if (imgInfo.getType() != ImgEnum.activity) { |
| | | listInfoNew.add(imgInfo); |
| | | |
| | | |
| | | continue; |
| | | } |
| | | ImgInfo infoNew = new ImgInfo(); |
| | | try { |
| | | PropertyUtils.copyProperties(infoNew, imgInfo); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | continue; |
| | | } |
| | | infoNew.setType(ImgEnum.img); |
| | | // 图片大于一张时 显示九宫格图 |
| | | if (size > 1) { |
| | | infoNew.setW(1); |
| | | infoNew.setH(1); |
| | | } |
| | | listInfoNew.add(infoNew); |
| | | } |
| | | evaluateNew.setImgList(listInfoNew); |
| | | } |
| | | listNew.add(evaluateNew); |
| | | } |
| | | } |
| | | |
| | | GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation(); |
| | | gsonBuilder.registerTypeAdapter(ImgEnum.class, new JsonSerializer<ImgEnum>() { |
| | | @Override |
| | | public JsonElement serialize(ImgEnum value, Type theType, JsonSerializationContext context) { |
| | | if (value == null) { |
| | | return new JsonPrimitive(""); |
| | | } else { |
| | | return new JsonPrimitive(value.getVlaue()); |
| | | } |
| | | } |
| | | }).registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() { |
| | | @Override |
| | | public JsonElement serialize(BigDecimal value, Type theType, JsonSerializationContext context) { |
| | | if (value == null) { |
| | | return new JsonPrimitive(""); |
| | | } else { |
| | | // 保留2位小数 |
| | | return new JsonPrimitive(MoneyBigDecimalUtil.getWithNoZera(value) + ""); |
| | | } |
| | | } |
| | | }).registerTypeAdapter(Date.class, new JsonSerializer<Date>() { |
| | | @Override |
| | | public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) { |
| | | String desc = ""; |
| | | if (value != null) { |
| | | // 判断是否是同一天 |
| | | |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.setTime(value); |
| | | int y1 = calendar.get(Calendar.YEAR);// 获取年份 |
| | | int d1 = calendar.get(Calendar.DAY_OF_YEAR);// 获取年中第几天 |
| | | |
| | | Date nowDate = new Date(); |
| | | Calendar calendar2 = Calendar.getInstance(); |
| | | calendar2.setTime(nowDate); |
| | | int y2 = calendar2.get(Calendar.YEAR);// 获取年份 |
| | | int d2 = calendar2.get(Calendar.DAY_OF_YEAR);// 获取年中第几天 |
| | | |
| | | long old = value.getTime(); |
| | | long now = nowDate.getTime(); |
| | | if (y1 == y2) { |
| | | if (d1 == d2) { |
| | | long cha = now - old; |
| | | if (cha < 1000 * 60 * 2L) { |
| | | desc = "刚刚"; |
| | | } else if (cha < 1000 * 60 * 60L) { |
| | | desc = (cha / (1000 * 60)) + "分钟前"; |
| | | } else { |
| | | desc = (cha / (1000 * 60 * 60)) + "小时前"; |
| | | } |
| | | } else if (d2 - d1 == 1) { |
| | | desc = "昨天"; |
| | | } else { |
| | | desc = (d2 - d1) + "天前"; |
| | | } |
| | | } else { |
| | | int timeDistance = 0; |
| | | for (int i = y1; i < y2; i++) { |
| | | if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) { |
| | | timeDistance += 366; // 闰年 |
| | | } else { |
| | | timeDistance += 365; // 不是闰年 |
| | | } |
| | | } |
| | | desc = timeDistance + (d2 - d1) + "天前"; |
| | | } |
| | | |
| | | return new JsonPrimitive(desc); |
| | | } |
| | | |
| | | return new JsonPrimitive(""); |
| | | } |
| | | }); |
| | | Gson gson = gsonBuilder.create(); |
| | | long count = goodsEvaluateService.countValidMaterials(type, acceptData.getSystem()); |
| | | |
| | | JSONArray jsonArray = new JSONArray(); |
| | | |
| | | String listStr = gson.toJson(listNew); |
| | | JSONArray array = JSONArray.fromObject(listStr); |
| | | for (int i = 0; i < array.size(); i++) { |
| | | Object object = array.get(i); |
| | | JSONObject json = JSONObject.fromObject(object); |
| | | Object shareNum = json.get("shareNum"); |
| | | if (shareNum != null) { |
| | | int num = Integer.parseInt(shareNum.toString()); |
| | | |
| | | if (num >= 100000000) { |
| | | double sales = num; |
| | | String salesCountMidea = String.format("%.1f", sales / 100000000); |
| | | json.put("shareNum", salesCountMidea + "亿"); |
| | | } else if (num >= 10000) { |
| | | double sales = num; |
| | | String salesCountMidea = String.format("%.1f", sales / 10000); |
| | | json.put("shareNum", salesCountMidea + "万"); |
| | | } |
| | | } |
| | | jsonArray.add(json); |
| | | } |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("count", count); |
| | | data.put("list", jsonArray); |
| | | out.print(JsonUtil.loadTrueResult(data)); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | out.print(JsonUtil.loadFalseResult(1, "查询信息失败")); |
| | | LogHelper.errorDetailInfo(e); |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 转链 |
| | | * |
| | | * @param acceptData |
| | | * @param uid |
| | | * @param link |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "convertLink", method = RequestMethod.POST) |
| | | public void convertLink(AcceptData acceptData, Long uid, String link, PrintWriter out) { |
| | | if (StringUtil.isNullOrEmpty(link)) { |
| | | out.print(JsonUtil.loadFalseResult("链接为空")); |
| | | return; |
| | | } |
| | | |
| | | ConvertLinkJumpVO convertLinkJumpVO = null; |
| | | //判断result是否为淘口令 |
| | | List<String> urlList = UrlUtils.parseUrlsFromText(link); |
| | | if (urlList.size() > 0) { |
| | | //只处理京东/拼多多链接 |
| | | String url = urlList.get(0); |
| | | if (JDUtil.isJDLink(url)) { |
| | | try { |
| | | url = jdConvertLinkManager.convertShortUrl(url, uid, acceptData.getSystem(), uid == null ? SystemPIDInfo.PidType.coupon : SystemPIDInfo.PidType.fanli); |
| | | } catch (Exception e) { |
| | | logger.warn(String.format("京东转链出错:materialId-%s",url), e); |
| | | } |
| | | convertLinkJumpVO = new ConvertLinkJumpVO(GoodsJumpUtil.getJDJumpInfo(url), Constant.SOURCE_TYPE_JD); |
| | | outPrintConvertResult(convertLinkJumpVO, out); |
| | | return; |
| | | } |
| | | |
| | | if (PinDuoDuoUtil.isPDDLink(url)) { |
| | | String pddGoodsId = PinDuoDuoUtil.getPDDGoodsId(url); |
| | | String customParams = pddAuthService.getFanliCustomParams(uid); |
| | | PDDConvertLinkResultVO convertLinkResult = null; |
| | | try { |
| | | convertLinkResult = pddConvertLinkManager.convertGoods(pddGoodsId, acceptData.getSystem(), customParams, uid == null ? SystemPIDInfo.PidType.coupon : SystemPIDInfo.PidType.fanli); |
| | | convertLinkJumpVO = new ConvertLinkJumpVO(GoodsJumpUtil.getPDDJumpInfo(convertLinkResult), Constant.SOURCE_TYPE_PDD); |
| | | outPrintConvertResult(convertLinkJumpVO, out); |
| | | return; |
| | | } catch (PDDGoodsException e) { |
| | | e.printStackTrace(); |
| | | //商品下线 |
| | | out.print(JsonUtil.loadFalseResult(ExceptionConstant.CODE_GOODS_OFFLINE, "商品已下线")); |
| | | return; |
| | | } catch (PDDAuthException e) { |
| | | e.printStackTrace(); |
| | | //拼多多未授权 |
| | | out.print(JsonUtil.loadFalseResult(ExceptionConstant.CODE_AUTH_PDD_NO_AUTH, "拼多多尚未授权,请授权")); |
| | | return; |
| | | } |
| | | } |
| | | |
| | | |
| | | return; |
| | | } |
| | | |
| | | List<String> tokenList = TaoBaoUtil.getTokenListFromTextWithKuoHao(link); |
| | | if (tokenList.size() > 0) { |
| | | //还原口令 |
| | | try { |
| | | TaoKeApiUtil.TokenConvertResult convertResult = TaoKeApiUtil.tokenConvert(tokenList.get(0)); |
| | | if (convertResult != null) { |
| | | String originUrl = convertResult.getOrigin_url(); |
| | | String goodsId = convertResult.getNum_iid(); |
| | | TaoBaoLink taoBaoLink = tbConvertLinkManager.convertGoods(goodsId, uid, acceptData.getSystem(), uid == null ? SystemPIDInfo.PidType.coupon : SystemPIDInfo.PidType.fanli); |
| | | convertLinkJumpVO = new ConvertLinkJumpVO(GoodsJumpUtil.getTBJumpInfo(taoBaoLink), Constant.SOURCE_TYPE_TAOBAO); |
| | | outPrintConvertResult(convertLinkJumpVO, out); |
| | | return; |
| | | } else { |
| | | throw new Exception("转链失败"); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | //输出原来的淘口令 |
| | | JSONObject root = new JSONObject(); |
| | | root.put("data", new Gson().toJson(new ConvertLinkJumpVO(null, Constant.SOURCE_TYPE_TAOBAO))); |
| | | root.put("code", ExceptionConstant.CODE_JUMP_NO_SUPPORT); |
| | | out.print(root.toString()); |
| | | return; |
| | | } |
| | | |
| | | } |
| | | out.print(JsonUtil.loadFalseResult("不支持的类型")); |
| | | } |
| | | |
| | | |
| | | private void outPrintConvertResult(ConvertLinkJumpVO vo, PrintWriter out) { |
| | | out.print(JsonUtil.loadTrueResult(new Gson().toJson(vo))); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 复制推荐语 |
| | | * |
| | | * @param acceptData |
| | | * @param uid |
| | | * @param id |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "evaluateCopyRecommend", method = RequestMethod.POST) |
| | | public void evaluateCopyRecommend(AcceptData acceptData, Long uid, String id, PrintWriter out) { |
| | | GoodsEvaluate goodsEvaluate = goodsEvaluateService.getById(id); |
| | | if (goodsEvaluate == null) { |
| | | out.print(JsonUtil.loadFalseResult("该内容已不存在")); |
| | | return; |
| | | } |
| | | JSONObject data = new JSONObject(); |
| | | String result = GoodsTextUtil.decodeAppHtmlText(goodsEvaluate.getTitle()); |
| | | data.put("content", result); |
| | | out.print(JsonUtil.loadTrueResult(data)); |
| | | } |
| | | |
| | | /** |
| | | * @param acceptData |
| | | * @param uid |
| | | * @param id |
| | | * @param type 1-放大 2-保存 3-分享 |
| | | * @param goodsId |
| | | * @param goodsType |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "evaluateShare", method = RequestMethod.POST) |
| | | public void evaluateShare(AcceptData acceptData, Long uid, String id, Integer type, String goodsId, |
| | | Integer goodsType, PrintWriter out) { |
| | | try { |
| | | if (uid == null) { |
| | | out.print(JsonUtil.loadFalseResult("用户未登录")); |
| | | return; |
| | | } |
| | | |
| | | if (StringUtil.isNullOrEmpty(id) || type == null) { |
| | | out.print(JsonUtil.loadFalseResult("传递参数不能为空")); |
| | | return; |
| | | } |
| | | |
| | | if (type == 1 && (StringUtil.isNullOrEmpty(goodsId) || goodsType == null)) { |
| | | out.print(JsonUtil.loadFalseResult("商品参数不能为空")); |
| | | return; |
| | | } |
| | | |
| | | GoodsEvaluate goodsEvaluate = goodsEvaluateService.getById(id); |
| | | if (goodsEvaluate == null) { |
| | | out.print(JsonUtil.loadFalseResult("该内容已不存在")); |
| | | return; |
| | | } |
| | | |
| | | UserInfo user = userInfoService.getUserByIdWithMybatis(uid); |
| | | if (user == null) { |
| | | out.print(JsonUtil.loadFalseResult("用户未登录")); |
| | | return; |
| | | } |
| | | |
| | | if (user != null && user.getState() != UserInfo.STATE_NORMAL) { |
| | | out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); |
| | | return; |
| | | } |
| | | |
| | | |
| | | if (userFunctionsLimitService.isLimit(uid, SystemFunction.share, new Date())) { |
| | | out.print(JsonUtil.loadFalseResult(1, "该功能限制使用")); |
| | | return; |
| | | } |
| | | |
| | | |
| | | UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid); |
| | | String relationId = null; |
| | | if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null |
| | | && taoBaoInfo.getRelationValid() == true) |
| | | relationId = taoBaoInfo.getRelationId(); |
| | | |
| | | if (StringUtil.isNullOrEmpty(relationId)) { |
| | | out.print(JsonUtil.loadFalseResult(2, "淘宝未授权,请前往\"我的\"绑定淘宝账号")); |
| | | return; |
| | | } |
| | | String inviteCode = userInfoExtraService.getInviteCodeByUid(uid); |
| | | if (SystemInfoUtil.hasFunctions(acceptData.getSystem(), SystemFunction.threeSale)) { |
| | | inviteCode = userInfoExtraService.getInviteCodeByUid(uid); |
| | | if (StringUtil.isNullOrEmpty(inviteCode)) { |
| | | out.print(JsonUtil.loadFalseResult(1, "邀请码未激活")); |
| | | return; |
| | | } |
| | | } |
| | | |
| | | List<ImgInfo> imgs = goodsEvaluate.getImgList(); |
| | | if (imgs == null) { |
| | | out.print(JsonUtil.loadFalseResult("该图片内容已不存在")); |
| | | return; |
| | | } |
| | | |
| | | List<String> list = new ArrayList<>(); |
| | | Integer dynamicType = goodsEvaluate.getDynamicType(); |
| | | if (dynamicType == null || dynamicType.intValue() == 2) { |
| | | for (ImgInfo imgInfo : imgs) { |
| | | if (imgInfo.getType() == ImgEnum.goods || imgInfo.getType() == ImgEnum.video) |
| | | continue; |
| | | if (imgInfo.getType() == ImgEnum.img) |
| | | list.add(StringUtil.isNullOrEmpty(imgInfo.getUrlHD()) ? imgInfo.getUrl() : imgInfo.getUrlHD()); |
| | | else if (imgInfo.getType() == ImgEnum.activity) |
| | | if (!StringUtil.isNullOrEmpty(imgInfo.getActivityPic())) { |
| | | list.add(imgInfo.getActivityPic()); |
| | | } |
| | | } |
| | | } else { |
| | | // 单品 |
| | | if (goodsEvaluate.getType() == EvaluateEnum.single) { |
| | | for (ImgInfo imgInfo : imgs) { |
| | | if (imgInfo.getType() == ImgEnum.video) |
| | | continue; |
| | | |
| | | GoodsDetailVO goodsVO = imgInfo.getGoodsVO(); |
| | | if (goodsVO == null) { |
| | | list.add(StringUtil.isNullOrEmpty(imgInfo.getUrlHD()) ? imgInfo.getUrl() |
| | | : imgInfo.getUrlHD()); |
| | | continue; |
| | | } |
| | | |
| | | String jumpLink = getJumpLink(goodsVO, user, relationId, inviteCode, imgInfo.getUrl(), SystemInfoUtil.getSystem(acceptData)); |
| | | if (!StringUtil.isNullOrEmpty(jumpLink)) { |
| | | list.add(jumpLink); |
| | | } |
| | | } |
| | | |
| | | } else if (goodsEvaluate.getType() == EvaluateEnum.multiple) { |
| | | if (type == 1) { |
| | | for (ImgInfo imgInfo : imgs) { |
| | | if (imgInfo.getGoodsVO() != null) |
| | | if (imgInfo.getGoodsVO().getGoodsId().equalsIgnoreCase(goodsId) |
| | | && imgInfo.getGoodsVO().getGoodsType() == goodsType.intValue()) { |
| | | String jumpLink = getJumpLink(imgInfo.getGoodsVO(), user, relationId, inviteCode, |
| | | imgInfo.getUrl(), SystemInfoUtil.getSystem(acceptData)); |
| | | if (!StringUtil.isNullOrEmpty(jumpLink)) { |
| | | list.add(jumpLink); |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | } else if (type == 2 || type == 3) { |
| | | for (ImgInfo imgInfo : imgs) { |
| | | if (imgInfo.getGoodsVO() != null) { |
| | | String jumpLink = getJumpLink(imgInfo.getGoodsVO(), user, relationId, inviteCode, |
| | | imgInfo.getUrl(), SystemInfoUtil.getSystem(acceptData)); |
| | | if (!StringUtil.isNullOrEmpty(jumpLink)) { |
| | | list.add(jumpLink); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } else if (goodsEvaluate.getType() == EvaluateEnum.activity) { |
| | | for (ImgInfo imgInfo : imgs) { |
| | | if (imgInfo.getType() == ImgEnum.goods || imgInfo.getType() == ImgEnum.video) |
| | | continue; |
| | | if (imgInfo.getType() == ImgEnum.img) |
| | | list.add(StringUtil.isNullOrEmpty(imgInfo.getUrlHD()) ? imgInfo.getUrl() |
| | | : imgInfo.getUrlHD()); |
| | | else if (imgInfo.getType() == ImgEnum.activity) |
| | | if (!StringUtil.isNullOrEmpty(imgInfo.getActivityPic())) { |
| | | list.add(imgInfo.getActivityPic()); |
| | | } else if (!StringUtil.isNullOrEmpty(imgInfo.getUrl())) { |
| | | list.add(imgInfo.getUrl()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | Integer shareCount = goodsEvaluate.getShareNum(); |
| | | if (shareCount == null) { |
| | | shareCount = 0; |
| | | } |
| | | |
| | | if (type == 3) { |
| | | shareCount++; |
| | | goodsEvaluateService.addShareNum(id); |
| | | |
| | | executor.execute(new Runnable() { |
| | | @Override |
| | | public void run() { // 添加每日统计 |
| | | dailyCountMomentsService.addShareClick(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | if (list.size() == 0) { |
| | | out.print(JsonUtil.loadFalseResult("操作失败")); |
| | | return; |
| | | } |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("count", shareCount); |
| | | data.put("list", list); |
| | | out.print(JsonUtil.loadTrueResult(data)); |
| | | } catch (Exception e) { |
| | | out.print(JsonUtil.loadFalseResult("分享图生成失败")); |
| | | return; |
| | | } |
| | | } |
| | | |
| | | private String getJumpLink(GoodsDetailVO goodsVO, UserInfo user, String relationId, String inviteCode, |
| | | String mainPic, SystemEnum system) { |
| | | String jumpLink = null; |
| | | if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) { |
| | | TaoBaoLink taoBaoLink = null; |
| | | try { |
| | | taoBaoLink = taoBaoLinkManager.getTaoBaoLinkForShare(system, user.getId(),goodsVO.getGoodsId(), |
| | | relationId, null); |
| | | } catch (TaoBaoConvertLinkException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | jumpLink = ShareControllerV2.getERCodeContentNew( |
| | | configService.getValue(ConfigKeyEnum.taobaoShareQrcodeText.getKey(), system), taoBaoLink.getGoods(), |
| | | TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken())); |
| | | } else if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_JD) { |
| | | JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsVO.getGoodsId()); |
| | | if (jdGoods == null) { |
| | | return null; |
| | | } |
| | | |
| | | String couponUrl = null; |
| | | JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(jdGoods); |
| | | if (couponInfo != null) { |
| | | couponUrl = couponInfo.getLink(); |
| | | } |
| | | String materialId = "https://item.jd.com/" + goodsVO.getGoodsId() + ".html"; |
| | | try { |
| | | jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null, pidManager.getPidCache(system, Constant.SOURCE_TYPE_JD, SystemPIDInfo.PidType.share), |
| | | user.getId() + ""); |
| | | } catch (Exception e) { |
| | | logger.warn(String.format("京东转链出错:materialId-%s couponUrl-%s",materialId,couponUrl), e); |
| | | } |
| | | } else if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_PDD) { |
| | | PDDGoodsDetail pddGoodsDetail = PinDuoDuoApiUtil.getGoodsDetail(goodsVO.getGoodsId()); |
| | | if (pddGoodsDetail == null) { |
| | | return null; |
| | | } |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("count", count); |
| | | data.put("list", getGson().toJson(list)); |
| | | out.print(JsonUtil.loadTrueResult(data)); |
| | | } |
| | | jumpLink = PinDuoDuoApiUtil.getPromotionUrl(pddGoodsDetail.getGoodsSign(), pidManager.getPidCache(system, Constant.SOURCE_TYPE_PDD, SystemPIDInfo.PidType.share), user.getId() + ""); |
| | | } |
| | | |
| | | /** |
| | | * 活动列表 |
| | | * |
| | | * @param acceptData |
| | | * @param out |
| | | */ |
| | | private void getSpecialList(AcceptData acceptData, Integer page, Long subId, PrintWriter out) { |
| | | if (subId == null) { |
| | | out.print(JsonUtil.loadFalseResult("分类id不能为空")); |
| | | return; |
| | | } |
| | | FileUploadResult uploadResult = qrCodeService.drawDynamicGoodsPoster(jumpLink, user.getPortrait(), inviteCode, |
| | | mainPic, goodsVO); |
| | | if (uploadResult != null) { |
| | | return uploadResult.getUrl(); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | // 平台区分 |
| | | int platformCode = Constant.getPlatformCode(acceptData.getPlatform()); |
| | | List<String> listKey = new ArrayList<String>(); |
| | | /** |
| | | * 评论复制-H5 |
| | | * |
| | | * @param acceptData |
| | | * @param id |
| | | * @param cid 评论id |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "evaluateComment", method = RequestMethod.POST) |
| | | public void evaluateComment(AcceptData acceptData, Long uid, String id, String cid, PrintWriter out) { |
| | | if (StringUtil.isNullOrEmpty(id)) { |
| | | out.print(JsonUtil.loadFalseResult("id不能为空")); |
| | | return; |
| | | } |
| | | |
| | | if (subId == 1) { // 淘宝 |
| | | listKey.add("special_channel_tb"); |
| | | } else if (subId == 2) { // 京东 |
| | | listKey.add("special_channel_jd"); |
| | | } else if (subId == 3) { // 拼多多 |
| | | listKey.add("special_channel_pdd"); |
| | | } else { // 全部 |
| | | listKey.add("special_channel_tb"); |
| | | listKey.add("special_channel_jd"); |
| | | listKey.add("special_channel_pdd"); |
| | | } |
| | | GoodsEvaluate goodsEvaluate = goodsEvaluateService.getById(id); |
| | | if (goodsEvaluate == null) { |
| | | out.print(JsonUtil.loadFalseResult("该内容已不存在")); |
| | | return; |
| | | } |
| | | |
| | | List<Special> list = specialService.listByPlaceKeyHasLabel((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, |
| | | listKey, platformCode, Integer.parseInt(acceptData.getVersion())); |
| | | UserInfo user = userInfoService.getUserByIdWithMybatis(uid); |
| | | if (user == null) { |
| | | out.print(JsonUtil.loadFalseResult("用户未登录")); |
| | | return; |
| | | } |
| | | |
| | | long time = System.currentTimeMillis(); |
| | | if (user != null && user.getState() != UserInfo.STATE_NORMAL) { |
| | | out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); |
| | | return; |
| | | } |
| | | |
| | | // 删除尚未启用的过期的 |
| | | for (int i = 0; i < list.size(); i++) { |
| | | Special special = list.get(i); |
| | | if (special.getState() == 1L) { |
| | | list.remove(i--); |
| | | } else { |
| | | if (special.getStartTime() != null && special.getEndTime() != null) |
| | | special.setTimeTask(true); |
| | | else |
| | | special.setTimeTask(false); |
| | | if (userFunctionsLimitService.isLimit(uid, SystemFunction.share, new Date())) { |
| | | out.print(JsonUtil.loadFalseResult(1, "该功能限制使用")); |
| | | return; |
| | | } |
| | | |
| | | if (special.isTimeTask()) { |
| | | if (time < special.getStartTime().getTime() || time > special.getEndTime().getTime()) { |
| | | list.remove(i--); |
| | | } else// 设置倒计时 |
| | | { |
| | | special.setCountDownTime((special.getEndTime().getTime() - time) / 1000); |
| | | } |
| | | } |
| | | UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid); |
| | | String relationId = null; |
| | | if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null |
| | | && taoBaoInfo.getRelationValid() == true) |
| | | relationId = taoBaoInfo.getRelationId(); |
| | | |
| | | List<SpecialLabel> listLabels = special.getListLabels(); |
| | | if (listLabels != null && !listLabels.isEmpty()) { |
| | | List<ClientTextStyleVO> labels = new ArrayList<>(); |
| | | for (SpecialLabel specialLabel : listLabels) { |
| | | labels.add(new ClientTextStyleVO(specialLabel.getName(), specialLabel.getBgColor())); |
| | | } |
| | | special.setLabels(labels); |
| | | } |
| | | } |
| | | } |
| | | if (StringUtil.isNullOrEmpty(relationId)) { |
| | | out.print(JsonUtil.loadFalseResult(2, "淘宝未授权,请前往\"我的\"绑定淘宝账号")); |
| | | return; |
| | | } |
| | | |
| | | long count = specialService.countByPlaceKeyList(listKey, platformCode, |
| | | Integer.parseInt(acceptData.getVersion())); |
| | | String text = ""; |
| | | CommentInfo comment = null; |
| | | List<CommentInfo> comments = goodsEvaluate.getComments(); |
| | | if (comments != null) { |
| | | for (CommentInfo commentInfo : comments) { |
| | | if (cid.equals(commentInfo.getId())) { |
| | | text = commentInfo.getContent(); |
| | | comment = commentInfo; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation(); |
| | | Gson gson = gsonBuilder.create(); |
| | | JSONObject data = new JSONObject(); |
| | | data.put("count", count); |
| | | data.put("list", gson.toJson(list)); |
| | | out.print(JsonUtil.loadTrueResult(data)); |
| | | } |
| | | String newText = text; // 非通用券需要验证 |
| | | |
| | | /** |
| | | * 时间处理 |
| | | * |
| | | * @return |
| | | */ |
| | | private Gson getGson() { |
| | | GsonBuilder gb = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()); |
| | | gb.excludeFieldsWithoutExposeAnnotation(); |
| | | gb.registerTypeAdapter(Date.class, new JsonSerializer<Date>() { |
| | | @Override |
| | | public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) { |
| | | String desc = ""; |
| | | if (value != null) { |
| | | // 判断是否是同一天 |
| | | //特价只需要复制文字,不需要转链 |
| | | if (acceptData.getSystem() == SystemEnum.yhqjx || acceptData.getSystem() == SystemEnum.hsb) { |
| | | newText = GoodsTextUtil.decodeAppHtmlText(newText); |
| | | //只复制文字 |
| | | JSONObject data = new JSONObject(); |
| | | data.put("text", newText); |
| | | out.print(JsonUtil.loadTrueResult(data)); |
| | | return; |
| | | } |
| | | |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.setTime(value); |
| | | int y1 = calendar.get(Calendar.YEAR);// 获取年份 |
| | | int d1 = calendar.get(Calendar.DAY_OF_YEAR);// 获取年中第几天 |
| | | |
| | | Date nowDate = new Date(); |
| | | Calendar calendar2 = Calendar.getInstance(); |
| | | calendar2.setTime(nowDate); |
| | | int y2 = calendar2.get(Calendar.YEAR);// 获取年份 |
| | | int d2 = calendar2.get(Calendar.DAY_OF_YEAR);// 获取年中第几天 |
| | | if (comment != null && (comment.getNeedSpin() == null || comment.getNeedSpin())) { |
| | | try { |
| | | newText = convertLinkManager.convertLinkFromText(acceptData.getSystem(), text, uid, true, true); |
| | | } catch (ConvertLinkException e) { |
| | | if (e.getCode() != ConvertLinkException.CODE_NONE) { |
| | | out.print(JsonUtil.loadFalseResult("评论生成失败")); |
| | | return; |
| | | } |
| | | } catch (Exception e) { |
| | | LogHelper.errorDetailInfo(e); |
| | | out.print(JsonUtil.loadFalseResult("评论生成失败")); |
| | | return; |
| | | } |
| | | } |
| | | |
| | | long old = value.getTime(); |
| | | long now = nowDate.getTime(); |
| | | if (y1 == y2) { |
| | | if (d1 == d2) { |
| | | long cha = now - old; |
| | | if (cha < 1000 * 60 * 2L) { |
| | | desc = "刚刚"; |
| | | } else if (cha < 1000 * 60 * 60L) { |
| | | desc = (cha / (1000 * 60)) + "分钟前"; |
| | | } else { |
| | | desc = (cha / (1000 * 60 * 60)) + "小时前"; |
| | | } |
| | | } else if (d2 - d1 == 1) { |
| | | desc = "昨天"; |
| | | } else { |
| | | desc = (d2 - d1) + "天前"; |
| | | } |
| | | } else { |
| | | int timeDistance = 0; |
| | | for (int i = y1; i < y2; i++) { |
| | | if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) { |
| | | timeDistance += 366; // 闰年 |
| | | } else { |
| | | timeDistance += 365; // 不是闰年 |
| | | } |
| | | } |
| | | desc = timeDistance + (d2 - d1) + "天前"; |
| | | } |
| | | // 替换价格 |
| | | if (goodsEvaluate.getType() == EvaluateEnum.single) { |
| | | GoodsDetailVO goods = goodsEvaluate.getGoods(); |
| | | newText = newText.replace("[原价]", MoneyBigDecimalUtil.getWithNoZera(goods.getZkPrice()) + ""); |
| | | if (!goods.isHasCoupon()) { |
| | | newText = newText.replace("领券抢购", "抢购"); |
| | | newText = newText.replace("【券后价】[券后价]元", ""); |
| | | } else { |
| | | newText = newText.replace("[券后价]", MoneyBigDecimalUtil.getWithNoZera(goods.getCouponPrice()) + ""); |
| | | } |
| | | newText = newText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n"); |
| | | } |
| | | |
| | | return new JsonPrimitive(desc); |
| | | } |
| | | JSONObject data = new JSONObject(); |
| | | data.put("text", newText); |
| | | out.print(JsonUtil.loadTrueResult(data)); |
| | | |
| | | return new JsonPrimitive(""); |
| | | } |
| | | }); |
| | | executor.execute(new Runnable() { |
| | | @Override |
| | | public void run() { // 添加每日统计 |
| | | dailyCountMomentsService.addCopyComment(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | Gson gson = gb.create(); |
| | | return gson; |
| | | } |
| | | /** |
| | | * 评论复制-专题 |
| | | * |
| | | * @param acceptData |
| | | * @param id |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "copySpecialComment", method = RequestMethod.POST) |
| | | public void copySpecialComment(AcceptData acceptData, Long uid, Long id, PrintWriter out) { |
| | | if (uid == null || id == null) { |
| | | out.print(JsonUtil.loadFalseResult("参数不能为空")); |
| | | return; |
| | | } |
| | | |
| | | /** |
| | | * 活动列表 |
| | | * |
| | | * @param acceptData |
| | | * @param out |
| | | */ |
| | | private void getArticleList(AcceptData acceptData, Integer page, String key, boolean search, PrintWriter out) { |
| | | List<ArticleVO> list = articleOfficialService.queryValid((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, |
| | | key); |
| | | if (list != null) { |
| | | for (ArticleVO article : list) { |
| | | String tags = article.getTags(); |
| | | if (StringUtil.isNullOrEmpty(tags)) { |
| | | continue; |
| | | } |
| | | CommonShareInfo shareInfo = commonShareInfoService.getByPidAndType(id, CommonShareInfoEnum.special.name()); |
| | | if (shareInfo == null || StringUtil.isNullOrEmpty(shareInfo.getComment())) { |
| | | out.print(JsonUtil.loadFalseResult("该内容已不存在")); |
| | | return; |
| | | } |
| | | |
| | | String[] arrayTags = tags.split("\\s+"); |
| | | if (arrayTags == null || arrayTags.length == 0) { |
| | | continue; |
| | | } |
| | | UserInfo user = userInfoService.getUserByIdWithMybatis(uid); |
| | | if (user == null) { |
| | | out.print(JsonUtil.loadFalseResult("用户未登录")); |
| | | return; |
| | | } |
| | | |
| | | String[] arrayTagsColour = null; |
| | | String tagsColour = article.getTagsColour(); |
| | | if (!StringUtil.isNullOrEmpty(tagsColour)) { |
| | | arrayTagsColour = tagsColour.split("\\s+"); |
| | | } |
| | | if (user != null && user.getState() != UserInfo.STATE_NORMAL) { |
| | | out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); |
| | | return; |
| | | } |
| | | |
| | | String color = "#FE0014"; |
| | | List<ClientTextStyleVO> labels = new ArrayList<ClientTextStyleVO>(); |
| | | for (int i = 0; i < arrayTags.length; i++) { |
| | | String tag = arrayTags[i]; |
| | | if (arrayTagsColour != null && arrayTagsColour.length == arrayTags.length) { |
| | | color = arrayTagsColour[i]; |
| | | } |
| | | ClientTextStyleVO styleVO = new ClientTextStyleVO(); |
| | | styleVO.setColor(color); |
| | | styleVO.setContent(tag); |
| | | labels.add(styleVO); |
| | | } |
| | | article.setLabels(labels); |
| | | } |
| | | } |
| | | UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid); |
| | | String relationId = null; |
| | | if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null |
| | | && taoBaoInfo.getRelationValid() == true) |
| | | relationId = taoBaoInfo.getRelationId(); |
| | | |
| | | GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation(); |
| | | Gson gson = gsonBuilder.create(); |
| | | if (StringUtil.isNullOrEmpty(relationId)) { |
| | | out.print(JsonUtil.loadFalseResult(2, "淘宝未授权,请前往\"我的\"绑定淘宝账号")); |
| | | return; |
| | | } |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | if (page == 1 && !search) { |
| | | List<SwiperPicture> banners = swiperPictureService.getByBannerCardAndVersion("article_banners", |
| | | acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion())); |
| | | if (banners == null) |
| | | banners = new ArrayList<>(); |
| | | data.put("banners", gson.toJson(banners)); |
| | | String text = shareInfo.getComment(); |
| | | String newText = text; |
| | | if (shareInfo.getNeedSpin() != null && shareInfo.getNeedSpin()) { |
| | | try { |
| | | newText = convertLinkManager.convertLinkFromText(acceptData.getSystem(), text, uid, true, true); |
| | | } catch (ConvertLinkException e) { |
| | | if (e.getCode() != ConvertLinkException.CODE_NONE) { |
| | | out.print(JsonUtil.loadFalseResult("评论生成失败")); |
| | | return; |
| | | } |
| | | } catch (Exception e) { |
| | | LogHelper.errorDetailInfo(e); |
| | | out.print(JsonUtil.loadFalseResult("评论生成失败")); |
| | | return; |
| | | } |
| | | } |
| | | |
| | | List<Special> listSpecial = specialService.listByVersion(0, Integer.MAX_VALUE, "article_specials", |
| | | acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion())); |
| | | if (listSpecial == null) |
| | | listSpecial = new ArrayList<>(); |
| | | JSONObject data = new JSONObject(); |
| | | data.put("text", newText); |
| | | out.print(JsonUtil.loadTrueResult(data)); |
| | | } |
| | | |
| | | for (Special special : listSpecial) { |
| | | boolean needLogin = special.isJumpLogin(); |
| | | JumpDetailV2 jumpDetail = special.getJumpDetail(); |
| | | if (jumpDetail != null) { |
| | | jumpDetail.setNeedLogin(needLogin); |
| | | special.setJumpDetail(jumpDetail); |
| | | } |
| | | } |
| | | data.put("specials", gson.toJson(listSpecial)); |
| | | } |
| | | data.put("count", articleOfficialService.countValid(key)); |
| | | data.put("list", gson.toJson(list)); |
| | | out.print(JsonUtil.loadTrueResult(data)); |
| | | } |
| | | @RequestMapping(value = "getActivityDetail") |
| | | public void getActivityDetail(String callback, AcceptData acceptData, Long uid, String type, String id, |
| | | PrintWriter out) { |
| | | if (uid == null || StringUtil.isNullOrEmpty(id) || StringUtil.isNullOrEmpty(type)) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("参数不能为空")); |
| | | return; |
| | | } |
| | | |
| | | /** |
| | | * 文章搜索 |
| | | * |
| | | * @param acceptData |
| | | * @param page |
| | | * @param key |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "readArticle", method = RequestMethod.POST) |
| | | public void readArticle(AcceptData acceptData, String id, PrintWriter out) { |
| | | if (StringUtil.isNullOrEmpty(id)) { |
| | | out.print(JsonUtil.loadFalseResult("id不能为空")); |
| | | return; |
| | | } |
| | | articleOfficialService.updateReadNum(id); |
| | | out.print(JsonUtil.loadTrueResult("操作成功")); |
| | | } |
| | | String title = ""; |
| | | String comment = ""; |
| | | String params = ""; |
| | | String desc = ""; |
| | | Date startTime = null; |
| | | Date endTime = null; |
| | | JumpDetailV2 jumpDetail = null; |
| | | List<String> imgs = new ArrayList<>(); |
| | | if ("circle".equalsIgnoreCase(type)) { // 发圈活动 |
| | | GoodsEvaluate evaluate = goodsEvaluateService.getById(id); |
| | | if (evaluate == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该活动已下架")); |
| | | return; |
| | | } |
| | | |
| | | /** |
| | | * 文章搜索 |
| | | * |
| | | * @param acceptData |
| | | * @param page |
| | | * @param key |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "searchArticle", method = RequestMethod.POST) |
| | | public void searchArticle(AcceptData acceptData, Integer page, String key, PrintWriter out) { |
| | | getArticleList(acceptData, page, key, true, out); |
| | | } |
| | | title = evaluate.getTitle(); |
| | | List<CommentInfo> comments = evaluate.getComments(); |
| | | if (comments != null && comments.size() > 0) { |
| | | comment = comments.get(0).getContent(); |
| | | } |
| | | |
| | | /** |
| | | * 文章搜索 |
| | | * |
| | | * @param acceptData |
| | | * @param page |
| | | * @param key |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "getArticleHot", method = RequestMethod.POST) |
| | | public void getArticleHot(AcceptData acceptData, PrintWriter out) { |
| | | JSONObject data = new JSONObject(); |
| | | data.put("words", configService.get(ConfigKeyEnum.articleHotWords.getKey())); |
| | | out.print(JsonUtil.loadTrueResult(data)); |
| | | } |
| | | String jumpLink = null; |
| | | if (!StringUtil.isNullOrEmpty(evaluate.getJumpLink())) { |
| | | jumpLink = evaluate.getJumpLink(); |
| | | } |
| | | |
| | | /** |
| | | * 2.0.7版本后调用 动态列表(适用于发圈与素材) |
| | | * |
| | | * @param acceptData |
| | | * @param page |
| | | * @param cid |
| | | * @param subId |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "getDynamicList", method = RequestMethod.POST) |
| | | public void getDynamicListNew(AcceptData acceptData, Integer page, Long cid, String subId, PrintWriter out) { |
| | | List<ImgInfo> imgList = evaluate.getImgList(); |
| | | if (imgList != null && imgList.size() > 0) { |
| | | for (ImgInfo imgInfo : imgList) { |
| | | if (!StringUtil.isNullOrEmpty(imgInfo.getUrl()) |
| | | && (imgInfo.getType() == ImgEnum.img || imgInfo.getType() == ImgEnum.activity)) { |
| | | imgs.add(imgInfo.getUrl()); |
| | | } |
| | | |
| | | try { |
| | | int type = 1; |
| | | if (cid == TYPE_FAQUAN) { |
| | | type = 1; |
| | | } else if (cid == TYPE_SUCAI) { |
| | | type = 2; |
| | | } |
| | | if (imgInfo.getType() == ImgEnum.img || imgInfo.getType() == ImgEnum.activity) { |
| | | if (StringUtil.isNullOrEmpty(jumpLink) && !StringUtil.isNullOrEmpty(imgInfo.getActivityUrl())) { |
| | | jumpLink = imgInfo.getActivityUrl(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | List<GoodsEvaluate> list = goodsEvaluateService.queryMaterialsCache((page - 1) * Constant.PAGE_SIZE, |
| | | Constant.PAGE_SIZE, type); |
| | | if (list == null) { |
| | | list = new ArrayList<>(); |
| | | } |
| | | int platformCode = Constant.getPlatformCode(acceptData.getPlatform()); |
| | | jumpDetail = jumpDetailV2Service.getByTypeCache("web", platformCode, |
| | | Integer.parseInt(acceptData.getVersion()), acceptData.getSystem()); |
| | | JSONObject inner = new JSONObject(); |
| | | inner.put("url", jumpLink); |
| | | params = inner.toString(); |
| | | } else { |
| | | long pid = Long.parseLong(id); |
| | | if (CommonShareInfoEnum.special.name().equalsIgnoreCase(type)) { |
| | | Special special = specialService.selectByPrimaryKey(pid); |
| | | if (special == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该活动已下架")); |
| | | return; |
| | | } |
| | | |
| | | GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation(); |
| | | gsonBuilder.registerTypeAdapter(ImgEnum.class, new JsonSerializer<ImgEnum>() { |
| | | @Override |
| | | public JsonElement serialize(ImgEnum value, Type theType, JsonSerializationContext context) { |
| | | if (value == null) { |
| | | return new JsonPrimitive(""); |
| | | } else { |
| | | return new JsonPrimitive(value.getVlaue()); |
| | | } |
| | | } |
| | | }).registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() { |
| | | @Override |
| | | public JsonElement serialize(BigDecimal value, Type theType, JsonSerializationContext context) { |
| | | if (value == null) { |
| | | return new JsonPrimitive(""); |
| | | } else { |
| | | // 保留2位小数 |
| | | return new JsonPrimitive(MoneyBigDecimalUtil.getWithNoZera(value)+""); |
| | | } |
| | | } |
| | | }).registerTypeAdapter(Date.class, new JsonSerializer<Date>() { |
| | | @Override |
| | | public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) { |
| | | String desc = ""; |
| | | if (value != null) { |
| | | // 判断是否是同一天 |
| | | params = special.getParams(); |
| | | jumpDetail = special.getJumpDetail(); |
| | | if (!StringUtil.isNullOrEmpty(special.getPicture())) { |
| | | imgs.add(special.getPicture()); |
| | | } |
| | | |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.setTime(value); |
| | | int y1 = calendar.get(Calendar.YEAR);// 获取年份 |
| | | int d1 = calendar.get(Calendar.DAY_OF_YEAR);// 获取年中第几天 |
| | | title = special.getName(); |
| | | |
| | | Date nowDate = new Date(); |
| | | Calendar calendar2 = Calendar.getInstance(); |
| | | calendar2.setTime(nowDate); |
| | | int y2 = calendar2.get(Calendar.YEAR);// 获取年份 |
| | | int d2 = calendar2.get(Calendar.DAY_OF_YEAR);// 获取年中第几天 |
| | | desc = special.getRemark(); |
| | | startTime = special.getStartTime(); |
| | | endTime = special.getEndTime(); |
| | | } else if (CommonShareInfoEnum.banner.name().equalsIgnoreCase(type)) { |
| | | SwiperPicture swiper = swiperPictureService.selectByPrimaryKey(pid); |
| | | if (swiper == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该活动已下架")); |
| | | return; |
| | | } |
| | | params = swiper.getParams(); |
| | | jumpDetail = swiper.getJumpDetail(); |
| | | if (!StringUtil.isNullOrEmpty(swiper.getSrc())) { |
| | | imgs.add(swiper.getSrc()); |
| | | } |
| | | |
| | | long old = value.getTime(); |
| | | long now = nowDate.getTime(); |
| | | if (y1 == y2) { |
| | | if (d1 == d2) { |
| | | long cha = now - old; |
| | | if (cha < 1000 * 60 * 2L) { |
| | | desc = "刚刚"; |
| | | } else if (cha < 1000 * 60 * 60L) { |
| | | desc = (cha / (1000 * 60)) + "分钟前"; |
| | | } else { |
| | | desc = (cha / (1000 * 60 * 60)) + "小时前"; |
| | | } |
| | | } else if (d2 - d1 == 1) { |
| | | desc = "昨天"; |
| | | } else { |
| | | desc = (d2 - d1) + "天前"; |
| | | } |
| | | } else { |
| | | int timeDistance = 0; |
| | | for (int i = y1; i < y2; i++) { |
| | | if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) { |
| | | timeDistance += 366; // 闰年 |
| | | } else { |
| | | timeDistance += 365; // 不是闰年 |
| | | } |
| | | } |
| | | desc = timeDistance + (d2 - d1) + "天前"; |
| | | } |
| | | title = swiper.getTitle(); |
| | | desc = swiper.getDesc(); |
| | | startTime = swiper.getStartTime(); |
| | | endTime = swiper.getEndTime(); |
| | | } |
| | | CommonShareInfo shareInfo = commonShareInfoService.getByPidAndType(pid, type); |
| | | if (shareInfo != null && !StringUtil.isNullOrEmpty(shareInfo.getComment())) { |
| | | comment = shareInfo.getComment(); |
| | | } |
| | | } |
| | | |
| | | return new JsonPrimitive(desc); |
| | | } |
| | | if (!StringUtil.isNullOrEmpty(comment)) { // 替换淘宝官方活动 |
| | | List<String> activityIdList = convertLinkManager.getTaoBaoOfficialActivityId(comment); |
| | | for (String st : activityIdList) |
| | | comment = comment.replace(st, ""); |
| | | } |
| | | |
| | | return new JsonPrimitive(""); |
| | | } |
| | | }); |
| | | Gson gson = gsonBuilder.create(); |
| | | long count = goodsEvaluateService.countValidMaterials(type); |
| | | JSONObject data = new JSONObject(); |
| | | data.put("title", title); |
| | | data.put("desc", desc); |
| | | data.put("comment", comment); |
| | | data.put("params", params); |
| | | data.put("jumpDetail", jumpDetail); |
| | | data.put("imgs", imgs); |
| | | if (startTime != null) { |
| | | data.put("startTime", TimeUtil.getGernalTime(startTime.getTime(), "yyyy.MM.dd")); |
| | | } |
| | | |
| | | JSONArray jsonArray = new JSONArray(); |
| | | if (endTime != null) { |
| | | data.put("endTime", TimeUtil.getGernalTime(endTime.getTime(), "yyyy.MM.dd")); |
| | | } |
| | | |
| | | String listStr = gson.toJson(list); |
| | | JSONArray array = JSONArray.fromObject(listStr); |
| | | for (int i = 0; i < array.size(); i++) { |
| | | Object object = array.get(i); |
| | | JSONObject json = JSONObject.fromObject(object); |
| | | Object shareNum = json.get("shareNum"); |
| | | if (shareNum != null) { |
| | | int num = Integer.parseInt(shareNum.toString()); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | } |
| | | |
| | | if (num >= 100000000) { |
| | | double sales = num; |
| | | String salesCountMidea = String.format("%.1f", sales / 100000000); |
| | | json.put("shareNum", salesCountMidea + "亿"); |
| | | } else if (num >= 10000) { |
| | | double sales = num; |
| | | String salesCountMidea = String.format("%.1f", sales / 10000); |
| | | json.put("shareNum", salesCountMidea + "万"); |
| | | } |
| | | } |
| | | jsonArray.add(json); |
| | | } |
| | | /** |
| | | * 评论复制-专题 |
| | | * |
| | | * @param acceptData |
| | | * @param id |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "copyShareComment") |
| | | public void copyShareComment(String callback, AcceptData acceptData, Long uid, String id, String type, |
| | | PrintWriter out) { |
| | | if (uid == null || StringUtil.isNullOrEmpty(id) || StringUtil.isNullOrEmpty(type)) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("参数不能为空")); |
| | | return; |
| | | } |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("count", count); |
| | | data.put("list", jsonArray); |
| | | out.print(JsonUtil.loadTrueResult(data)); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | out.print(JsonUtil.loadFalseResult(1, "查询信息失败")); |
| | | LogHelper.errorDetailInfo(e); |
| | | } |
| | | if ("circle".equalsIgnoreCase(type)) { // 发圈活动 |
| | | copyActivityComment(callback, acceptData, uid, id, out); |
| | | return; |
| | | } |
| | | |
| | | } |
| | | long pid = Long.parseLong(id); |
| | | CommonShareInfo shareInfo = commonShareInfoService.getByPidAndType(pid, type); |
| | | if (shareInfo == null || StringUtil.isNullOrEmpty(shareInfo.getComment())) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该内容已不存在")); |
| | | return; |
| | | } |
| | | |
| | | /** |
| | | * |
| | | * @param acceptData |
| | | * @param uid |
| | | * @param id |
| | | * @param type |
| | | * 1-放大 2-保存 3-分享 |
| | | * @param goodsId |
| | | * @param goodsType |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "evaluateShare", method = RequestMethod.POST) |
| | | public void evaluateShare(AcceptData acceptData, Long uid, String id, Integer type, Long goodsId, Integer goodsType, |
| | | PrintWriter out) { |
| | | try { |
| | | if (uid == null) { |
| | | out.print(JsonUtil.loadFalseResult("用户未登录")); |
| | | return; |
| | | } |
| | | UserInfo user = userInfoService.getUserByIdWithMybatis(uid); |
| | | if (user == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("用户未登录")); |
| | | return; |
| | | } |
| | | |
| | | if (StringUtil.isNullOrEmpty(id) || type == null) { |
| | | out.print(JsonUtil.loadFalseResult("传递参数不能为空")); |
| | | return; |
| | | } |
| | | if (user != null && user.getState() != UserInfo.STATE_NORMAL) { |
| | | JsonUtil.printMode(out, callback, |
| | | JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); |
| | | return; |
| | | } |
| | | |
| | | if (type == 1 && (goodsId == null || goodsType == null)) { |
| | | out.print(JsonUtil.loadFalseResult("商品参数不能为空")); |
| | | return; |
| | | } |
| | | UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid); |
| | | String relationId = null; |
| | | if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null |
| | | && taoBaoInfo.getRelationValid() == true) |
| | | relationId = taoBaoInfo.getRelationId(); |
| | | |
| | | GoodsEvaluate goodsEvaluate = goodsEvaluateService.getById(id); |
| | | if (goodsEvaluate == null) { |
| | | out.print(JsonUtil.loadFalseResult("该内容已不存在")); |
| | | return; |
| | | } |
| | | if (StringUtil.isNullOrEmpty(relationId)) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "淘宝未授权,请前往\"我的\"绑定淘宝账号")); |
| | | return; |
| | | } |
| | | |
| | | UserInfo user = userInfoService.getUserByIdWithMybatis(uid); |
| | | if (user == null) { |
| | | out.print(JsonUtil.loadFalseResult("用户未登录")); |
| | | return; |
| | | } |
| | | String text = shareInfo.getComment(); |
| | | String newText = text; |
| | | if (shareInfo.getNeedSpin() != null && shareInfo.getNeedSpin()) { |
| | | try { |
| | | newText = convertLinkManager.convertLinkFromText(acceptData.getSystem(), text, uid, true, true); |
| | | } catch (ConvertLinkException e) { |
| | | if (e.getCode() != ConvertLinkException.CODE_NONE) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("评论生成失败")); |
| | | return; |
| | | } |
| | | } catch (Exception e) { |
| | | LogHelper.errorDetailInfo(e); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("评论生成失败")); |
| | | return; |
| | | } |
| | | } |
| | | |
| | | if (user != null && user.getState() != UserInfo.STATE_NORMAL) { |
| | | out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); |
| | | return; |
| | | } |
| | | JSONObject data = new JSONObject(); |
| | | data.put("text", newText); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | } |
| | | |
| | | UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid); |
| | | String relationId = null; |
| | | if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null |
| | | && taoBaoInfo.getRelationValid() == true) |
| | | relationId = taoBaoInfo.getRelationId(); |
| | | /** |
| | | * 活动分享绘图 |
| | | * |
| | | * @param type |
| | | * @param id |
| | | * @param erCodeContent |
| | | * @return String 返回类型 |
| | | * @throws |
| | | * @Title: createActivityShareImg |
| | | * @Description: |
| | | */ |
| | | private String createActivityShareImg(String type, String id, String erCodeContent) { |
| | | |
| | | if (StringUtil.isNullOrEmpty(relationId)) { |
| | | out.print(JsonUtil.loadFalseResult(2, "淘宝未授权,请前往\"我的\"绑定淘宝账号")); |
| | | return; |
| | | } |
| | | String title = ""; |
| | | String desc = ""; |
| | | String img = ""; |
| | | if ("circle".equalsIgnoreCase(type)) { |
| | | |
| | | String inviteCode = userInfoExtraService.getInviteCodeByUid(uid); |
| | | if (StringUtil.isNullOrEmpty(inviteCode)) { |
| | | out.print(JsonUtil.loadFalseResult(1, "邀请码未激活")); |
| | | return; |
| | | } |
| | | } else if ("banner".equalsIgnoreCase(type)) { |
| | | SwiperPicture picture = swiperPictureService.selectByPrimaryKey(Long.parseLong(id)); |
| | | title = picture.getTitle(); |
| | | desc = picture.getDesc(); |
| | | img = picture.getSrc(); |
| | | } else if ("special".equalsIgnoreCase(type)) { |
| | | Special special = specialService.selectByPrimaryKey(Long.parseLong(id)); |
| | | title = special.getName(); |
| | | desc = special.getRemark(); |
| | | img = special.getPicture(); |
| | | } |
| | | |
| | | List<ImgInfo> imgs = goodsEvaluate.getImgList(); |
| | | if (imgs == null) { |
| | | out.print(JsonUtil.loadFalseResult("该图片内容已不存在")); |
| | | return; |
| | | } |
| | | try { |
| | | InputStream erCodeInputStream = null; |
| | | erCodeInputStream = QRCodeUtil.getInstance(250).encode(erCodeContent); |
| | | int[] size = new int[2]; |
| | | try { |
| | | size = ImageUtil.getImgWidthAndHeight(img); |
| | | } catch (MalformedURLException e) { |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | InputStream resultInputStream = ImageUtil.drawActivityShareImg(HttpUtil.getAsInputStream(img), |
| | | (float) size[0] / size[1], title, desc, erCodeInputStream); |
| | | if (resultInputStream != null) { |
| | | String filePath = FilePathEnum.activityShare.getPath() + UUID.randomUUID().toString().replace("-", "") |
| | | + ".png"; |
| | | FileUploadResult result = COSManager.getInstance().uploadFile(resultInputStream, filePath); |
| | | if (result != null) |
| | | return result.getUrl(); |
| | | } |
| | | } catch (Exception e1) { |
| | | e1.printStackTrace(); |
| | | } |
| | | |
| | | List<String> list = new ArrayList<>(); |
| | | Integer dynamicType = goodsEvaluate.getDynamicType(); |
| | | if (dynamicType == null || dynamicType.intValue() == 2) { |
| | | for (ImgInfo imgInfo : imgs) { |
| | | if (imgInfo.getType() == ImgEnum.goods || imgInfo.getType() == ImgEnum.video) |
| | | continue; |
| | | if (imgInfo.getType() == ImgEnum.img) |
| | | list.add(StringUtil.isNullOrEmpty(imgInfo.getUrlHD()) ? imgInfo.getUrl() : imgInfo.getUrlHD()); |
| | | else if (imgInfo.getType() == ImgEnum.activity) |
| | | if (!StringUtil.isNullOrEmpty(imgInfo.getActivityPic())) { |
| | | list.add(imgInfo.getActivityPic()); |
| | | } |
| | | } |
| | | } else { |
| | | // 单品 |
| | | if (goodsEvaluate.getType() == EvaluateEnum.single) { |
| | | for (ImgInfo imgInfo : imgs) { |
| | | if (imgInfo.getType() == ImgEnum.video) |
| | | continue; |
| | | return null; |
| | | } |
| | | |
| | | GoodsDetailVO goodsVO = imgInfo.getGoodsVO(); |
| | | if (goodsVO == null) { |
| | | list.add(StringUtil.isNullOrEmpty(imgInfo.getUrlHD()) ? imgInfo.getUrl() |
| | | : imgInfo.getUrlHD()); |
| | | continue; |
| | | } |
| | | /** |
| | | * 评论复制-专题 |
| | | * |
| | | * @param acceptData |
| | | * @param id |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "getActivityShareImg") |
| | | public void getActivityShareImg(String callback, AcceptData acceptData, Long uid, String id, String type, |
| | | PrintWriter out) { |
| | | if (uid == null || StringUtil.isNullOrEmpty(id) || StringUtil.isNullOrEmpty(type)) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("参数不能为空")); |
| | | return; |
| | | } |
| | | |
| | | String jumpLink = getJumpLink(goodsVO, user, relationId, inviteCode, imgInfo.getUrl()); |
| | | if (!StringUtil.isNullOrEmpty(jumpLink)) { |
| | | list.add(jumpLink); |
| | | } |
| | | } |
| | | if ("circle".equalsIgnoreCase(type)) { // 发圈活动 |
| | | // copyActivityComment(callback, acceptData, uid, id, out); |
| | | // TODO 分享发圈的图 |
| | | return; |
| | | } |
| | | |
| | | } else if (goodsEvaluate.getType() == EvaluateEnum.multiple) { |
| | | if (type == 1) { |
| | | for (ImgInfo imgInfo : imgs) { |
| | | if (imgInfo.getGoodsVO() != null) |
| | | if (imgInfo.getGoodsVO().getGoodsId().longValue() == goodsId.longValue() |
| | | && imgInfo.getGoodsVO().getGoodsType() == goodsType.intValue()) { |
| | | String jumpLink = getJumpLink(imgInfo.getGoodsVO(), user, relationId, inviteCode, imgInfo.getUrl()); |
| | | if (!StringUtil.isNullOrEmpty(jumpLink)) { |
| | | list.add(jumpLink); |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | } else if (type == 2 || type == 3) { |
| | | for (ImgInfo imgInfo : imgs) { |
| | | if (imgInfo.getGoodsVO() != null) { |
| | | String jumpLink = getJumpLink(imgInfo.getGoodsVO(), user, relationId, inviteCode, imgInfo.getUrl() ); |
| | | if (!StringUtil.isNullOrEmpty(jumpLink)) { |
| | | list.add(jumpLink); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | long pid = Long.parseLong(id); |
| | | CommonShareInfo shareInfo = commonShareInfoService.getByPidAndType(pid, type); |
| | | if (shareInfo == null || StringUtil.isNullOrEmpty(shareInfo.getComment())) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该内容已不存在")); |
| | | return; |
| | | } |
| | | |
| | | } else if (goodsEvaluate.getType() == EvaluateEnum.activity) { |
| | | for (ImgInfo imgInfo : imgs) { |
| | | if (imgInfo.getType() == ImgEnum.goods || imgInfo.getType() == ImgEnum.video) |
| | | continue; |
| | | if (imgInfo.getType() == ImgEnum.img) |
| | | list.add(StringUtil.isNullOrEmpty(imgInfo.getUrlHD()) ? imgInfo.getUrl() |
| | | : imgInfo.getUrlHD()); |
| | | else if (imgInfo.getType() == ImgEnum.activity) |
| | | if (!StringUtil.isNullOrEmpty(imgInfo.getActivityPic())) { |
| | | list.add(imgInfo.getActivityPic()); |
| | | }else if(!StringUtil.isNullOrEmpty(imgInfo.getUrl())){ |
| | | list.add(imgInfo.getUrl()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | UserInfo user = userInfoService.getUserByIdWithMybatis(uid); |
| | | if (user == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("用户未登录")); |
| | | return; |
| | | } |
| | | |
| | | Integer shareCount = goodsEvaluate.getShareNum(); |
| | | if (shareCount == null) { |
| | | shareCount = 0; |
| | | } |
| | | if (user != null && user.getState() != UserInfo.STATE_NORMAL) { |
| | | JsonUtil.printMode(out, callback, |
| | | JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); |
| | | return; |
| | | } |
| | | |
| | | if (type == 3) { |
| | | shareCount++; |
| | | goodsEvaluateService.addShareNum(id); |
| | | |
| | | executor.execute(new Runnable() { |
| | | @Override |
| | | public void run() { // 添加每日统计 |
| | | dailyCountMomentsService.addShareClick(); |
| | | } |
| | | }); |
| | | } |
| | | UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid); |
| | | String relationId = null; |
| | | if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null |
| | | && taoBaoInfo.getRelationValid() == true) |
| | | relationId = taoBaoInfo.getRelationId(); |
| | | |
| | | if (list.size() == 0) { |
| | | out.print(JsonUtil.loadFalseResult("该信息已下架")); |
| | | return; |
| | | } |
| | | if (StringUtil.isNullOrEmpty(relationId)) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "淘宝未授权,请前往\"我的\"绑定淘宝账号")); |
| | | return; |
| | | } |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("count", shareCount); |
| | | data.put("list", list); |
| | | out.print(JsonUtil.loadTrueResult(data)); |
| | | } catch (Exception e) { |
| | | out.print(JsonUtil.loadFalseResult("分享图生成失败")); |
| | | return; |
| | | } |
| | | } |
| | | String text = shareInfo.getComment(); |
| | | String newText = text; |
| | | String imgUrl = null; |
| | | if (shareInfo.getNeedSpin() != null && shareInfo.getNeedSpin()) { |
| | | try { |
| | | String erCodeContent = ""; |
| | | newText = convertLinkManager.convertLinkFromText(acceptData.getSystem(), text, uid, true, true); |
| | | // 获取口令 |
| | | List<String> tokenList = TaoBaoUtil.getTokenListFromTextWithKuoHao(newText); |
| | | if (tokenList != null && tokenList.size() > 0) { |
| | | // 构造分享链接 |
| | | erCodeContent = ShareControllerV2.getTaoBaoActiivtyERCodeContentNew( |
| | | configService.getValue(ConfigKeyEnum.taobaoShareQrcodeText.getKey(), SystemInfoUtil.getSystem(acceptData)), tokenList.get(0)); |
| | | } else { |
| | | // 获取链接 |
| | | List<String> urlList = JDUtil.getJDShortLinksFromText(newText); |
| | | if (urlList != null && urlList.size() > 0) { |
| | | erCodeContent = urlList.get(0); |
| | | } else { |
| | | urlList = PinDuoDuoUtil.getPDDShortLinksFromText(newText); |
| | | if (urlList != null && urlList.size() > 0) { |
| | | erCodeContent = urlList.get(0); |
| | | } |
| | | } |
| | | } |
| | | |
| | | private String getJumpLink(GoodsDetailVO goodsVO, UserInfo user, String relationId, String inviteCode, String mainPic) { |
| | | String jumpLink = null; |
| | | if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) { |
| | | TaoBaoLink taoBaoLink = null; |
| | | try { |
| | | taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(user.getId(), goodsVO.getGoodsId(), relationId); |
| | | } catch (ShareGoodsException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | jumpLink = ShareControllerV2.getERCodeContentNew( |
| | | configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey()), taoBaoLink.getGoods(), |
| | | TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken())); |
| | | } else if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_JD) { |
| | | JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsVO.getGoodsId()); |
| | | if (jdGoods == null) { |
| | | return null; |
| | | } |
| | | imgUrl = createActivityShareImg(type, id, erCodeContent); |
| | | } catch (ConvertLinkException e) { |
| | | if (e.getCode() != ConvertLinkException.CODE_NONE) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("评论生成失败")); |
| | | return; |
| | | } |
| | | } catch (Exception e) { |
| | | LogHelper.errorDetailInfo(e); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("评论生成失败")); |
| | | return; |
| | | } |
| | | } |
| | | |
| | | String couponUrl = null; |
| | | JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(jdGoods); |
| | | if (couponInfo != null) { |
| | | couponUrl = couponInfo.getLink(); |
| | | } |
| | | String materialId = "https://item.jd.com/" + goodsVO.getGoodsId() + ".html"; |
| | | jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "", |
| | | user.getId() + ""); |
| | | } else if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_PDD) { |
| | | jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goodsVO.getGoodsId(), PinDuoDuoApiUtil.PID_SHARE + "", |
| | | user.getId() + ""); |
| | | } |
| | | if (StringUtil.isNullOrEmpty(imgUrl)) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("分享图生成失败")); |
| | | } else { |
| | | JSONObject data = new JSONObject(); |
| | | data.put("text", newText); |
| | | data.put("img", imgUrl); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | } |
| | | } |
| | | |
| | | FileUploadResult uploadResult = qrCodeService.drawDynamicGoodsPoster(jumpLink, user.getPortrait(), inviteCode, |
| | | mainPic, goodsVO); |
| | | if (uploadResult != null) { |
| | | return uploadResult.getUrl(); |
| | | } |
| | | return null; |
| | | } |
| | | /** |
| | | * 评论复制 |
| | | * |
| | | * @param acceptData |
| | | * @param id |
| | | * @param out |
| | | */ |
| | | private void copyActivityComment(String callback, AcceptData acceptData, Long uid, String id, PrintWriter out) { |
| | | if (StringUtil.isNullOrEmpty(id)) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("id不能为空")); |
| | | return; |
| | | } |
| | | |
| | | /** |
| | | * 评论复制 |
| | | * |
| | | * @param acceptData |
| | | * @param id |
| | | * @param cid |
| | | * 评论id |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "evaluateComment", method = RequestMethod.POST) |
| | | public void evaluateComment(AcceptData acceptData, Long uid, String id, String cid, PrintWriter out) { |
| | | if (StringUtil.isNullOrEmpty(id)) { |
| | | out.print(JsonUtil.loadFalseResult("id不能为空")); |
| | | return; |
| | | } |
| | | GoodsEvaluate goodsEvaluate = goodsEvaluateService.getById(id); |
| | | if (goodsEvaluate == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该内容已不存在")); |
| | | return; |
| | | } |
| | | |
| | | GoodsEvaluate goodsEvaluate = goodsEvaluateService.getById(id); |
| | | if (goodsEvaluate == null) { |
| | | out.print(JsonUtil.loadFalseResult("该内容已不存在")); |
| | | return; |
| | | } |
| | | UserInfo user = userInfoService.getUserByIdWithMybatis(uid); |
| | | if (user == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("用户未登录")); |
| | | return; |
| | | } |
| | | |
| | | UserInfo user = userInfoService.getUserByIdWithMybatis(uid); |
| | | if (user == null) { |
| | | out.print(JsonUtil.loadFalseResult("用户未登录")); |
| | | return; |
| | | } |
| | | if (user != null && user.getState() != UserInfo.STATE_NORMAL) { |
| | | JsonUtil.printMode(out, callback, |
| | | JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); |
| | | return; |
| | | } |
| | | |
| | | if (user != null && user.getState() != UserInfo.STATE_NORMAL) { |
| | | out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); |
| | | return; |
| | | } |
| | | UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid); |
| | | String relationId = null; |
| | | if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null |
| | | && taoBaoInfo.getRelationValid() == true) |
| | | relationId = taoBaoInfo.getRelationId(); |
| | | |
| | | UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid); |
| | | String relationId = null; |
| | | if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null |
| | | && taoBaoInfo.getRelationValid() == true) |
| | | relationId = taoBaoInfo.getRelationId(); |
| | | if (StringUtil.isNullOrEmpty(relationId)) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "淘宝未授权,请前往\"我的\"绑定淘宝账号")); |
| | | return; |
| | | } |
| | | |
| | | if (StringUtil.isNullOrEmpty(relationId)) { |
| | | out.print(JsonUtil.loadFalseResult(2, "淘宝未授权,请前往\"我的\"绑定淘宝账号")); |
| | | return; |
| | | } |
| | | String text = ""; |
| | | CommentInfo comment = null; |
| | | List<CommentInfo> comments = goodsEvaluate.getComments(); |
| | | if (comments != null && comments.size() > 0) { |
| | | CommentInfo info = comments.get(0); |
| | | text = info.getContent(); |
| | | comment = info; |
| | | } |
| | | |
| | | String text = ""; |
| | | CommentInfo comment = null; |
| | | List<CommentInfo> comments = goodsEvaluate.getComments(); |
| | | if (comments != null) { |
| | | for (CommentInfo commentInfo : comments) { |
| | | if (cid.equals(commentInfo.getId())) { |
| | | text = commentInfo.getContent(); |
| | | comment = commentInfo; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | String newText = text; // 非通用券需要验证 |
| | | if (comment != null && (comment.getNeedSpin() == null || comment.getNeedSpin())) { |
| | | try { |
| | | newText = convertLinkManager.convertLinkFromText(acceptData.getSystem(), text, uid, true, true); |
| | | } catch (ConvertLinkException e) { |
| | | if (e.getCode() != ConvertLinkException.CODE_NONE) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("评论生成失败")); |
| | | return; |
| | | } |
| | | } catch (Exception e) { |
| | | LogHelper.errorDetailInfo(e); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("评论生成失败")); |
| | | return; |
| | | } |
| | | } |
| | | JSONObject data = new JSONObject(); |
| | | data.put("text", newText); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | |
| | | String newText = text; // 非通用券需要验证 |
| | | if ((comment != null && comment.getTypeEnum() != CommentInfoEnum.currencyCoupon) |
| | | || goodsEvaluate.getType() == EvaluateEnum.activity) { |
| | | try { |
| | | newText = convertLinkManager.convertLinkFromText(text, uid, true); |
| | | } catch (ConvertLinkExceptionException e) { |
| | | if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) { |
| | | out.print(JsonUtil.loadFalseResult("评论生成失败")); |
| | | return; |
| | | } |
| | | } catch (Exception e) { |
| | | LogHelper.errorDetailInfo(e); |
| | | out.print(JsonUtil.loadFalseResult("评论生成失败")); |
| | | return; |
| | | } |
| | | } |
| | | |
| | | |
| | | // 替换价格 |
| | | if (goodsEvaluate.getType() == EvaluateEnum.single) { |
| | | GoodsDetailVO goods = goodsEvaluate.getGoods(); |
| | | newText = newText.replace("[原价]", MoneyBigDecimalUtil.getWithNoZera(goods.getZkPrice()) +""); |
| | | if (!goods.isHasCoupon()) { |
| | | newText = newText.replace("领券抢购", "抢购"); |
| | | newText = newText.replace("【券后价】[券后价]元", ""); |
| | | } else { |
| | | newText = newText.replace("[券后价]", MoneyBigDecimalUtil.getWithNoZera(goods.getCouponPrice())+""); |
| | | } |
| | | newText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n"); |
| | | } |
| | | |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("text", newText); |
| | | out.print(JsonUtil.loadTrueResult(data)); |
| | | |
| | | executor.execute(new Runnable() { |
| | | @Override |
| | | public void run() { // 添加每日统计 |
| | | dailyCountMomentsService.addCopyComment(); |
| | | } |
| | | }); |
| | | } |
| | | executor.execute(new Runnable() { |
| | | @Override |
| | | public void run() { // 添加每日统计 |
| | | dailyCountMomentsService.addCopyComment(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | } |