| | |
| | | try {
|
| | | obj = joinPoint.proceed(args);
|
| | | } catch (Throwable e) {
|
| | | e.printStackTrace();
|
| | | try {
|
| | | LogHelper.errorDetailInfo(e, getHttpServletParams(request), request.getRequestURI().toString());
|
| | | } catch (Exception e1) {
|
| | | e1.printStackTrace();
|
| | | }
|
| | | out.print(JsonUtil.loadFalseResult(90009, "服务器内部错误"));
|
| | | }
|
| | | return obj;
|
| | | } else {
|
| | |
| | | import com.yeshi.fanli.util.TaoBaoConstant;
|
| | | import com.yeshi.fanli.util.ThreadUtil;
|
| | | import com.yeshi.fanli.util.TimeUtil;
|
| | | import com.yeshi.fanli.util.VersionUtil;
|
| | | import com.yeshi.fanli.util.cache.TaoBaoGoodsCacheUtil;
|
| | | import com.yeshi.fanli.util.factory.MonitorFactory;
|
| | | import com.yeshi.fanli.util.taobao.TaoBaoCouponUtil;
|
| | |
| | | if ("ios".equalsIgnoreCase(platform)) {
|
| | | root.put("htmlLink", configService.get("index_html_link_ios"));
|
| | | }
|
| | | |
| | | root.put("spikeGoods", getSpikeGoodsContent(acceptData));
|
| | |
|
| | | root.put("spikeGoods", getSpikeGoodsContent(acceptData));
|
| | |
|
| | | out.print(JsonUtil.loadTrueResult(root));
|
| | | } catch (Exception e) {
|
| | |
| | | nextTime.set(Calendar.MILLISECOND, 0);
|
| | |
|
| | | JSONArray array = null;
|
| | | String timekey = "spikeGoods_hour";
|
| | | String cachekey = "spikeGoodsList";
|
| | | String timekey = String.format("spikeGoods_hour-%s-%s",acceptData.getPlatform(),acceptData.getVersion());
|
| | | String cachekey = String.format("spikeGoodsList-%s-%s",acceptData.getPlatform(),acceptData.getVersion());
|
| | |
|
| | | String timeValue = redisManager.getCommonString(timekey);
|
| | | if (timeValue == null || !timeValue.equals(hour + "")) {
|
| | |
| | | array = JSONArray.fromObject(cacheValue);
|
| | | }
|
| | | }
|
| | |
|
| | | JumpDetailV2 jumpDetail = jumpDetailV2Service.getByTypeCache("web");
|
| | | if (array == null) {
|
| | | array = new JSONArray();
|
| | |
|
| | |
| | | }
|
| | |
|
| | | /* 遍历列表数据 */
|
| | | for (QualityFactory qualityFactory : listGoods) {
|
| | |
|
| | | for (QualityFactory qualityFactory : listGoods) {
|
| | | TaoBaoGoodsBrief taoBaoGoodsBrief = qualityFactory.getTaoBaoGoodsBrief();
|
| | | if (taoBaoGoodsBrief == null) {
|
| | | continue;
|
| | | }
|
| | | array.add(gson
|
| | | JSONObject goods = new JSONObject();
|
| | | goods.put("goods", gson
|
| | | .toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null)));
|
| | | goods.put("jumpDetail", jumpDetail);
|
| | | JSONObject params = new JSONObject();
|
| | | params.put("url", configService.get("spike_goods_link") + "?id=" + taoBaoGoodsBrief.getAuctionId());
|
| | | goods.put("params", params);
|
| | |
|
| | | // 1.5.4及以后返回
|
| | | if (VersionUtil.greaterThan_1_5_40(acceptData.getPlatform(), acceptData.getVersion())) {
|
| | | array.add(goods);
|
| | | } else {
|
| | | array.add(goods.optJSONObject("goods"));
|
| | | }
|
| | | }
|
| | |
|
| | | // 缓存半个小时
|
| | | redisManager.cacheCommonString(cachekey, array.toString(), 60 * 30);
|
| | | }
|
| | | Long endTime = nextTime.getTimeInMillis() - java.lang.System.currentTimeMillis();
|
| | | |
| | |
|
| | | JSONObject root = new JSONObject();
|
| | | root.put("time", nextTime.getTimeInMillis());
|
| | | root.put("endTime", endTime > 0? endTime : 0);
|
| | | root.put("endTime", endTime > 0 ? endTime : 0);
|
| | | root.put("listgoods", array);
|
| | | |
| | | |
| | |
|
| | | JSONObject params = new JSONObject();
|
| | | params.put("url", configService.get("spike_goods_link"));
|
| | | JumpDetailV2 jumpDetail = jumpDetailV2Service.getByTypeCache("web");
|
| | |
|
| | | root.put("params", params);
|
| | | root.put("jumpDetail", jumpDetail);
|
| | |
|
| | |
| | | goodsJson.put("price", tb.getReservePrice().toString());
|
| | | goodsJson.put("zkPrice", tb.getZkPrice().toString());
|
| | |
|
| | | |
| | | // 30天销量
|
| | | goodsJson.put("saleCount", TaoBaoUtil.getSaleCount(tb.getBiz30day()));
|
| | | goodsJson.put("salesCount", TaoBaoUtil.getSaleCount(tb.getBiz30day()));
|
| | | |
| | |
|
| | | // 分享赚
|
| | | BigDecimal shareMoney = taoBaoGoodsBriefService.getShareGoodsUserHongBao(tb);
|
| | | data.put("shareMoney", "¥" + shareMoney);
|
| | |
| | | } else {
|
| | | tbShopInfo.setUserType("0");
|
| | | }
|
| | | |
| | |
|
| | | String shopLink = tbShopInfo.getShopUrl();
|
| | | if (StringUtil.isNullOrEmpty(shopLink)) {
|
| | | tbShopInfo.setShopUrl(TaoBaoUtil.getShopLink(tbShopInfo.getUserId()));
|
| | | }
|
| | | }
|
| | | |
| | | // 店铺
|
| | | if (("android".equalsIgnoreCase(acceptData.getPlatform()) && Integer.parseInt(acceptData.getVersion()) >= 40)
|
| | | || ("ios".equalsIgnoreCase(acceptData.getPlatform())
|
| | | && Integer.parseInt(acceptData.getVersion()) >= 49)) {
|
| | |
|
| | | // 店铺1.5.4及以后版本
|
| | | if (VersionUtil.greaterThan_1_5_40(acceptData.getPlatform(), acceptData.getVersion())) {
|
| | | TaoBaoShop shop = taoBaoShopService.getTaoBaoShop(goods.getAuctionId(), goods.getSellerId());
|
| | | if (shop != null) {
|
| | | String shopLink = shop.getShopLink();
|
| | |
| | | goodsJson.put("shopInfo", tbShopInfo);
|
| | | }
|
| | |
|
| | | goodsJson.put("fanliValid",true);// 是否有返利
|
| | | goodsJson.put("fanliValid", true);// 是否有返利
|
| | |
|
| | | // 分享路径
|
| | | String shareUrl = String.format("%s?id=" + tb.getAuctionId(), Constant.systemCommonConfig.getAppShareInfoUrl());
|
| | |
| | | data.put("shareUsers", listShareUser);
|
| | | data.put("couponUsers", listCouponUser);
|
| | | data.put("detailWebUrl", "http://apph5.yeshitv.com/apppage/goods_img.html?id=" + id);
|
| | | |
| | |
|
| | | data.put("noRebateHelpLink", configService.get("no_rebate_help_link"));
|
| | | |
| | |
|
| | | // 商品链接
|
| | | String h5Url = String.format("http://%s%s?id=%s&appType=flq", configService.getH5Host(),
|
| | | Constant.systemCommonConfig.getShareGoodsPagePath(), tb.getAuctionId() + "");
|
| | |
| | | import java.util.Map;
|
| | |
|
| | | import javax.annotation.Resource;
|
| | | import javax.servlet.http.HttpServlet;
|
| | | import javax.servlet.http.HttpServletRequest;
|
| | |
|
| | | import org.springframework.stereotype.Controller;
|
| | | import org.springframework.web.bind.annotation.RequestMapping;
|
| | | import org.springframework.web.bind.annotation.RequestMethod;
|
| | | import org.yeshi.utils.DateUtil;
|
| | | import org.yeshi.utils.IPUtil;
|
| | | import org.yeshi.utils.JsonUtil;
|
| | | import org.yeshi.utils.encrypt.DESUtil;
|
| | |
|
| | | import com.yeshi.fanli.entity.AppVersionInfo;
|
| | | import com.yeshi.fanli.entity.accept.AcceptData;
|
| | | import com.yeshi.fanli.entity.bus.user.LostOrder;
|
| | | import com.yeshi.fanli.entity.bus.user.Order;
|
| | | import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfo;
|
| | | import com.yeshi.fanli.entity.order.CommonOrder;
|
| | | import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
|
| | | import com.yeshi.fanli.exception.order.CommonOrderException;
|
| | | import com.yeshi.fanli.log.LogHelper;
|
| | | import com.yeshi.fanli.service.inter.config.AppVersionService;
|
| | | import com.yeshi.fanli.service.inter.config.ConfigService;
|
| | | import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
|
| | | import com.yeshi.fanli.service.inter.order.CommonOrderService;
|
| | | import com.yeshi.fanli.service.inter.order.LostOrderService;
|
| | | import com.yeshi.fanli.service.inter.order.OrderService;
|
| | | import com.yeshi.fanli.service.inter.taobao.TaoBaoOrderService;
|
| | | import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService;
|
| | |
| | |
|
| | | @Resource
|
| | | private OrderService orderService;
|
| | |
|
| | | @Resource
|
| | | private LostOrderService lostOrderService;
|
| | |
|
| | | /**
|
| | | * 订单列表
|
| | |
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "uploadParsedOrder", method = RequestMethod.POST)
|
| | | public void uploadParsedOrder(AcceptData acceptData, Long uid, String orderData, String source, PrintWriter out) {
|
| | | public void uploadParsedOrder(AcceptData acceptData, Long uid, String orderData, String source,
|
| | | HttpServletRequest request, PrintWriter out) {
|
| | | if (uid == null || StringUtil.isNullOrEmpty(orderData)) {
|
| | | out.print(JsonUtil.loadFalseResult(1, "数据错误"));
|
| | | return;
|
| | |
| | | }
|
| | |
|
| | | if ("findOrder".equalsIgnoreCase(source)) {
|
| | |
|
| | | boolean success = false;
|
| | | // 匹配订单
|
| | | for (String order : orders) {
|
| | | if (!StringUtil.isNullOrEmpty(order)) {
|
| | | List<TaoBaoOrder> orderList = taoBaoOrderService.getTaoBaoOrderByOrderId(order);
|
| | | // 计算订单状态
|
| | |
|
| | | if (orderList != null && orderList.size() > 0) {
|
| | | int inValid = 0;
|
| | | for (TaoBaoOrder taoBaoOrder : orderList) {
|
| | | if (taoBaoOrder.getOrderState().equalsIgnoreCase("订单失效")) {
|
| | | inValid++;
|
| | | }
|
| | | }
|
| | | // 订单全是失效
|
| | | if (inValid == orderList.size())
|
| | | continue;
|
| | |
|
| | | List<CommonOrder> commonOrderList = commonOrderService
|
| | | .listBySourceTypeAndOrderId(Constant.SOURCE_TYPE_TAOBAO, order);
|
| | | if (commonOrderList == null || commonOrderList.size() == 0) {
|
| | | Order o = orderService.findOrderByOrderIdAndType(order, Order.ORDER_TYPE_TAOBAO);
|
| | | if (o != null)// 原来已经存在,则不需要找回
|
| | | continue;
|
| | |
|
| | | Order or = new Order();
|
| | | or.setBeizhu("人工自动找回补单");
|
| | | or.setCreatetime(System.currentTimeMillis());
|
| | |
| | | isS = orderService.addOrder(or);
|
| | | if (isS) {
|
| | | CMQManager.getInstance().addTaoBaoOrderMsg(order, orderList);
|
| | | // 加入到LostOrder
|
| | | LostOrder lo = new LostOrder();
|
| | | lo.setCreateTime(System.currentTimeMillis());
|
| | | lo.setHandleTime(System.currentTimeMillis());
|
| | | lo.setIpInfo(IPUtil.getRemotIP(request) + ":" + request.getRemotePort());
|
| | | lo.setOrder(or);
|
| | | lo.setOrderId(order);
|
| | | lo.setState(LostOrder.STATE_PASS);
|
| | | lo.setResultCode(LostOrder.RESULT_CODE_VERFING);
|
| | | lo.setType(LostOrder.TYPE_TAOBAO);
|
| | | lo.setUserInfo(new UserInfo(uid));
|
| | | lostOrderService.saveLostOrder(lo);
|
| | | if (success == false)
|
| | | success = true;
|
| | | }
|
| | | } catch (Exception e) {
|
| | | e.printStackTrace();
|
| | | try {
|
| | | LogHelper.errorDetailInfo(e, order, "");
|
| | | } catch (Exception e1) {
|
| | | e1.printStackTrace();
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | if (success) {
|
| | | out.print(JsonUtil.loadTrue(0, null, "订单找回成功,请到“我的-订单”中查看"));
|
| | | return;
|
| | | } else {
|
| | | out.print(JsonUtil.loadFalseResult("没有可找回的订单,请尝试手动找回"));
|
| | | return;
|
| | | }
|
| | |
|
| | | } else {
|
| | | String orderId = null;
|
| | | if (orders != null && orders.length > 0)
|
| | |
| | | public final static int STATE_VERFING = 0;
|
| | | public final static int STATE_PASS = 1;
|
| | | public final static int STATE_REJECT = 2;
|
| | | |
| | | |
| | | public final static int TYPE_TAOBAO = 1;
|
| | |
|
| | | @Id
|
| | | @GeneratedValue(strategy = GenerationType.AUTO)
|
| | |
| | |
|
| | | }
|
| | |
|
| | | //20分钟更新一次
|
| | | // 20分钟更新一次
|
| | | @Scheduled(cron = "0 0/20 * * * ? ")
|
| | | public void doSyncJob() {
|
| | | if (!Constant.IS_TASK)
|
| | | return;
|
| | | try {
|
| | | daTaoKeGoodsService.startSyncGoods();
|
| | | new Thread(new Runnable() {
|
| | |
|
| | | @Override
|
| | | public void run() {
|
| | | daTaoKeGoodsService.startSyncGoods();
|
| | | }
|
| | | }).start();
|
| | |
|
| | | } catch (Exception e) {
|
| | | try {
|
| | | LogHelper.errorDetailInfo(e);
|
| | |
| | | String materialId = inviteMaterial.getId();
|
| | | String content = inviteMaterial.getText();
|
| | |
|
| | | ActivityUser user=activityUserService.selectByPrimaryKey(1L);
|
| | | |
| | | if (!StringUtil.isNullOrEmpty(content)) {
|
| | | DynamicInfo dynamicTxt= new DynamicInfo();
|
| | | dynamicTxt.setId(UUID.randomUUID().toString().replace("-", ""));
|
| | |
| | | dynamicTxt.setSubclassId(0L);
|
| | | dynamicTxt.setShowType(DynamicInfo.SHOW_TYPE_ZERO);
|
| | | dynamicTxt.setShareType(DynamicInfo.SHARE_TYPE_INVITE);
|
| | | dynamicTxt.setUser(activityUserService.listRand(1).get(0));
|
| | | dynamicTxt.setUser(user);
|
| | | dynamicTxt.setShareCount(1000 + (int) (Math.random() * 8000));
|
| | | dynamicTxt.setCreateTime(date);
|
| | | dynamicTxt.setUpdateTime(date);
|
| | |
| | | dynamicPic.setSubclassId(0L);
|
| | | dynamicPic.setShowType(DynamicInfo.SHOW_TYPE_ONE);
|
| | | dynamicPic.setShareType(DynamicInfo.SHARE_TYPE_INVITE);
|
| | | dynamicPic.setUser(activityUserService.listRand(1).get(0));
|
| | | dynamicPic.setUser(user);
|
| | | dynamicPic.setShareCount(1000 + (int) (Math.random() * 8000));
|
| | | dynamicPic.setCreateTime(date);
|
| | | dynamicPic.setUpdateTime(date);
|
| | |
| | | return lostOrderMapper.listByStateAndResultCode(state, resultCode, (page - 1) * pageSize, pageSize);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public void saveLostOrder(LostOrder lostOrder) {
|
| | | lostOrderMapper.insertSelective(lostOrder);
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | try {
|
| | | commonOrderList = commonOrderService.addTaoBaoOrder(orderList, uid);
|
| | | hongBaoV2Service.addHongBao(commonOrderList, HongBaoV2.TYPE_ZIGOU);
|
| | | |
| | | |
| | | } catch (CommonOrderException e) {
|
| | | try {
|
| | | LogHelper.errorDetailInfo(e, "addTaoBaoOrder或addHongBao出错", "订单号:" + orderId);
|
| | |
| | | @Transactional
|
| | | @Override
|
| | | public void checkExtract(Long uid) throws ExtractException {
|
| | | BigDecimal compensateMoney = extractMapper.computeCompensateByUid(uid);
|
| | | if (compensateMoney == null)
|
| | | compensateMoney = new BigDecimal(0);
|
| | | // 不判定到账红包问题
|
| | | Long count = hongBaoV2Mapper.countByUidAndState(uid, HongBao.STATE_YILINGQU);
|
| | | if (count == null || count == 0)
|
| | | if ((count == null || count == 0) && compensateMoney.compareTo(new BigDecimal(0)) == 0) {
|
| | | throw new ExtractException(1, "没有已到账的红包");
|
| | | }
|
| | | // 查询是否有欠账
|
| | | boolean isDebt = userMoneyDebtService.isHaveDebtToRepay(uid);
|
| | | if (isDebt)
|
| | |
| | | weiqaunMoney = weiqaunMoney.abs();
|
| | |
|
| | | BigDecimal balance = userInfoService.selectByPKey(uid).getMyHongBao();
|
| | |
|
| | | BigDecimal compensateMoney = extractMapper.computeCompensateByUid(uid);
|
| | | if (compensateMoney == null)
|
| | | compensateMoney = new BigDecimal(0);
|
| | |
|
| | | BigDecimal after = hongBaoMoney.subtract(extractMoney.add(weiqaunMoney).add(balance).add(compensateMoney));
|
| | |
|
| | |
| | | public interface LostOrderService {
|
| | |
|
| | | static final ReentrantReadWriteLock lostOrderLock = new ReentrantReadWriteLock(true);
|
| | | |
| | | |
| | | void saveLostOrder(LostOrder lostOrder);
|
| | |
|
| | | int addLostOrder(LostOrder lostOrder);
|
| | |
|
| | |
| | | public void doUpdateGoodsJob() {
|
| | |
|
| | | // 采用4个线程做更新
|
| | | for (int i = 0; i < 1; i++)
|
| | | for (int i = 0; i < 4; i++)
|
| | | executor.execute(new Runnable() {
|
| | | @Override
|
| | | public void run() {
|
| | |
| | |
|
| | | import org.jsoup.Jsoup;
|
| | | import org.jsoup.nodes.Document;
|
| | | import org.jsoup.nodes.Element;
|
| | | import org.jsoup.select.Elements;
|
| | | import org.yeshi.utils.HttpUtil;
|
| | |
|
| | |
| | | * @return
|
| | | */
|
| | | public static List<String> getBrandIdList() {
|
| | | List<String> listId = null;
|
| | | List<String> listId = new ArrayList<>();
|
| | | try {
|
| | | Document doc = Jsoup.connect("http://www.dataoke.com/brandFeature").get();
|
| | | Elements els = doc.getElementsByTag("script");
|
| | | for (int i = 0; i < els.size(); i++) {
|
| | | if (els.get(i).html().contains("var brandData")) {
|
| | |
|
| | | JSONObject data = JSONObject
|
| | | .fromObject(els.get(i).html().replace("var brandData =", "").trim().split("};")[0] + "}");
|
| | | listId = convertList(data);
|
| | | break;
|
| | | }
|
| | | Document doc = Jsoup.connect("http://www.dataoke.com/brandFilter?cid=0&sort=1&main=0").get();
|
| | | Element root = doc.getElementsByClass("brand-list").get(0);
|
| | | Elements items = root.getElementsByTag("a");
|
| | | for (int i = 0; i < items.size(); i++) {
|
| | | String id = items.get(i).attr("href").split("\\?")[1].replace("id=", "").trim();
|
| | | listId.add(id);
|
| | | }
|
| | |
|
| | | } catch (Exception e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | | return listId;
|
| | | }
|
| | |
|
| | | public static List<String> convertList(JSONObject data) {
|
| | | List<String> listId = new ArrayList<String>();
|
| | |
|
| | | // 萌趣新生力 夏日好食光栏目
|
| | | JSONArray arrayActs = data.optJSONObject("acts").optJSONArray("list");
|
| | | for (int i = 0; i < arrayActs.size(); i++) {
|
| | | JSONObject item = arrayActs.optJSONObject(i);
|
| | | listId.add(item.optString("brand_id"));
|
| | | }
|
| | |
|
| | | // 热推爆款
|
| | | JSONArray arrayPushs = data.optJSONObject("pushs").optJSONArray("list");
|
| | | for (int i = 0; i < arrayPushs.size(); i++) {
|
| | | JSONObject item = arrayPushs.optJSONObject(i);
|
| | | listId.add(item.optString("brand_id"));
|
| | | }
|
| | |
|
| | | // 热销品牌榜
|
| | | JSONArray arrayRanks = data.optJSONObject("ranks").optJSONArray("list");
|
| | | for (int i = 0; i < arrayRanks.size(); i++) {
|
| | | JSONObject item = arrayRanks.optJSONObject(i);
|
| | | // long id = item.optLong("id");
|
| | | // String title =item.optString("title");
|
| | | JSONArray goods = item.optJSONArray("goods");
|
| | | for (int j = 0; j < goods.size(); j++) {
|
| | | JSONObject good = goods.optJSONObject(j);
|
| | | listId.add(good.optString("brand_id"));
|
| | | }
|
| | | }
|
| | | return listId;
|
| | | }
|
| | |
| | | import org.springframework.stereotype.Component;
|
| | | import org.w3c.dom.NamedNodeMap;
|
| | | import org.w3c.dom.NodeList;
|
| | | import org.yeshi.utils.BigDecimalUtil;
|
| | | import org.yeshi.utils.HttpUtil;
|
| | | import org.yeshi.utils.NumberUtil;
|
| | | import org.yeshi.utils.entity.ProxyIP;
|
| | |
| | | * @return
|
| | | */
|
| | | public static BigDecimal getGoodsHongBaoMoney(TaoBaoGoodsBrief goodsBrief, BigDecimal rate) {
|
| | | BigDecimal money = null;
|
| | |
|
| | | if (StringUtil.isNullOrEmpty(goodsBrief.getCouponInfo())
|
| | | || goodsBrief.getCouponInfo().trim().equalsIgnoreCase("无")) {
|
| | | return MoneyBigDecimalUtil.mul(
|
| | | money = MoneyBigDecimalUtil.mul(
|
| | | MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil.mul(goodsBrief.getZkPrice(), goodsBrief.getTkRate()),
|
| | | new BigDecimal("0.01")),
|
| | | MoneyBigDecimalUtil.div(rate, new BigDecimal(100)));
|
| | |
| | | if (startFee.compareTo(goodsBrief.getZkPrice()) <= 0
|
| | | && goodsBrief.getZkPrice().compareTo(couponAccount) > 0) {
|
| | | BigDecimal finalPrice = goodsBrief.getZkPrice().subtract(couponAccount);
|
| | | return MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil
|
| | | money = MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil
|
| | | .mul(MoneyBigDecimalUtil.mul(finalPrice, goodsBrief.getTkRate()), new BigDecimal("0.01")),
|
| | | MoneyBigDecimalUtil.div(rate, new BigDecimal(100)));
|
| | |
|
| | | } else {// 不能用券
|
| | | return MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil.mul(
|
| | | money = MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil.mul(
|
| | | MoneyBigDecimalUtil.mul(goodsBrief.getZkPrice(), goodsBrief.getTkRate()),
|
| | | new BigDecimal("0.01")), MoneyBigDecimalUtil.div(rate, new BigDecimal(100)));
|
| | | }
|
| | | }
|
| | | return BigDecimalUtil.getWithNoZera(money);
|
| | | }
|
| | |
|
| | | // }
|
| | |
| | | */
|
| | |
|
| | | public static BigDecimal getShareGoodsHongBaoInfo(TaoBaoGoodsBrief goodsBrief, BigDecimal rate) {
|
| | |
|
| | | // 计算返利
|
| | | // 无券
|
| | | if (StringUtil.isNullOrEmpty(goodsBrief.getCouponInfo()) || goodsBrief.getCouponInfo().contains("无")) {
|
| | | return goodsBrief.getZkPrice().multiply(goodsBrief.getTkRate()).divide(new BigDecimal(10000)).multiply(rate)
|
| | | .setScale(2, BigDecimal.ROUND_DOWN);
|
| | |
|
| | | } else// 有券
|
| | | {
|
| | | List<BigDecimal> list = TaoBaoCouponUtil.getCouponInfo(goodsBrief.getCouponInfo());
|
| | | BigDecimal startFee = list.get(0);
|
| | | BigDecimal couponAccount = list.get(1);
|
| | | if (startFee.compareTo(goodsBrief.getZkPrice()) <= 0
|
| | | && goodsBrief.getZkPrice().compareTo(couponAccount) > 0) {
|
| | | BigDecimal finalPrice = goodsBrief.getZkPrice().subtract(couponAccount);
|
| | | return finalPrice.multiply(goodsBrief.getTkRate()).divide(new BigDecimal(10000)).multiply(rate)
|
| | | .setScale(2, BigDecimal.ROUND_DOWN);
|
| | |
|
| | | } else {// 不能用券
|
| | | return goodsBrief.getZkPrice().multiply(goodsBrief.getTkRate()).divide(new BigDecimal(10000))
|
| | | .multiply(rate).setScale(2, BigDecimal.ROUND_DOWN);
|
| | | }
|
| | |
|
| | | }
|
| | | return getGoodsHongBaoMoney(goodsBrief, rate);
|
| | | }
|
| | |
|
| | | /**
|
| | |
| | | import com.yeshi.fanli.tag.PageEntity;
|
| | | import com.yeshi.fanli.util.MoneyBigDecimalUtil;
|
| | | import com.yeshi.fanli.util.StringUtil;
|
| | | import com.yeshi.fanli.util.TaoBaoConstant;
|
| | | import com.yeshi.fanli.util.TimeUtil;
|
| | |
|
| | | import net.sf.json.JSONArray;
|
| | |
| | | public static void taoKeContent() {
|
| | | Map<String, String> map = new HashMap<>();
|
| | | map.put("method", "taobao.tbk.content.get");
|
| | | map.put("adzone_id",TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT.split("_")[3]);
|
| | | map.put("type", "1");
|
| | | map.put("count", "100");
|
| | | |
| | | TaoKeAppInfo app = new TaoKeAppInfo();
|
| | | app.setAppKey("24838852");
|
| | | app.setAppSecret("bc8265e2bf8d8115329d652f9d3d4cd8");
|
| | | app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
|
| | | app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
|
| | | try {
|
| | | JSONObject json = TaoKeBaseUtil.baseRequest(map,app);
|
| | | System.out.println(json);
|
| | | } catch (TaoKeApiException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | |
|
| | | }
|
| | | |
| | | |
| | | public static void taoKeContentSource(String contentId,String source) {
|
| | | Map<String, String> map = new HashMap<>();
|
| | | map.put("method", "taobao.tbk.dg.optimus.material");
|
| | | map.put("adzone_id",TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT.split("_")[3]);
|
| | | map.put("page_size", "10");
|
| | | map.put("page_no", "1");
|
| | | map.put("content_id",contentId);
|
| | | map.put("content_source", source);
|
| | | map.put("material_id", "1");
|
| | | |
| | | |
| | | TaoKeAppInfo app = new TaoKeAppInfo();
|
| | | app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
|
| | | app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
|
| | | try {
|
| | | JSONObject json = TaoKeBaseUtil.baseRequest(map,app);
|
| | | System.out.println(json);
|
| | | } catch (TaoKeApiException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | | |
| | | |
| | | |
| | |
|
| | | // AA5ISJ
|
| | |
|
| | |
| | | map.put("page_size", "20");
|
| | | map.put("start_time", "2019-01-01 00:00:00");
|
| | | map.put("tb_trade_parent_id", "370829441412331676");
|
| | | map.put("punish_status", "2");
|
| | | map.put("violation_type", "2");
|
| | | map.put("violation_type", "1");
|
| | | map.put("relation_id", "550913878");
|
| | |
|
| | | // map.put("start_time", "2019-01-01 00:00:00");
|
| | | TaoKeAppInfo app = new TaoKeAppInfo();
|