| | |
| | | private UserTaoLiJinRecordService userTaoLiJinRecordService;
|
| | |
|
| | | /**
|
| | | * 获取淘宝的分享链接
|
| | | *
|
| | | * @param acceptData
|
| | | * @param uid
|
| | | * -用户ID
|
| | | * @param auctionId-商品ID
|
| | | * @param goodsId-商品ID
|
| | | * @param source
|
| | | * @param totalNum
|
| | | * @param goodsType
|
| | | * @param needGoods
|
| | | * -是否需要商品信息
|
| | | * @param request
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "createShareInfo")
|
| | | public void createShareInfo(AcceptData acceptData, Long uid, Long goodsId, String source, Integer totalNum,
|
| | | Integer goodsType, HttpServletRequest request, PrintWriter out) {
|
| | | Integer goodsType, Boolean needGoods, HttpServletRequest request, PrintWriter out) {
|
| | | if (uid == null || uid <= 0) {
|
| | | out.print(JsonUtil.loadFalseResult(1, "用户ID不能为空"));
|
| | | return;
|
| | |
| | |
|
| | | // 淘宝
|
| | | if (goodsType == null || goodsType == Constant.SOURCE_TYPE_TAOBAO) {
|
| | | createTaoBaoShare(acceptData, uid, goodsId, totalNum, source, request, out);
|
| | | createTaoBaoShare(acceptData, uid, goodsId, totalNum, source, needGoods, request, out);
|
| | | return;
|
| | | }
|
| | |
|
| | | // 京东
|
| | | if (goodsType == Constant.SOURCE_TYPE_JD) {
|
| | | createJDShare(acceptData, uid, goodsId, source, out);
|
| | | createJDShare(acceptData, uid, goodsId, source, needGoods, out);
|
| | | return;
|
| | | }
|
| | |
|
| | | // 拼多多
|
| | | if (goodsType == Constant.SOURCE_TYPE_PDD) {
|
| | | createPDDShare(acceptData, uid, goodsId, source, out);
|
| | | createPDDShare(acceptData, uid, goodsId, source, needGoods, out);
|
| | | return;
|
| | | }
|
| | | }
|
| | |
| | | * @param out
|
| | | */
|
| | | public void createTaoBaoShare(AcceptData acceptData, Long uid, Long goodsId, Integer totalNum, String source,
|
| | | HttpServletRequest request, PrintWriter out) {
|
| | | Boolean needGoods, HttpServletRequest request, PrintWriter out) {
|
| | | if (needGoods == null)
|
| | | needGoods = false;
|
| | |
|
| | | UserExtraTaoBaoInfo extraInfo = userExtraTaoBaoInfoService.getByUid(uid);
|
| | | UserInfoExtra userExtraInfo = userInfoExtraService.getUserInfoExtra(uid);
|
| | | String inviteCode = null;
|
| | |
| | | // 测试
|
| | |
|
| | | TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(uid, goodsId, relationId);
|
| | |
|
| | | if (taoBaoLink != null && taoBaoLink.getGoods() != null && needGoods) {
|
| | | ConfigParamsDTO dto = new ConfigParamsDTO(hongBaoManageService.getFanLiRate(),
|
| | | hongBaoManageService.getShareRate(), new BigDecimal(80));
|
| | | GoodsDetailVO goodsInfo = GoodsDetailVOFactory.convertTaoBao(taoBaoLink.getGoods(), dto);
|
| | | shareInfo.setGoodsInfo(goodsInfo);
|
| | | }
|
| | |
|
| | | String url = String.format("http://%s%s?uid=%s&id=%s&appType=flq", configService.getH5Host(),
|
| | | Constant.systemCommonConfig.getShareGoodsPagePath(), AESUtil.encrypt(uid + "", Constant.UIDAESKEY),
|
| | |
| | | * @param request
|
| | | * @param out
|
| | | */
|
| | | public void createJDShare(AcceptData acceptData, Long uid, Long goodsId, String source, PrintWriter out) {
|
| | | public void createJDShare(AcceptData acceptData, Long uid, Long goodsId, String source, boolean needGoods,
|
| | | PrintWriter out) {
|
| | | JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsId);
|
| | | if (jdGoods == null) {
|
| | | out.print(JsonUtil.loadFalseResult(1, "该商品已下架"));
|
| | |
| | | couponUrl = couponInfo.getLink();
|
| | | }
|
| | | String materialId = "https://item.jd.com/" + goodsId + ".html";
|
| | | String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "", uid + "");
|
| | | String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "",
|
| | | uid + "");
|
| | |
|
| | | ShareInfoVO shareInfo = new ShareInfoVO();
|
| | | shareInfo.setClickUrl(jumpLink);
|
| | |
| | | shareInfo.setRule(configService.get("share_rule_link_jd"));
|
| | | shareInfo.setPictUrl(jdGoods.getPicUrl());
|
| | | shareInfo.setCommentTexts(new ArrayList<>());
|
| | |
|
| | | if (needGoods)
|
| | | shareInfo.setGoodsInfo(GoodsDetailVOFactory.convertJDGoods(jdGoods, new ConfigParamsDTO(
|
| | | hongBaoManageService.getFanLiRate(), hongBaoManageService.getShareRate(), new BigDecimal(80))));
|
| | |
|
| | | String shareText = "";
|
| | | boolean hasCoupon = false;
|
| | |
| | | * @param source
|
| | | * @param out
|
| | | */
|
| | | public void createPDDShare(AcceptData acceptData, Long uid, Long goodsId, String source, PrintWriter out) {
|
| | | public void createPDDShare(AcceptData acceptData, Long uid, Long goodsId, String source, boolean needGoods,
|
| | | PrintWriter out) {
|
| | | PDDGoodsDetail goods = pinDuoDuoCacheUtil.getGoodsInfo(goodsId);
|
| | | if (goods == null) {
|
| | | out.print(JsonUtil.loadFalseResult(1, "该商品已下架"));
|
| | |
| | | shareInfo.setCommentTexts(new ArrayList<>());
|
| | | shareInfo.setRule(configService.get("share_rule_link_pdd"));
|
| | | shareInfo.setPictUrl(goods.getGoodsImageUrl());
|
| | | if (needGoods) {
|
| | | shareInfo.setGoodsInfo(GoodsDetailVOFactory.convertPDDGoods(goods, new ConfigParamsDTO(
|
| | | hongBaoManageService.getFanLiRate(), hongBaoManageService.getShareRate(), new BigDecimal(80))));
|
| | | }
|
| | |
|
| | | String template = "";
|
| | | boolean hasCoupon = false;
|
| | |
| | | couponUrl = couponInfo.getLink();
|
| | | }
|
| | | String materialId = "https://item.jd.com/" + goodsId + ".html";
|
| | | String shortLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "", uid + "");
|
| | | String shortLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "",
|
| | | uid + "");
|
| | |
|
| | | String content = shareGoodsTextTemplateService.createContentByTemplateJD(template, uid, goods, shortLink,
|
| | | hasCoupon);
|
| | |
| | | import com.yeshi.fanli.service.inter.user.UserGoodsStorageService;
|
| | | import com.yeshi.fanli.util.Constant;
|
| | | import com.yeshi.fanli.util.StringUtil;
|
| | | import com.yeshi.fanli.util.VersionUtil;
|
| | | import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
|
| | | import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
|
| | | import com.yeshi.fanli.vo.goods.GoodsDetailVO;
|
| | |
| | | @Resource
|
| | | private UserGoodsStorageService userGoodsStorageService;
|
| | |
|
| | | |
| | |
|
| | | /**
|
| | | * 单个商品加入选品库
|
| | | * 单个商品加入选品库
|
| | | *
|
| | | * @param callback
|
| | | * @param storageIds
|
| | |
| | | out.print(JsonUtil.loadFalseResult("用户未登录"));
|
| | | return;
|
| | | }
|
| | | |
| | |
|
| | | if (goodsType == null) {
|
| | | goodsType = Constant.SOURCE_TYPE_TAOBAO;
|
| | | }
|
| | | |
| | |
|
| | | try {
|
| | | UserGoodsStorage userGoodsStorage = userGoodsStorageService.getByUidAndAuctionId(uid, id, goodsType);
|
| | | boolean storageState = false;
|
| | |
| | | userGoodsStorageService.save(uid, set, goodsType);
|
| | | storageState = true;
|
| | | }
|
| | | |
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("storageState", storageState);
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | |
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | | |
| | |
|
| | | /**
|
| | | * 批量添加选品库
|
| | | *
|
| | | * @param acceptData
|
| | | * @param uid 用户id
|
| | | * @param ids 简版商品id
|
| | | * @param uid
|
| | | * 用户id
|
| | | * @param ids
|
| | | * 简版商品id
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "addStorage", method = RequestMethod.POST)
|
| | |
| | | * 查询用户选品库数据
|
| | | *
|
| | | * @param acceptData
|
| | | * @param page 页码 初始值 1
|
| | | * @param uid 用户id
|
| | | * @param page
|
| | | * 页码 初始值 1
|
| | | * @param uid
|
| | | * 用户id
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "getlist", method = RequestMethod.POST)
|
| | |
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | | }
|
| | |
|
| | | |
| | | /**
|
| | | * 分享商品返回二维码图片
|
| | | *
|
| | |
| | | out.print(JsonUtil.loadFalseResult("分享商品不能为空"));
|
| | | return;
|
| | | }
|
| | | |
| | |
|
| | | if (uid == null) {
|
| | | out.print(JsonUtil.loadFalseResult("用户未登录"));
|
| | | return;
|
| | |
| | |
|
| | | try {
|
| | | Gson gson = new Gson();
|
| | | List<Long> listStorageID = gson.fromJson(storageIds, new TypeToken<ArrayList<Long>>() {}.getType());
|
| | | if (listStorageID == null || listStorageID.size() < 9) {
|
| | | out.print(JsonUtil.loadFalseResult("分享商品数量不足"));
|
| | | return;
|
| | | }
|
| | | |
| | | if (listStorageID.size() != 9) {
|
| | | out.print(JsonUtil.loadFalseResult("分享商品数量只能是9个"));
|
| | | return;
|
| | | List<Long> listStorageID = gson.fromJson(storageIds, new TypeToken<ArrayList<Long>>() {
|
| | | }.getType());
|
| | |
|
| | | if (!VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) {
|
| | |
|
| | | if (listStorageID == null || listStorageID.size() < 9) {
|
| | | out.print(JsonUtil.loadFalseResult("分享商品数量不足"));
|
| | | return;
|
| | | }
|
| | |
|
| | | if (listStorageID.size() != 9) {
|
| | | out.print(JsonUtil.loadFalseResult("分享商品数量只能是9个"));
|
| | | return;
|
| | | }
|
| | |
|
| | | JSONObject data = userGoodsStorageService.createShareV2(uid, listStorageID, true);
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | | } else {
|
| | | JSONObject data = userGoodsStorageService.createShareV2(uid, listStorageID, false);
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | | }
|
| | |
|
| | | JSONObject data = userGoodsStorageService.createShareV2(uid, listStorageID);
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | | } catch (UserGoodsStorageException e) {
|
| | | out.print(JsonUtil.loadFalseResult("分享失败"));
|
| | | e.printStackTrace();
|
| | |
| | | array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(goods, "100", null)));
|
| | | }
|
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(array)));
|
| | | |
| | | |
| | |
|
| | |
|
| | | |
| | | }
|
| | |
|
| | | /**
|
| | |
| | | import com.yeshi.fanli.entity.integral.CodePublishRecord;
|
| | | import com.yeshi.fanli.service.inter.user.UserInfoService;
|
| | | import com.yeshi.fanli.service.inter.user.integral.CodePublishRecordService;
|
| | | import com.yeshi.fanli.util.Constant;
|
| | | import com.yeshi.fanli.util.TimeUtil;
|
| | |
|
| | | /**
|
| | |
| | | // 7点到23点每10分钟执行一次
|
| | | @Scheduled(cron = "0 0/10 7-23 * * ? ")
|
| | | public void publish() {
|
| | | // if (!Constant.IS_TASK)
|
| | | // return;
|
| | | if (!Constant.IS_TASK)
|
| | | return;
|
| | | long time = System.currentTimeMillis();
|
| | | int day = TimeUtil.getDayDifferenceCount(new Date(TimeUtil.convertToTimeTemp("2019-11-28", "yyyy-MM-dd")),
|
| | | new Date());
|
| | |
| | |
|
| | | @Service
|
| | | public class UserGoodsStorageServiceImpl implements UserGoodsStorageService {
|
| | | |
| | |
|
| | | @Resource(name = "taskExecutor")
|
| | | private TaskExecutor executor;
|
| | | |
| | |
|
| | | @Resource
|
| | | private RedisManager redisManager;
|
| | | |
| | |
|
| | | @Resource
|
| | | private ConfigService configService;
|
| | | |
| | |
|
| | | @Resource
|
| | | private CommonGoodsService commonGoodsService;
|
| | | |
| | |
|
| | | @Resource
|
| | | private HongBaoManageService manageService;
|
| | |
|
| | | @Resource
|
| | | private UserGoodsStorageMapper userGoodsStorageMapper;
|
| | | |
| | |
|
| | | @Resource
|
| | | private UserShareGoodsRecordService userShareGoodsRecordService;
|
| | | @Resource
|
| | |
| | | public int deleteBatchByPrimaryKey(List<Long> list) {
|
| | | return userGoodsStorageMapper.deleteBatchByPrimaryKey(list);
|
| | | }
|
| | | |
| | |
|
| | | /**
|
| | | * 根据主键 、uid 批量删除
|
| | | * |
| | | * @param list
|
| | | * @return
|
| | | */
|
| | |
| | | public List<UserGoodsStorage> listQueryByUid(long start, int count, Long uid, Integer source) {
|
| | | return userGoodsStorageMapper.listQueryByUid(start, count, uid, source);
|
| | | }
|
| | | |
| | |
|
| | | @Override
|
| | | public UserGoodsStorage getByUidAndAuctionId(Long uid, Long auctionId, Integer goodsType) {
|
| | | return userGoodsStorageMapper.getByUidAndAuctionId(uid, auctionId, goodsType);
|
| | |
| | | public long countQueryByUid(Long uid, Integer source) {
|
| | | return userGoodsStorageMapper.countQueryByUid(uid, source);
|
| | | }
|
| | | |
| | |
|
| | | @Override
|
| | | public void save(Long uid, Set<Long> auctionIds, Integer goodsType) throws UserGoodsStorageException {
|
| | |
|
| | |
| | | for (Long auctionId : auctionIds) {
|
| | | CommonGoods commonGoods = null;
|
| | | if (goodsType == null) {
|
| | | goodsType = Constant.SOURCE_TYPE_TAOBAO;
|
| | | } |
| | | |
| | | goodsType = Constant.SOURCE_TYPE_TAOBAO;
|
| | | }
|
| | |
|
| | | if (goodsType == Constant.SOURCE_TYPE_JD) {
|
| | | // 京东 |
| | | // 京东
|
| | | JDGoods jdGoods = JDApiUtil.queryGoodsDetail(auctionId);
|
| | | if (jdGoods == null) {
|
| | | jdGoods = JDApiUtil.getGoodsDetail(auctionId);
|
| | |
| | | throw new UserGoodsStorageException(1, auctionId + "商品已下架");
|
| | | }
|
| | | commonGoods = CommonGoodsFactory.create(jdGoods);
|
| | | |
| | |
|
| | | } else if (goodsType == Constant.SOURCE_TYPE_PDD) {
|
| | | // 拼多多 |
| | | // 拼多多
|
| | | PDDGoodsDetail pddGoods = PinDuoDuoApiUtil.getGoodsDetail(auctionId);
|
| | | if (pddGoods == null) {
|
| | | throw new UserGoodsStorageException(1, auctionId + "商品已下架");
|
| | |
| | | throw new UserGoodsStorageException(1, auctionId + "商品已下架");
|
| | | }
|
| | | }
|
| | | |
| | | |
| | |
|
| | | if (commonGoods != null) {
|
| | | try {
|
| | | commonGoodsService.addOrUpdateCommonGoods(commonGoods);
|
| | |
| | | userGoodsStorageMapper.updateByPrimaryKeySelective(goodsStorage);
|
| | | } else {
|
| | | goodsStorage = new UserGoodsStorage();
|
| | | goodsStorage.setUid(uid);;
|
| | | goodsStorage.setUid(uid);
|
| | | ;
|
| | | goodsStorage.setState(UserGoodsStorage.STATE_NORMAL);
|
| | | goodsStorage.setCommonGoods(commonGoods);
|
| | | goodsStorage.setCreateTime(new Date());
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | |
| | | @Override
|
| | | @Transactional
|
| | | public void addCommonGoods(Long uid, Set<Long> ids) throws UserGoodsStorageException {
|
| | |
| | | userGoodsStorageMapper.updateByPrimaryKeySelective(goodsStorage);
|
| | | } else {
|
| | | goodsStorage = new UserGoodsStorage();
|
| | | goodsStorage.setUid(uid);;
|
| | | goodsStorage.setUid(uid);
|
| | | ;
|
| | | goodsStorage.setState(UserGoodsStorage.STATE_NORMAL);
|
| | | goodsStorage.setCommonGoods(commonGoods);
|
| | | goodsStorage.setCreateTime(new Date());
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | |
| | | @Override
|
| | | public JSONArray getMyStorage(int page, int pageSize, Long uid, Integer source) throws UserGoodsStorageException {
|
| | | |
| | |
|
| | | JSONArray array = new JSONArray();
|
| | |
|
| | | List<UserGoodsStorage> listStorage = listQueryByUid(page , pageSize, uid, source);
|
| | | List<UserGoodsStorage> listStorage = listQueryByUid(page, pageSize, uid, source);
|
| | | if (listStorage == null || listStorage.size() == 0) {
|
| | | return array;
|
| | | }
|
| | | |
| | |
|
| | | if (source == null) {
|
| | | source = Constant.SOURCE_TYPE_TAOBAO;
|
| | | }
|
| | | |
| | |
|
| | | List<TaoBaoGoodsBrief> listTaoKeGoods = null;
|
| | | if (source == Constant.SOURCE_TYPE_TAOBAO) {
|
| | | List<Long> listGid = new ArrayList<Long>();
|
| | |
| | | }
|
| | | listGid.add(commonGoods.getGoodsId());
|
| | | }
|
| | | |
| | |
|
| | | // API网络接口验证是否在售
|
| | | try {
|
| | | listTaoKeGoods = TaoKeApiUtil.getBatchGoodsInfo(listGid);
|
| | |
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | | |
| | | |
| | | BigDecimal rate = manageService.getFanLiRate();
|
| | |
|
| | | BigDecimal rate = manageService.getFanLiRate();
|
| | | Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
|
| | | .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
|
| | | |
| | |
|
| | | for (UserGoodsStorage userGoodsStorage : listStorage) {
|
| | | CommonGoods commonGoods = userGoodsStorage.getCommonGoods();
|
| | | if (commonGoods == null) {
|
| | | continue;
|
| | | }
|
| | | |
| | | |
| | |
|
| | | int state = 0;
|
| | | Integer goodsType = commonGoods.getGoodsType();
|
| | | |
| | | if (listTaoKeGoods != null && listTaoKeGoods.size() > 0 |
| | | && goodsType != null && goodsType == Constant.SOURCE_TYPE_TAOBAO) {
|
| | | state = 1; // 默认停售
|
| | |
|
| | | if (listTaoKeGoods != null && listTaoKeGoods.size() > 0 && goodsType != null
|
| | | && goodsType == Constant.SOURCE_TYPE_TAOBAO) {
|
| | | state = 1; // 默认停售
|
| | | Long goodsId = commonGoods.getGoodsId();
|
| | | for (TaoBaoGoodsBrief taoKeGoods: listTaoKeGoods) {
|
| | | for (TaoBaoGoodsBrief taoKeGoods : listTaoKeGoods) {
|
| | | Long auctionId = taoKeGoods.getAuctionId();
|
| | | if (goodsId == auctionId || goodsId.equals(auctionId)) {
|
| | | state = 0; // 在售
|
| | |
| | | }
|
| | | commonGoods.setState(state);
|
| | | TaoBaoGoodsBrief goodsBrief = TaoBaoUtil.convert(commonGoods);
|
| | | |
| | |
|
| | | // 判断是否已分享
|
| | | Integer storageState = userGoodsStorage.getState();
|
| | | if (storageState != null && storageState == UserGoodsStorage.STATE_SHARED) {
|
| | |
| | | goodsBrief.setState(2); // 已分享状态 优先显示已下架
|
| | | }
|
| | | }
|
| | | |
| | |
|
| | | String json = gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief, rate.toString(), null));
|
| | | |
| | |
|
| | | JSONObject dataObject = new JSONObject();
|
| | | dataObject.put("storageId", userGoodsStorage.getId());
|
| | | dataObject.put("goods", json);
|
| | | array.add(dataObject);
|
| | | }
|
| | | |
| | |
|
| | | return array;
|
| | | }
|
| | | |
| | | |
| | |
|
| | | @Override
|
| | | public boolean isExistStorage(Long uid, Long auctionId, Integer goodType) {
|
| | | boolean state = false;
|
| | |
| | | }
|
| | | return state;
|
| | | }
|
| | | |
| | |
|
| | | @Override
|
| | | public JSONObject shareGoods(Long uid, List<Long> listStorageID) |
| | | public JSONObject shareGoods(Long uid, List<Long> listStorageID)
|
| | | throws UserGoodsStorageException, UserShareGoodsRecordException {
|
| | | List<UserGoodsStorage> listStorage = userGoodsStorageMapper.listQueryByIds(listStorageID);
|
| | | if (listStorage == null || listStorage.size() == 0) {
|
| | | throw new UserGoodsStorageException(1, "选品库商品不存在");
|
| | | }
|
| | | |
| | |
|
| | | List<UserGoodsStorage> listResult = new ArrayList<UserGoodsStorage>();
|
| | | // 还原顺序 用于制图
|
| | | for (Long sid: listStorageID) {
|
| | | for (UserGoodsStorage torage: listStorage) {
|
| | | for (Long sid : listStorageID) {
|
| | | for (UserGoodsStorage torage : listStorage) {
|
| | | Long id = torage.getId();
|
| | | if (sid == id || sid.equals(id)) {
|
| | | listResult.add(torage);
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | | |
| | |
|
| | | BigDecimal totalMoney = new BigDecimal(0.00);
|
| | | List<TaoBaoGoodsBrief> listGoodsBrief = new ArrayList<TaoBaoGoodsBrief>();
|
| | | |
| | |
|
| | | BigDecimal rate = hongBaoManageService.getShareRate();
|
| | | for (UserGoodsStorage userGoodsStorage: listResult) {
|
| | | for (UserGoodsStorage userGoodsStorage : listResult) {
|
| | | CommonGoods commonGoods = userGoodsStorage.getCommonGoods();
|
| | | TaoBaoGoodsBrief goodsBrief = TaoBaoUtil.convert(commonGoods);
|
| | | listGoodsBrief.add(goodsBrief);
|
| | | |
| | |
|
| | | BigDecimal money = TaoBaoUtil.getGoodsHongBaoMoney(goodsBrief, rate);
|
| | | totalMoney = MoneyBigDecimalUtil.add(totalMoney, money);
|
| | | }
|
| | | |
| | | ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsStorage(uid, listGoodsBrief, listStorageID);
|
| | |
|
| | | ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsStorage(uid, listGoodsBrief,
|
| | | listStorageID);
|
| | | FileUploadResult uploadResult = new FileUploadResult();
|
| | | uploadResult.setUrl(shareRecord.getSharePictureUrl());
|
| | | |
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("revenue", listGoodsBrief.size() + "个商品预估分享奖金:¥"+totalMoney);
|
| | | data.put("revenue", listGoodsBrief.size() + "个商品预估分享奖金:¥" + totalMoney);
|
| | | data.put("shareId", shareRecord.getRedisKey());
|
| | | data.put("shareImg", uploadResult);
|
| | | data.put("notifyDesc", configService.get("goods_share_multiple_notify"));
|
| | | return data;
|
| | | }
|
| | | |
| | | |
| | | |
| | |
|
| | | @Override
|
| | | public JSONObject createShareV2(Long uid, List<Long> listStorageID) throws UserGoodsStorageException, UserShareGoodsRecordException {
|
| | | public JSONObject createShareV2(Long uid, List<Long> listStorageID, boolean needDrawPicture)
|
| | | throws UserGoodsStorageException, UserShareGoodsRecordException {
|
| | | List<UserGoodsStorage> listStorage = userGoodsStorageMapper.listQueryByIds(listStorageID);
|
| | | if (listStorage == null || listStorage.size() == 0) {
|
| | | throw new UserGoodsStorageException(1, "选品库商品不存在");
|
| | | }
|
| | | |
| | |
|
| | | List<UserGoodsStorage> listResult = new ArrayList<UserGoodsStorage>();
|
| | | // 还原顺序 用于制图
|
| | | for (Long sid: listStorageID) {
|
| | | for (UserGoodsStorage torage: listStorage) {
|
| | | for (Long sid : listStorageID) {
|
| | | for (UserGoodsStorage torage : listStorage) {
|
| | | Long id = torage.getId();
|
| | | if (sid == id || sid.equals(id)) {
|
| | | listResult.add(torage);
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | | |
| | |
|
| | | BigDecimal totalMoney = new BigDecimal(0.00);
|
| | | List<CommonGoods> listCommonGoods = new ArrayList<CommonGoods>();
|
| | | |
| | |
|
| | | Integer goodsType = null;
|
| | | BigDecimal rate = hongBaoManageService.getShareRate();
|
| | | for (UserGoodsStorage userGoodsStorage: listResult) {
|
| | | for (UserGoodsStorage userGoodsStorage : listResult) {
|
| | | CommonGoods commonGoods = userGoodsStorage.getCommonGoods();
|
| | | BigDecimal money = CommonGoodsUtil.getCommission(commonGoods, rate);
|
| | | totalMoney = MoneyBigDecimalUtil.add(totalMoney, money);
|
| | | listCommonGoods.add(commonGoods);
|
| | | |
| | |
|
| | | if (goodsType == null) {
|
| | | goodsType = commonGoods.getGoodsType();
|
| | | }
|
| | | }
|
| | | |
| | | ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsStorageV2(uid, listCommonGoods, listStorageID);
|
| | |
|
| | | ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsStorageV2(uid, listCommonGoods,
|
| | | listStorageID, needDrawPicture);
|
| | | FileUploadResult uploadResult = new FileUploadResult();
|
| | | uploadResult.setUrl(shareRecord.getSharePictureUrl());
|
| | | |
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("revenue", listCommonGoods.size() + "个商品预估分享奖金:¥"+totalMoney);
|
| | | data.put("revenue", listCommonGoods.size() + "个商品预估分享奖金:¥" + totalMoney);
|
| | | data.put("shareId", shareRecord.getRedisKey());
|
| | | data.put("shareImg", uploadResult);
|
| | | |
| | |
|
| | | // 提示语不同
|
| | | if (goodsType == Constant.SOURCE_TYPE_JD) {
|
| | | // 京东
|
| | |
| | |
|
| | | @Resource
|
| | | private UserGoodsStorageService userGoodsStorageService;
|
| | | |
| | |
|
| | | @Resource
|
| | | private IntegralGetService integralGetService;
|
| | | |
| | | |
| | |
|
| | | @Override
|
| | | public int insert(UserShareGoodsRecord record) {
|
| | |
| | | public long countQueryByUid(Long uid, String source) {
|
| | | return userShareGoodsRecordMapper.countQueryByUid(uid, source);
|
| | | }
|
| | | |
| | |
|
| | | @Override
|
| | | public List<UserShareGoodsGroup> listByRecordId(Long shareId) {
|
| | | return userShareGoodsGroupService.listByRecordId(shareId);
|
| | | return userShareGoodsGroupService.listByRecordId(shareId);
|
| | | }
|
| | |
|
| | | @Override
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | | |
| | |
|
| | | String shareType = shareRecord.getShareType();
|
| | | if (StringUtil.isNullOrEmpty(shareType)) {
|
| | | shareRecord.setShareType(UserShareGoodsRecord.SHARETYPE_SINGLE);
|
| | | }
|
| | | |
| | |
|
| | | BigDecimal totalMoney = shareRecord.getTotalMoney();
|
| | | if (totalMoney == null) {
|
| | | shareRecord.setTotalMoney(new BigDecimal(0));
|
| | |
| | | if (StringUtil.isNullOrEmpty(shareType)) {
|
| | | shareRecord.setShareType(UserShareGoodsRecord.SHARETYPE_SINGLE);
|
| | | }
|
| | | |
| | |
|
| | | BigDecimal totalMoney = shareRecord.getTotalMoney();
|
| | | if (totalMoney == null) {
|
| | | shareRecord.setTotalMoney(new BigDecimal(0));
|
| | |
| | | }
|
| | |
|
| | | @Override
|
| | | public void saveSingleShareRecord(Long uid, Long goodsId, Integer goodsType)
|
| | | throws UserShareGoodsRecordException {
|
| | | public void saveSingleShareRecord(Long uid, Long goodsId, Integer goodsType) throws UserShareGoodsRecordException {
|
| | | if (goodsId == null) {
|
| | | throw new UserShareGoodsRecordException(1, "分享商品不能为空");
|
| | | }
|
| | |
| | | /**
|
| | | * 生成分享图
|
| | | *
|
| | | * @param uid 用户id
|
| | | * @param shareId 分享记录id
|
| | | * @param source 来源
|
| | | * @param uid
|
| | | * 用户id
|
| | | * @param shareId
|
| | | * 分享记录id
|
| | | * @param source
|
| | | * 来源
|
| | | * @param listGoods
|
| | | * @return
|
| | | * @throws UserShareGoodsRecordException
|
| | |
| | | }
|
| | |
|
| | | @Override
|
| | | public ShareGoodsRecordDTO addRecordGoodsDetail(Long uid, Long auctionId, Integer goodsType, boolean isTaolijin) throws UserShareGoodsRecordException {
|
| | | public ShareGoodsRecordDTO addRecordGoodsDetail(Long uid, Long auctionId, Integer goodsType, boolean isTaolijin)
|
| | | throws UserShareGoodsRecordException {
|
| | | if (auctionId == null || uid == null || uid <= 0) {
|
| | | throw new UserShareGoodsRecordException(1, "传递参数不正确");
|
| | | }
|
| | |
| | | recordDTO.setSource(ShareSourceTypeEnum.goodsDetail);
|
| | |
|
| | | // 分享id
|
| | | String key = StringUtil.Md5(uid + "#GoodsDetail#" + auctionId + "#Type#"+ goodsType);
|
| | | String key = StringUtil.Md5(uid + "#GoodsDetail#" + auctionId + "#Type#" + goodsType);
|
| | | redisManager.cacheCommonString(key, JsonUtil.getSimpleGson().toJson(recordDTO), 60 * 20);
|
| | | recordDTO.setRedisKey(key);
|
| | |
|
| | |
| | | }
|
| | |
|
| | | @Override
|
| | | public ShareGoodsRecordDTO addRecordGoodsStorage(Long uid, List<TaoBaoGoodsBrief> listGoodsBrief, List<Long> listStorageID)
|
| | | throws UserShareGoodsRecordException {
|
| | | public ShareGoodsRecordDTO addRecordGoodsStorage(Long uid, List<TaoBaoGoodsBrief> listGoodsBrief,
|
| | | List<Long> listStorageID) throws UserShareGoodsRecordException {
|
| | | if (uid == null || uid <= 0 || listGoodsBrief == null || listGoodsBrief.size() == 0) {
|
| | | throw new UserShareGoodsRecordException(1, "传递参数不正确");
|
| | | }
|
| | |
| | | userShareGoodsRecordMapper.insertSelective(record);
|
| | |
|
| | | List<CommonGoods> listCommonGoods = new ArrayList<CommonGoods>();
|
| | | for (TaoBaoGoodsBrief goodsBrief: listGoodsBrief) {
|
| | | for (TaoBaoGoodsBrief goodsBrief : listGoodsBrief) {
|
| | | listCommonGoods.add(CommonGoodsFactory.create(goodsBrief));
|
| | | }
|
| | | |
| | | |
| | |
|
| | | Long id = record.getId();
|
| | | // 分享链接
|
| | | String shareUrl = getShareUrl(record);
|
| | |
| | |
|
| | | return recordDTO;
|
| | | }
|
| | | |
| | |
|
| | | @Override
|
| | | public ShareGoodsRecordDTO addRecordGoodsStorageV2(Long uid, List<CommonGoods> listGoods, List<Long> listStorageID)
|
| | | throws UserShareGoodsRecordException {
|
| | | public ShareGoodsRecordDTO addRecordGoodsStorageV2(Long uid, List<CommonGoods> listGoods, List<Long> listStorageID,
|
| | | boolean needDrawPicture) throws UserShareGoodsRecordException {
|
| | | if (uid == null || uid <= 0 || listGoods == null || listGoods.size() == 0) {
|
| | | throw new UserShareGoodsRecordException(1, "传递参数不正确");
|
| | | }
|
| | |
| | | // 分享链接
|
| | | String shareUrl = getShareUrlV2(record);
|
| | | // 分享二维码链接
|
| | | FileUploadResult uploadResult = drawingSharePicture(uid, id, shareUrl, listGoods);
|
| | |
|
| | | ShareGoodsRecordDTO recordDTO = new ShareGoodsRecordDTO();
|
| | | recordDTO.setUid(uid);
|
| | |
| | | recordDTO.setShareUrl(shareUrl);
|
| | | recordDTO.setListId(listStorageID);
|
| | | recordDTO.setListGoods(listGoods);
|
| | | recordDTO.setSharePictureUrl(uploadResult.getUrl());
|
| | | if (needDrawPicture) {
|
| | | FileUploadResult uploadResult = drawingSharePicture(uid, id, shareUrl, listGoods);
|
| | | recordDTO.setSharePictureUrl(uploadResult.getUrl());
|
| | | }
|
| | | recordDTO.setSource(ShareSourceTypeEnum.storage);
|
| | |
|
| | | // 缓存分享商品信息
|
| | |
| | | userShareGoodsRecordMapper.insertSelective(record);
|
| | |
|
| | | List<CommonGoods> listCommonGoods = new ArrayList<CommonGoods>();
|
| | | for (TaoBaoGoodsBrief goodsBrief: listGoodsBrief) {
|
| | | for (TaoBaoGoodsBrief goodsBrief : listGoodsBrief) {
|
| | | listCommonGoods.add(CommonGoodsFactory.create(goodsBrief));
|
| | | }
|
| | | |
| | |
|
| | | Long id = record.getId();
|
| | | // 分享链接
|
| | | String shareUrl = getShareUrl(record);
|
| | |
| | | userShareGoodsRecordMapper.insertSelective(record);
|
| | |
|
| | | List<CommonGoods> listCommonGoods = new ArrayList<CommonGoods>();
|
| | | for (TaoBaoGoodsBrief goodsBrief: listGoodsBrief) {
|
| | | for (TaoBaoGoodsBrief goodsBrief : listGoodsBrief) {
|
| | | listCommonGoods.add(CommonGoodsFactory.create(goodsBrief));
|
| | | }
|
| | | |
| | |
|
| | | Long id = record.getId();
|
| | | // 分享链接
|
| | | String shareUrl = getShareUrl(record);
|
| | |
| | | ShareSourceTypeEnum source = recordDTO.getSource();
|
| | | if (ShareSourceTypeEnum.goodsDetail.equals(source)) {
|
| | | // 商品详情分享
|
| | | saveSingleShareRecord(recordDTO.getUid(), recordDTO.getAuctionId(),recordDTO.getGoodsType());
|
| | | saveSingleShareRecord(recordDTO.getUid(), recordDTO.getAuctionId(), recordDTO.getGoodsType());
|
| | | } else if (ShareSourceTypeEnum.activity.equals(source)) {
|
| | | // 动态分享
|
| | | UserShareGoodsRecord shareRecord = new UserShareGoodsRecord();
|
| | |
| | | updateByPrimaryKeySelective(shareRecord);
|
| | |
|
| | | List<CommonGoods> listGoods = recordDTO.getListGoods();
|
| | | if (listGoods != null && listGoods.size() > 1) |
| | | if (listGoods != null && listGoods.size() > 1)
|
| | | singleGoods = false;
|
| | | |
| | |
|
| | | // 保存商品信息
|
| | | multipleGoodsShareRecord(shareId, recordDTO.getListGoods());
|
| | |
|
| | | } else if (ShareSourceTypeEnum.storage.equals(source)) {
|
| | | // 分享库分享
|
| | | singleGoods = false;
|
| | | |
| | |
|
| | | UserShareGoodsRecord shareRecord = new UserShareGoodsRecord();
|
| | | shareRecord.setId(shareId);
|
| | | shareRecord.setShareState(1);
|
| | |
| | |
|
| | | // 保存商品信息
|
| | | multipleGoodsShareRecord(shareId, recordDTO.getListGoods());
|
| | | |
| | |
|
| | | // 更新选品库商品状态 为已分享
|
| | | List<Long> listId = recordDTO.getListId();
|
| | | if (listId != null && listId.size() > 0) {
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | | |
| | |
|
| | | // 清理缓存
|
| | | redisManager.removeCommonString(shareKey);
|
| | | |
| | |
|
| | | if (singleGoods) {
|
| | | if (taolijin) {
|
| | | integralGetService.addShareTLJGoods(uid);
|
| | |
| | | }
|
| | | return url;
|
| | | }
|
| | | |
| | | |
| | |
|
| | | /**
|
| | | * 分享链接
|
| | | *
|
| | |
| | | Long uid = shareRecord.getUid();
|
| | | Long shareId = shareRecord.getId();
|
| | |
|
| | | String url = String.format("http://%s/share_mushGoods_1.6.0.html?uid=%s&shareId=%s",
|
| | | configService.getH5Host(), AESUtil.encrypt(uid + "", Constant.UIDAESKEY), shareId + "");
|
| | | String url = String.format("http://%s/share_mushGoods_1.6.0.html?uid=%s&shareId=%s", configService.getH5Host(),
|
| | | AESUtil.encrypt(uid + "", Constant.UIDAESKEY), shareId + "");
|
| | |
|
| | | String shortLink = HttpUtil.getShortLink(url);
|
| | | if (!StringUtil.isNullOrEmpty(shortLink)) {
|
| | |
| | | /**
|
| | | * 生成分享图
|
| | | *
|
| | | * @param uid 用户id
|
| | | * @param shareId 分享记录id
|
| | | * @param source 来源
|
| | | * @param uid
|
| | | * 用户id
|
| | | * @param shareId
|
| | | * 分享记录id
|
| | | * @param source
|
| | | * 来源
|
| | | * @param listGoods
|
| | | * @return
|
| | | * @throws UserShareGoodsRecordException
|
| | |
| | | * 创建分享
|
| | | * @param uid
|
| | | * @param listStorageID
|
| | | * @param needDrawPicture是否需要绘图
|
| | | * @return
|
| | | * @throws UserGoodsStorageException
|
| | | * @throws UserShareGoodsRecordException
|
| | | */
|
| | | public JSONObject createShareV2(Long uid, List<Long> listStorageID)
|
| | | public JSONObject createShareV2(Long uid, List<Long> listStorageID,boolean needDrawPicture)
|
| | | throws UserGoodsStorageException, UserShareGoodsRecordException;
|
| | |
|
| | | }
|
| | |
| | | public List<UserShareGoodsGroup> listByRecordId(Long shareId);
|
| | |
|
| | | public ShareGoodsRecordDTO addRecordGoodsStorageV2(Long uid, List<CommonGoods> listCommonGoods,
|
| | | List<Long> listStorageID) throws UserShareGoodsRecordException;
|
| | | List<Long> listStorageID,boolean needDrawPicture) throws UserShareGoodsRecordException;
|
| | |
|
| | | }
|
| | |
| | | } else {
|
| | | cg.setCouponAmount(new BigDecimal(0));
|
| | | }
|
| | | cg.setCouponLeftCount(1);
|
| | | cg.setCouponTotalCount(1);
|
| | | }
|
| | |
|
| | | JDCommissionInfo commissionInfo = goods.getCommissionInfo();
|
| | |
| | |
|
| | | @Expose
|
| | | private String wxErCode;// 微信二维码内容
|
| | | |
| | | @Expose
|
| | | private GoodsDetailVO goodsInfo;
|
| | |
|
| | | public GoodsDetailVO getGoodsInfo() {
|
| | | return goodsInfo;
|
| | | }
|
| | |
|
| | | public void setGoodsInfo(GoodsDetailVO goodsInfo) {
|
| | | this.goodsInfo = goodsInfo;
|
| | | }
|
| | |
|
| | | public List<String> getCommentTexts() {
|
| | | return commentTexts;
|