| | |
| | | package com.yeshi.fanli.controller.admin;
|
| | |
|
| | | import java.io.PrintWriter;
|
| | | import java.math.BigDecimal;
|
| | | import java.util.ArrayList;
|
| | | import java.util.Date;
|
| | | import java.util.HashMap;
|
| | | import java.util.List;
|
| | | import java.util.Map;
|
| | |
|
| | | import javax.annotation.Resource;
|
| | |
|
| | | 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 com.google.gson.Gson;
|
| | | import com.google.gson.GsonBuilder;
|
| | | import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
|
| | | import com.yeshi.fanli.entity.bus.lable.QualityFactory;
|
| | | import com.yeshi.fanli.entity.taobao.PidUser;
|
| | | import com.yeshi.fanli.entity.taobao.SearchFilter;
|
| | | import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
|
| | | import com.yeshi.fanli.entity.taobao.TaoBaoSearchNav;
|
| | | import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult;
|
| | | import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
|
| | | import com.yeshi.fanli.entity.taobao.TaobaoMeterial;
|
| | | import com.yeshi.fanli.exception.ExistObjectException;
|
| | | import com.yeshi.fanli.exception.NotExistObjectException;
|
| | | import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
|
| | | import com.yeshi.fanli.service.inter.goods.GoodsClassService;
|
| | | import com.yeshi.fanli.service.inter.goods.TaoBaoClassService;
|
| | | import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefRecordService;
|
| | | import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
|
| | | import com.yeshi.fanli.service.inter.lable.QualityFactoryService;
|
| | | import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
|
| | | import com.yeshi.fanli.service.inter.taobao.TaobaoMeterialService;
|
| | | import com.yeshi.fanli.tag.PageEntity;
|
| | | import com.yeshi.fanli.util.Constant;
|
| | | import com.yeshi.fanli.util.GsonUtil;
|
| | | import com.yeshi.fanli.util.MoneyBigDecimalUtil;
|
| | | import com.yeshi.fanli.util.RedisManager;
|
| | | import com.yeshi.fanli.util.StringUtil;
|
| | | import com.yeshi.fanli.util.taobao.TaoBaoUtil;
|
| | | import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
|
| | |
|
| | | import net.sf.json.JSONObject;
|
| | |
|
| | | @Controller
|
| | | @RequestMapping("admin/new/api/v1/taobao")
|
| | | public class TaoBaoGoodsBriefAdminController {
|
| | |
|
| | | @Resource
|
| | | private TaoBaoGoodsBriefService taoBaoGoodsBriefService;
|
| | | @Resource
|
| | | private TaoBaoGoodsBriefRecordService taoBaoGoodsBriefRecordService;
|
| | |
|
| | | @Resource
|
| | | private RedisManager redisManager;
|
| | | @Resource
|
| | | private QualityFactoryService selectionGoodsService;
|
| | | @Resource
|
| | | private TaoBaoUnionConfigService taoBaoUnionConfigService;
|
| | |
|
| | | @Resource
|
| | | private TaobaoMeterialService taobaoMeterialService;
|
| | | @Resource
|
| | | private GoodsClassService goodsClassService;
|
| | |
|
| | | @Resource
|
| | | private TaoBaoClassService taoBaoClassService;
|
| | |
|
| | | @RequestMapping(value = "getTBGoodsList", method = RequestMethod.POST)
|
| | | public void getTaoBaoGoodsBriefList(int pageIndex, String key, PrintWriter out) {
|
| | |
|
| | | List<TaoBaoGoodsBrief> taoBaoGoodsBriefList = taoBaoGoodsBriefService.getTBList(pageIndex - 1, key);
|
| | | int count = taoBaoGoodsBriefService.getCount(key);
|
| | | int totalPage = count % Constant.PAGE_SIZE == 0 ? count / Constant.PAGE_SIZE : count / Constant.PAGE_SIZE + 1;
|
| | | PageEntity pe = new PageEntity(pageIndex, Constant.PAGE_SIZE, count, totalPage);
|
| | | Map<String, String> map = new HashMap<String, String>();
|
| | | map.put("key", key);
|
| | | pe.setParams(map);
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("pe", pe);
|
| | | data.put("taoBaoGoodsBriefList", GsonUtil.toDFJson(taoBaoGoodsBriefList));
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | | }
|
| | |
|
| | | @RequestMapping(value = "getInvalidTaoBaoGoods", method = RequestMethod.POST)
|
| | | public void getInvalidTaoBaoGoods(int pageIndex, PrintWriter out) {
|
| | | List<TaoBaoGoodsBrief> taoBaoGoodsBriefList = taoBaoGoodsBriefService.getInvalidTB(pageIndex);
|
| | | int count = taoBaoGoodsBriefService.getInvalidCount();
|
| | | int totalPage = count % Constant.PAGE_SIZE == 0 ? count / Constant.PAGE_SIZE : count / Constant.PAGE_SIZE + 1;
|
| | | PageEntity pe = new PageEntity(pageIndex, Constant.PAGE_SIZE, count, totalPage);
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("pe", pe);
|
| | | data.put("taoBaoGoodsBriefList", GsonUtil.toDFJson(taoBaoGoodsBriefList));
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | | }
|
| | |
|
| | | @RequestMapping(value = "getTaobaoGoods", method = RequestMethod.POST)
|
| | | public void getTaoBaoGoodsBrief(long id, PrintWriter out) {
|
| | | TaoBaoGoodsBrief taobao = taoBaoGoodsBriefService.getTaoBao(id);
|
| | |
|
| | | if (taobao == null) {
|
| | | out.append(JsonUtil.loadFalseResult("不存在该商品"));
|
| | | return;
|
| | | }
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("taobao", GsonUtil.toDFJson(taobao));
|
| | | List<String> list = new ArrayList<String>();
|
| | | list = TaoBaoUtil.getTbImg(taobao.getAuctionId() + "");
|
| | | data.put("imgList", list);
|
| | | out.append(JsonUtil.loadTrueResult(data));
|
| | | }
|
| | |
|
| | | @RequestMapping(value = "updateTaoBaoGoodsBrief", method = RequestMethod.POST)
|
| | | public void updateTaoBaoGoodsBrief(TaoBaoGoodsBrief tb, PrintWriter out) {
|
| | | try {
|
| | | taoBaoGoodsBriefService.updateTBGoods(tb);
|
| | | } catch (NotExistObjectException e) {
|
| | | out.append(JsonUtil.loadFalseResult(e.getMessage()));
|
| | | return;
|
| | | }
|
| | | out.append(JsonUtil.loadTrueResult("修改成功"));
|
| | | }
|
| | |
|
| | | @RequestMapping(value = "deleteTaoBaoGoods", method = RequestMethod.POST)
|
| | | public void deleteTaoBaoGoods(long[] ids, PrintWriter out) {
|
| | | for (long id : ids) {
|
| | | taoBaoGoodsBriefService.deleteTaoBaoGoods(id);
|
| | | }
|
| | | out.append(JsonUtil.loadTrueResult("删除成功"));
|
| | | }
|
| | |
|
| | | @RequestMapping(value = "addTaoBaoGoodsBrief", method = RequestMethod.POST)
|
| | | public void addTaoBaoGoodsBrief(String[] ids, PrintWriter out) {
|
| | | List<JSONObject> list = new ArrayList<JSONObject>();
|
| | | JSONObject data = null;
|
| | | for (String id : ids) {
|
| | | data = new JSONObject();
|
| | |
|
| | | TaoBaoGoodsBrief taoBaoGoodsBrief = null;
|
| | | try {
|
| | | taoBaoGoodsBrief = TaoKeApiUtil.searchGoodsDetail(Long.parseLong(id));
|
| | | taoBaoGoodsBrief.setUpdatetime(new Date());
|
| | | taoBaoGoodsBrief.setCreatetime(new Date());
|
| | | } catch (NumberFormatException e1) {
|
| | | e1.printStackTrace();
|
| | | } catch (TaobaoGoodsDownException e1) {
|
| | | e1.printStackTrace();
|
| | | }
|
| | | try {
|
| | | taoBaoGoodsBriefService.insertSelective(taoBaoGoodsBrief);
|
| | | // taoBaoGoodsBriefService.save(taoBaoGoodsBrief);
|
| | | data.put("id", id);
|
| | | data.put("msg", "添加成功");
|
| | | } catch (Exception e) {
|
| | | data.put("id", id);
|
| | | data.put("msg", e.getMessage());
|
| | | }
|
| | | list.add(data);
|
| | | }
|
| | | JSONObject dataAll = new JSONObject();
|
| | | dataAll.put("list", list);
|
| | | out.print(JsonUtil.loadTrueResult(dataAll));
|
| | | }
|
| | |
|
| | | @RequestMapping(value = "addRecommendSectionGoods", method = RequestMethod.POST)
|
| | | public void addRecommendSectionGoods(long rsid, String tbids, PrintWriter out) {
|
| | | String[] tbidStrArr = tbids.split(",");
|
| | | long[] tbidArr = StringUtil.parseLong(tbidStrArr);
|
| | | List<JSONObject> list = new ArrayList<JSONObject>();
|
| | | JSONObject data = null;
|
| | | for (long tbid : tbidArr) {
|
| | | data = new JSONObject();
|
| | | try {
|
| | | taoBaoGoodsBriefService.addRecommendSectionGoods(rsid, tbid);
|
| | | data.put("id", tbid);
|
| | | data.put("msg", "添加成功");
|
| | | } catch (NotExistObjectException e) {
|
| | | data.put("id", tbid);
|
| | | data.put("msg", e.getMessage());
|
| | | } catch (ExistObjectException e) {
|
| | | data.put("id", tbid);
|
| | | data.put("msg", e.getMessage());
|
| | | }
|
| | | list.add(data);
|
| | | }
|
| | | JSONObject dataAll = new JSONObject();
|
| | | dataAll.put("list", list);
|
| | | out.print(JsonUtil.loadTrueResult(dataAll));
|
| | | }
|
| | |
|
| | | @RequestMapping(value = "addClassRecommendGoods", method = RequestMethod.POST)
|
| | | public void addClassRecommendGoods(long gcid, String tbids, PrintWriter out) {
|
| | | String[] tbidStrArr = tbids.split(",");
|
| | | long[] tbidArr = StringUtil.parseLong(tbidStrArr);
|
| | | List<JSONObject> list = new ArrayList<JSONObject>();
|
| | | JSONObject data = null;
|
| | | for (long tbid : tbidArr) {
|
| | | data = new JSONObject();
|
| | | try {
|
| | | taoBaoGoodsBriefService.addClassRecommendGoods(gcid, tbid);
|
| | | data.put("id", tbid);
|
| | | data.put("msg", "添加成功");
|
| | | } catch (NotExistObjectException e) {
|
| | | data.put("id", tbid);
|
| | | data.put("msg", e.getMessage());
|
| | | } catch (ExistObjectException e) {
|
| | | data.put("id", tbid);
|
| | | data.put("msg", e.getMessage());
|
| | | }
|
| | | list.add(data);
|
| | | }
|
| | | JSONObject dataAll = new JSONObject();
|
| | | dataAll.put("list", list);
|
| | | out.print(JsonUtil.loadTrueResult(dataAll));
|
| | | }
|
| | |
|
| | | @RequestMapping(value = "updateAllTaoBaoGoods", method = RequestMethod.POST)
|
| | | public void updateAllTaoBaoGoods(PrintWriter out) {
|
| | | taoBaoGoodsBriefService.getUpdateTaoBao();
|
| | | out.print(JsonUtil.loadTrueResult("更新完成"));
|
| | | }
|
| | |
|
| | | /**
|
| | | * |
| | | * @param callback
|
| | | * @param pageIndex
|
| | | * @param key
|
| | | * 关键词
|
| | | * @param startPrice
|
| | | * 价格小值
|
| | | * @param endPrice
|
| | | * 价格大值
|
| | | * @param startTkRate
|
| | | * 佣金小值
|
| | | * @param endTkRate
|
| | | * 佣金大值
|
| | | * @param sort
|
| | | * 排序
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "queryOnSale")
|
| | | public void queryOnSale(String callback, Integer pageIndex, Integer pageSize, String key, Long tbClassId,
|
| | | Integer startPrice, Integer endPrice, String startTkRate, String endTkRate, Integer sort, Integer istmall,
|
| | | Integer hasCoupon, Integer baoYou, Integer startDsr, Integer overseas, Integer needPrepay,
|
| | | Integer includePayRate30, Integer includeGoodRate, Integer includeRfdRate, Integer npxLevel,
|
| | | PrintWriter out) {
|
| | |
|
| | | try {
|
| | |
|
| | | SearchFilter filter = new SearchFilter();
|
| | |
|
| | | // 页大小,默认20,1~100
|
| | | if (pageSize == null || pageSize < 1)
|
| | | pageSize = Constant.PAGE_SIZE;
|
| | |
|
| | | filter.setPageSize(pageSize);
|
| | |
|
| | | // 第几页,默认:1
|
| | | if (pageIndex == null || pageIndex < 1)
|
| | | pageIndex = 1;
|
| | |
|
| | | filter.setPage(pageIndex);
|
| | |
|
| | | // 查询词 key------ 不能为空---------
|
| | | if (!StringUtil.isNullOrEmpty(key))
|
| | | filter.setKey(key);
|
| | |
|
| | | if (tbClassId != null) {
|
| | | GoodsClass rb = goodsClassService.getGoodsClass(tbClassId);
|
| | | if (rb == null) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该类型已不存在,请刷新重试"));
|
| | | return;
|
| | | } else {
|
| | |
|
| | | // 淘宝类目id
|
| | | String taoBaoCatIds = taoBaoClassService.getTaoBaoCatIds(tbClassId);
|
| | |
|
| | | if (StringUtil.isNullOrEmpty(taoBaoCatIds)) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该类型淘宝id为空,请通知相关人员进行维护"));
|
| | | return;
|
| | | } else {
|
| | | filter.setCateIds(taoBaoCatIds);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | // 查询条件和类目id不能同时为空
|
| | | if (StringUtil.isNullOrEmpty(key) && tbClassId == null) {
|
| | | filter.setKey("女装");
|
| | | }
|
| | |
|
| | | // 折扣价范围下限
|
| | | if (startPrice != null)
|
| | | filter.setStartPrice(new BigDecimal(startPrice));
|
| | |
|
| | | // 折扣价范围上限
|
| | | if (endPrice != null && endPrice > 0)
|
| | | filter.setEndPrice(new BigDecimal(endPrice));
|
| | |
|
| | | // 淘客佣金比率下限 如:1234表示12.34%
|
| | | if (!StringUtil.isNullOrEmpty(startTkRate)) {
|
| | | int tkRate = (int) (Float.parseFloat(startTkRate) * 100);
|
| | | filter.setStartTkRate(tkRate);
|
| | | }
|
| | |
|
| | | // 淘客佣金比率上限 如:1234表示12.34%
|
| | | if (!StringUtil.isNullOrEmpty(endTkRate)) {
|
| | | int tkRate = (int) (Float.parseFloat(endTkRate) * 100);
|
| | | filter.setEndTkRate(tkRate);
|
| | | }
|
| | |
|
| | | // 排序字段
|
| | | // 销量(total_sales)淘客佣金比率(tk_rate)累计推广量(tk_total_sales)总支出佣金(tk_total_commi)
|
| | | if (sort != null)
|
| | | filter.setSort(sort);
|
| | | // 查询天猫 1 true
|
| | | if (istmall != null && istmall == 1)
|
| | | filter.setTmall(true);
|
| | | // 是否有券 1 true
|
| | | if (hasCoupon != null && hasCoupon == 1)
|
| | | filter.setQuan(1);
|
| | | // 是否包邮,true表示包邮,空或false表示不限
|
| | | if (baoYou != null && baoYou == 1) {
|
| | | filter.setBaoYou(true);
|
| | | // filter.setIp("113.251.22.10");// 重庆
|
| | | filter.setIp("218.72.111.105");// 杭州
|
| | |
|
| | | }
|
| | |
|
| | | // 店铺dsr评分
|
| | | if (startDsr != null && startDsr >= 0 && startDsr <= 50000)
|
| | | filter.setStartDsr(startDsr);
|
| | | // 是否海外商品
|
| | | if (overseas != null && overseas == 1)
|
| | | filter.setOverseas(true);
|
| | | // 是否加入消费者保障,
|
| | | if (needPrepay != null && needPrepay == 1)
|
| | | filter.setNeedPrepay(true);
|
| | | // 成交转化是否高于行业均值
|
| | | if (includePayRate30 != null && includePayRate30 == 1)
|
| | | filter.setIncludePayRate30(true);
|
| | | // 好评率是否高于行业均值
|
| | | if (includeGoodRate != null && includeGoodRate == 1)
|
| | | filter.setIncludeGoodRate(true);
|
| | |
|
| | | // 退款率是否低于行业均值
|
| | | if (includeRfdRate != null && includeRfdRate == 1)
|
| | | filter.setIncludeRfdRate(true);
|
| | |
|
| | | // 牛皮癣程度,取值:1:不限,2:无,3:轻微
|
| | | if (npxLevel != null && npxLevel > 0 && npxLevel < 4)
|
| | | filter.setNpxLevel(npxLevel);
|
| | |
|
| | | boolean islink = false;
|
| | | Long auctionId = null;
|
| | |
|
| | | /* 判断是否是商品链接搜索 */
|
| | | if (key != null && key.contains("//") && key.contains("&")) {
|
| | | String[] keyArray = key.split("\\?")[1].split("&");
|
| | | if (keyArray != null && keyArray.length > 0) {
|
| | | String id = keyArray[0].replace("id=", "").trim();
|
| | | if (!StringUtil.isNullOrEmpty(id)) {
|
| | | auctionId = Long.parseLong(id);
|
| | | islink = true;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | TaoBaoSearchResult result = null;
|
| | | List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = null;
|
| | |
|
| | | if (!islink) {
|
| | | /* 淘宝物料搜索 */
|
| | | result = TaoKeApiUtil.searchWuLiao(filter);
|
| | | if (result == null) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("未获取到淘宝商品信息"));
|
| | | return;
|
| | | } else {
|
| | | taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs();
|
| | | }
|
| | |
|
| | | } else {
|
| | | /* 商品链接搜索 */
|
| | |
|
| | | TaoBaoGoodsBrief searchGoodsDetail = TaoKeApiUtil.searchGoodsDetail(auctionId);
|
| | | if (searchGoodsDetail == null) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("未获取到淘宝商品信息"));
|
| | | return;
|
| | | } else {
|
| | | taoBaoGoodsBriefs = new ArrayList<>();
|
| | | taoBaoGoodsBriefs.add(searchGoodsDetail);
|
| | |
|
| | | result = new TaoBaoSearchResult();
|
| | | result.setTaoBaoGoodsBriefs(taoBaoGoodsBriefs);
|
| | |
|
| | | PageEntity pageEntity = new PageEntity(pageIndex, pageSize, 0, 0);
|
| | | result.setPageEntity(pageEntity);
|
| | | }
|
| | | }
|
| | |
|
| | | if (taoBaoGoodsBriefs == null || taoBaoGoodsBriefs.size() == 0) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("未查询到淘宝商品信息"));
|
| | | return;
|
| | | }
|
| | |
|
| | | // 插入商品集合
|
| | | List<Long> listAuctionId = new ArrayList<Long>();
|
| | | for (TaoBaoGoodsBrief goodsBrief : taoBaoGoodsBriefs) {
|
| | | listAuctionId.add(goodsBrief.getAuctionId());
|
| | | }
|
| | |
|
| | | // 验证是否存在数据库
|
| | | List<QualityFactory> listHas = selectionGoodsService.listQueryByAuctionId(listAuctionId);
|
| | |
|
| | | List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>();
|
| | |
|
| | | for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) {
|
| | |
|
| | | taoBaoGoodsBrief.setId(null);
|
| | |
|
| | | Map<String, Object> map = new HashMap<String, Object>();
|
| | |
|
| | | map.put("pictUrl", taoBaoGoodsBrief.getPictUrl());
|
| | | map.put("title", taoBaoGoodsBrief.getTitle());
|
| | | map.put("auctionId", taoBaoGoodsBrief.getAuctionId());
|
| | | map.put("auctionUrl", taoBaoGoodsBrief.getAuctionUrl());
|
| | | map.put("shopTitle", taoBaoGoodsBrief.getShopTitle());
|
| | | map.put("zkPrice", taoBaoGoodsBrief.getZkPrice());
|
| | | map.put("biz30day", taoBaoGoodsBrief.getBiz30day());
|
| | | map.put("couponInfo", taoBaoGoodsBrief.getCouponInfo());
|
| | | map.put("couponTotalCount", taoBaoGoodsBrief.getCouponTotalCount());
|
| | | map.put("couponLeftCount", taoBaoGoodsBrief.getCouponLeftCount());
|
| | | map.put("couponEffectiveEndTime", taoBaoGoodsBrief.getCouponEffectiveEndTime());
|
| | | map.put("tkRate", taoBaoGoodsBrief.getTkRate());
|
| | |
|
| | | /* 商品销售状态: 0 在售 此获取的淘宝信息均为在售商品 */
|
| | | map.put("saleStae", 0);
|
| | | // 来源 0 无 1淘宝 2 京东
|
| | | map.put("goodsSource", 1);
|
| | |
|
| | | /* 1 定向计划 2 营销返利 、高佣 3 普佣 */
|
| | | Integer includeDxjh = taoBaoGoodsBrief.getIncludeDxjh();
|
| | | String tkMktStatus = taoBaoGoodsBrief.getTkMktStatus();
|
| | |
|
| | | boolean include = false;
|
| | | if (includeDxjh != null) {
|
| | | if (includeDxjh == 1) {
|
| | | // 定向计划
|
| | | map.put("yongjinType", 1);
|
| | | include = true;
|
| | | }
|
| | | }
|
| | |
|
| | | if (!include) {
|
| | |
|
| | | if ("1".equals(tkMktStatus)) {
|
| | | // 营销返利 、高佣
|
| | | map.put("yongjinType", 2);
|
| | | } else {
|
| | | // 普佣
|
| | | map.put("yongjinType", 3);
|
| | | }
|
| | | }
|
| | |
|
| | | /* 券后价--计算 */
|
| | | BigDecimal couponPrice = TaoBaoUtil.getAfterUseCouplePrice(taoBaoGoodsBrief);
|
| | | map.put("couponPrice", couponPrice);
|
| | |
|
| | | /* 预计收益: 公司、用户 */
|
| | | BigDecimal tkRate = taoBaoGoodsBrief.getTkRate();
|
| | | BigDecimal zkPrice = taoBaoGoodsBrief.getZkPrice();
|
| | | BigDecimal profit = MoneyBigDecimalUtil.mul(tkRate, zkPrice);
|
| | | // 计算结果
|
| | | BigDecimal estimateProfit = MoneyBigDecimalUtil.div(profit, new BigDecimal("100"));
|
| | |
|
| | | // 预计收益
|
| | | map.put("estimateProfit", estimateProfit);
|
| | |
|
| | | int existence = 0;
|
| | |
|
| | | /* 查询商品是否已存在商品精选库中 */
|
| | | Long localAuctionId = taoBaoGoodsBrief.getAuctionId();
|
| | | if (localAuctionId != null) {
|
| | | if (listHas != null && listHas.size() > 0) {
|
| | | for (QualityFactory selectionGoods : listHas) {
|
| | | TaoBaoGoodsBrief hasgoodsBrief = selectionGoods.getTaoBaoGoodsBrief();
|
| | | Long hasId = hasgoodsBrief.getAuctionId();
|
| | | if (localAuctionId.equals(hasId) || localAuctionId == hasId) {
|
| | | existence = 1; // 存在商品中
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | map.put("isExistence", existence);
|
| | |
|
| | | listmap.add(map);
|
| | | }
|
| | |
|
| | | PageEntity pe = result.getPageEntity();
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | GsonBuilder gsonBuilder = new GsonBuilder();
|
| | | gsonBuilder.serializeNulls(); // 重点
|
| | | Gson gson = gsonBuilder.setDateFormat("yyyy-MM-dd").create();
|
| | |
|
| | | data.put("pe", pe);
|
| | | data.put("listGoods", gson.toJson(listmap));
|
| | |
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
| | |
|
| | | // 插入本地数据-淘宝数据记录
|
| | | taoBaoGoodsBriefRecordService.insertBatch(taoBaoGoodsBriefs);
|
| | |
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询异常"));
|
| | | e.printStackTrace();
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | /**
|
| | | * |
| | | * @param callback
|
| | | * @param pageIndex
|
| | | * @param key
|
| | | * 关键词
|
| | | * @param startPrice
|
| | | * 价格小值
|
| | | * @param endPrice
|
| | | * 价格大值
|
| | | * @param startTkRate
|
| | | * 佣金小值
|
| | | * @param endTkRate
|
| | | * 佣金大值
|
| | | * @param sort
|
| | | * 排序
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "searchAlimamaWeb")
|
| | | public void searchAlimamaWeb(String callback, Integer pageIndex, Integer pageSize, String key, Integer startPrice,
|
| | | Integer endPrice, String startTkRate, String endTkRate, Integer sort, Integer istmall, Integer hasCoupon,
|
| | | Integer searchType, Integer baoYou, String startBiz30day, String catIds, PrintWriter out) {
|
| | |
|
| | | try {
|
| | |
|
| | | SearchFilter filter = new SearchFilter();
|
| | |
|
| | | // 页大小,默认20,1~100
|
| | | if (pageSize == null || pageSize < 1)
|
| | | pageSize = Constant.PAGE_SIZE;
|
| | |
|
| | | filter.setPageSize(pageSize);
|
| | |
|
| | | // 第几页,默认:1
|
| | | if (pageIndex == null || pageIndex < 1)
|
| | | pageIndex = 1;
|
| | |
|
| | | filter.setPage(pageIndex);
|
| | |
|
| | | // 筛选条件 优先筛选查询词
|
| | | if (!StringUtil.isNullOrEmpty(key)) {
|
| | | filter.setKey(key);
|
| | | } else {
|
| | | // 高佣id
|
| | | if (!StringUtil.isNullOrEmpty(catIds)) {
|
| | |
|
| | | // 男装+ 类目id
|
| | | String[] split = catIds.split(",");
|
| | | filter.setCateIds(split[1]);
|
| | | }
|
| | | }
|
| | |
|
| | | // 折扣价范围下限
|
| | | if (startPrice != null)
|
| | | filter.setStartPrice(new BigDecimal(startPrice));
|
| | |
|
| | | // 折扣价范围上限
|
| | | if (endPrice != null)
|
| | | filter.setEndPrice(new BigDecimal(endPrice));
|
| | |
|
| | | // 佣金比率下限
|
| | | if (!StringUtil.isNullOrEmpty(startTkRate)) {
|
| | | filter.setStartTkRate(Integer.parseInt(startTkRate));
|
| | | }
|
| | |
|
| | | // 比率上限
|
| | | if (!StringUtil.isNullOrEmpty(endTkRate)) {
|
| | | filter.setEndTkRate(Integer.parseInt(endTkRate));
|
| | | }
|
| | |
|
| | | // 排序字段
|
| | | if (sort != null)
|
| | | filter.setSort(sort);
|
| | |
|
| | | // 查询天猫 1 true
|
| | | if (istmall != null && istmall == 1)
|
| | | filter.setTmall(true);
|
| | |
|
| | | // 是否有券 1 true
|
| | | if (hasCoupon != null && hasCoupon == 1)
|
| | | filter.setQuan(1);
|
| | |
|
| | | // 是否包邮,true表示包邮,空或false表示不限
|
| | | if (baoYou != null && baoYou == 1)
|
| | | filter.setBaoYou(true);
|
| | |
|
| | | // 销量
|
| | | if (!StringUtil.isNullOrEmpty(startBiz30day))
|
| | | filter.setStartBiz30day(startBiz30day);
|
| | |
|
| | | List<TaoBaoUnionConfig> config = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_FANLI_ANDROID);
|
| | |
|
| | | /* 淘宝网络 爬取 */
|
| | | TaoBaoSearchResult result = TaoBaoUtil.searchAlimamaWeb(filter, config.get(0), searchType);
|
| | |
|
| | | List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = null;
|
| | | if (result == null) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("未获取到淘宝商品信息"));
|
| | | return;
|
| | | } else {
|
| | | taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs();
|
| | | }
|
| | |
|
| | | if (taoBaoGoodsBriefs == null || taoBaoGoodsBriefs.size() == 0) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("未查询到淘宝商品信息"));
|
| | | return;
|
| | | } else {
|
| | | List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>();
|
| | |
|
| | | for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) {
|
| | |
|
| | | taoBaoGoodsBrief.setId(null);
|
| | |
|
| | | Map<String, Object> map = new HashMap<String, Object>();
|
| | |
|
| | | map.put("pictUrl", taoBaoGoodsBrief.getPictUrl());
|
| | | map.put("title", taoBaoGoodsBrief.getTitle());
|
| | | map.put("auctionId", taoBaoGoodsBrief.getAuctionId());
|
| | | map.put("auctionUrl", taoBaoGoodsBrief.getAuctionUrl());
|
| | | map.put("shopTitle", taoBaoGoodsBrief.getShopTitle());
|
| | | map.put("zkPrice", taoBaoGoodsBrief.getZkPrice());
|
| | | map.put("biz30day", taoBaoGoodsBrief.getBiz30day());
|
| | | map.put("couponInfo", taoBaoGoodsBrief.getCouponInfo());
|
| | | map.put("couponTotalCount", taoBaoGoodsBrief.getCouponTotalCount());
|
| | | map.put("couponLeftCount", taoBaoGoodsBrief.getCouponLeftCount());
|
| | | map.put("couponEffectiveEndTime", taoBaoGoodsBrief.getCouponEffectiveEndTime());
|
| | |
|
| | | /* 佣金取较大的值 */
|
| | | String eventRate = taoBaoGoodsBrief.getEventRate();
|
| | | BigDecimal rate;
|
| | |
|
| | | BigDecimal tkRate2 = taoBaoGoodsBrief.getTkRate();
|
| | | if (!StringUtil.isNullOrEmpty(eventRate)) {
|
| | | BigDecimal eRate = new BigDecimal(eventRate);
|
| | |
|
| | | int a = eRate.compareTo(tkRate2);
|
| | | if (a >= 0) {
|
| | | rate = eRate;
|
| | | } else {
|
| | | rate = tkRate2;
|
| | | }
|
| | | } else {
|
| | | rate = tkRate2;
|
| | | }
|
| | | map.put("tkRate", rate);
|
| | |
|
| | | /* 商品销售状态: 0 在售 此获取的淘宝信息均为在售商品 */
|
| | | map.put("saleStae", 0);
|
| | | // 来源 0 无 1淘宝 2 京东
|
| | | map.put("goodsSource", 1);
|
| | |
|
| | | /* 1 定向计划 2 营销返利 、高佣 3 普佣 */
|
| | | // Integer includeDxjh = taoBaoGoodsBrief.getIncludeDxjh();
|
| | | // String tkMktStatus = taoBaoGoodsBrief.getTkMktStatus();
|
| | | /*
|
| | | * boolean include = false; if (includeDxjh != null) { if
|
| | | * (includeDxjh == 1) { // 定向计划 map.put("yongjinType",1);
|
| | | * include = true; } }
|
| | | */
|
| | |
|
| | | /*
|
| | | * if (!include){
|
| | | * |
| | | * if ("1".equals(tkMktStatus)) { // 营销返利 、高佣
|
| | | * map.put("yongjinType",2); } else { // 普佣
|
| | | * map.put("yongjinType",3); } }
|
| | | */
|
| | |
|
| | | /* 券后价--计算 */
|
| | | BigDecimal couponPrice = TaoBaoUtil.getAfterUseCouplePrice(taoBaoGoodsBrief);
|
| | | map.put("couponPrice", couponPrice);
|
| | |
|
| | | /* 预计收益: 公司、用户 */
|
| | | BigDecimal zkPrice = taoBaoGoodsBrief.getZkPrice();
|
| | | BigDecimal profit = MoneyBigDecimalUtil.mul(rate, zkPrice);
|
| | | // 计算结果
|
| | | BigDecimal estimateProfit = MoneyBigDecimalUtil.div(profit, new BigDecimal("100"));
|
| | |
|
| | | // 预计收益
|
| | | map.put("estimateProfit", estimateProfit);
|
| | |
|
| | | int existence = 0;
|
| | |
|
| | | /* 查询商品是否已存在商品精选库中 */
|
| | | Long localAuctionId = taoBaoGoodsBrief.getAuctionId();
|
| | |
|
| | | if (localAuctionId != null) {
|
| | | List<TaoBaoGoodsBrief> taoBaoGoodsBriefList = taoBaoGoodsBriefService
|
| | | .queryByAuctionId(localAuctionId);
|
| | |
|
| | | if (taoBaoGoodsBriefList != null && taoBaoGoodsBriefList.size() > 0) {
|
| | |
|
| | | TaoBaoGoodsBrief goodsBrief = taoBaoGoodsBriefList.get(0);
|
| | |
|
| | | if (goodsBrief != null) {
|
| | | Long id = goodsBrief.getId();
|
| | | // 查询精选库
|
| | | Long has = selectionGoodsService.queryCountByGoodsId(id);
|
| | |
|
| | | if (has != null && has > 0l) {
|
| | | existence = 1; // 存在商品中
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | map.put("isExistence", existence);
|
| | |
|
| | | listmap.add(map);
|
| | | }
|
| | |
|
| | | PageEntity pe = result.getPageEntity();
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | GsonBuilder gsonBuilder = new GsonBuilder();
|
| | | gsonBuilder.serializeNulls(); // 重点
|
| | | Gson gson = gsonBuilder.setDateFormat("yyyy-MM-dd").create();
|
| | |
|
| | | data.put("pe", pe);
|
| | | data.put("listGoods", gson.toJson(listmap));
|
| | |
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
| | |
|
| | | // 插入本地数据-淘宝数据记录
|
| | | taoBaoGoodsBriefRecordService.insertBatch(taoBaoGoodsBriefs);
|
| | | }
|
| | |
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询异常"));
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | | * 获取淘宝高佣查询类目
|
| | | * |
| | | * @param callback
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "getNavList")
|
| | | public void getNavList(String callback, PrintWriter out) {
|
| | |
|
| | | try {
|
| | |
|
| | | SearchFilter filter = new SearchFilter();
|
| | | filter.setPageSize(10);
|
| | | filter.setPage(1);
|
| | |
|
| | | List<TaoBaoUnionConfig> config = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_FANLI_ANDROID);
|
| | |
|
| | | /* 淘宝网络 爬取 */
|
| | | TaoBaoSearchResult result = TaoBaoUtil.searchAlimamaWeb(filter, config.get(0), 3);
|
| | |
|
| | | if (result == null) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("淘宝列表获取失败"));
|
| | | return;
|
| | | }
|
| | |
|
| | | List<TaoBaoSearchNav> navList = result.getNavList();
|
| | |
|
| | | if (navList == null || navList.size() == 0) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("淘宝列表获取失败"));
|
| | | return;
|
| | | }
|
| | |
|
| | | GsonBuilder gsonBuilder = new GsonBuilder();
|
| | | gsonBuilder.serializeNulls();
|
| | | Gson gson = gsonBuilder.create();
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("navList", gson.toJson(navList));
|
| | |
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
| | |
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询异常"));
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | | * |
| | | * @param callback
|
| | | * @param pageIndex
|
| | | * @param key
|
| | | * 关键词
|
| | | * @param startPrice
|
| | | * 价格小值
|
| | | * @param endPrice
|
| | | * 价格大值
|
| | | * @param startTkRate
|
| | | * 佣金小值
|
| | | * @param endTkRate
|
| | | * 佣金大值
|
| | | * @param sort
|
| | | * 排序
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "searchMaterial")
|
| | | public void searchMaterial(String callback, Integer pageIndex, Integer pageSize, String subName, String superName,
|
| | | PrintWriter out) {
|
| | |
|
| | | try {
|
| | |
|
| | | List<TaobaoMeterial> taobaoMeterials = null;
|
| | | if (!StringUtil.isNullOrEmpty(subName) && !StringUtil.isNullOrEmpty(superName)) {
|
| | | taobaoMeterials = taobaoMeterialService.selectByClassNameAndSuperName(subName, superName);
|
| | | } else if (!StringUtil.isNullOrEmpty(superName)) {
|
| | | taobaoMeterials = taobaoMeterialService.selectByClassNameAndSuperName(null, superName);
|
| | | } else {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请选择筛选类目"));
|
| | | return;
|
| | | }
|
| | |
|
| | | if (taobaoMeterials == null || taobaoMeterials.size() == 0) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("类目信息不存在"));
|
| | | return;
|
| | | }
|
| | |
|
| | | TaobaoMeterial taobaoMeterial = taobaoMeterials.get(0);
|
| | | Integer materialId = taobaoMeterial.getMaterialId();
|
| | | if (materialId == null) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该类目物料ID不存在"));
|
| | | return;
|
| | | }
|
| | |
|
| | | // 页大小,默认20,1~100
|
| | | if (pageSize == null || pageSize < 1)
|
| | | pageSize = Constant.PAGE_SIZE;
|
| | |
|
| | | // 第几页,默认:1
|
| | | if (pageIndex == null || pageIndex < 1)
|
| | | pageIndex = 1;
|
| | |
|
| | | TaoBaoSearchResult result = TaoKeApiUtil.getMaterialByMaterialId(materialId, pageIndex, pageSize);
|
| | |
|
| | | if (result == null) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂未获取到相关数据"));
|
| | | return;
|
| | | }
|
| | |
|
| | | List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs();
|
| | | if (taoBaoGoodsBriefs == null || taoBaoGoodsBriefs.size() == 0) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无相关数据"));
|
| | | return;
|
| | | }
|
| | |
|
| | | // 插入商品集合
|
| | | List<Long> listAuctionId = new ArrayList<Long>();
|
| | | for (TaoBaoGoodsBrief goodsBrief : taoBaoGoodsBriefs) {
|
| | | listAuctionId.add(goodsBrief.getAuctionId());
|
| | | }
|
| | |
|
| | | // 验证是否存在数据库
|
| | | List<QualityFactory> listHas = selectionGoodsService.listQueryByAuctionId(listAuctionId);
|
| | |
|
| | | List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>();
|
| | |
|
| | | for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) {
|
| | | taoBaoGoodsBrief.setId(null);
|
| | |
|
| | | Map<String, Object> map = new HashMap<String, Object>();
|
| | |
|
| | | map.put("pictUrl", taoBaoGoodsBrief.getPictUrl());
|
| | | map.put("title", taoBaoGoodsBrief.getTitle());
|
| | | map.put("auctionId", taoBaoGoodsBrief.getAuctionId());
|
| | | map.put("auctionUrl", taoBaoGoodsBrief.getAuctionUrl());
|
| | | map.put("zkPrice", taoBaoGoodsBrief.getZkPrice());
|
| | | map.put("biz30day", taoBaoGoodsBrief.getBiz30day());
|
| | | map.put("couponInfo", taoBaoGoodsBrief.getCouponInfo());
|
| | | map.put("couponTotalCount", taoBaoGoodsBrief.getCouponTotalCount());
|
| | | map.put("couponLeftCount", taoBaoGoodsBrief.getCouponLeftCount());
|
| | | map.put("couponEffectiveEndTime", taoBaoGoodsBrief.getCouponEffectiveEndTime());
|
| | | map.put("tkRate", taoBaoGoodsBrief.getTkRate());
|
| | |
|
| | | // 来源 0 无 1淘宝 2 京东
|
| | | map.put("goodsSource", 1);
|
| | |
|
| | | /* 券后价--计算 */
|
| | | BigDecimal couponPrice = TaoBaoUtil.getAfterUseCouplePrice(taoBaoGoodsBrief);
|
| | | map.put("couponPrice", couponPrice);
|
| | |
|
| | | /* 预计收益: 公司、用户 */
|
| | | BigDecimal tkRate = taoBaoGoodsBrief.getTkRate();
|
| | | BigDecimal zkPrice = taoBaoGoodsBrief.getZkPrice();
|
| | | BigDecimal profit = MoneyBigDecimalUtil.mul(tkRate, zkPrice);
|
| | | // 计算结果
|
| | | BigDecimal estimateProfit = MoneyBigDecimalUtil.div(profit, new BigDecimal("100"));
|
| | |
|
| | | // 预计收益
|
| | | map.put("estimateProfit", estimateProfit);
|
| | |
|
| | | int existence = 0;
|
| | |
|
| | | /* 查询商品是否已存在商品精选库中 */
|
| | | Long localAuctionId = taoBaoGoodsBrief.getAuctionId();
|
| | | if (localAuctionId != null) {
|
| | | if (listHas != null && listHas.size() > 0) {
|
| | | for (QualityFactory selectionGoods : listHas) {
|
| | | TaoBaoGoodsBrief hasgoodsBrief = selectionGoods.getTaoBaoGoodsBrief();
|
| | | Long hasId = hasgoodsBrief.getAuctionId();
|
| | | if (localAuctionId.equals(hasId) || localAuctionId == hasId) {
|
| | | existence = 1; // 存在商品中
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | map.put("isExistence", existence);
|
| | |
|
| | | listmap.add(map);
|
| | | }
|
| | |
|
| | | PageEntity pe = result.getPageEntity();
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | GsonBuilder gsonBuilder = new GsonBuilder();
|
| | | gsonBuilder.serializeNulls(); // 重点
|
| | | Gson gson = gsonBuilder.setDateFormat("yyyy-MM-dd").create();
|
| | |
|
| | | data.put("pe", pe);
|
| | | data.put("listGoods", gson.toJson(listmap));
|
| | |
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
| | |
|
| | | // 插入本地数据-淘宝数据记录
|
| | | taoBaoGoodsBriefRecordService.insertBatch(taoBaoGoodsBriefs);
|
| | |
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询异常"));
|
| | | e.printStackTrace();
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | @RequestMapping(value = "getQiangGou")
|
| | | public void getQiangGou(String callback, Integer pageIndex, PrintWriter out) {
|
| | |
|
| | | try {
|
| | |
|
| | | int pageSize = 40;
|
| | |
|
| | | // 第几页,默认:1
|
| | | if (pageIndex == null || pageIndex < 1)
|
| | | pageIndex = 1;
|
| | |
|
| | | String startTime = "2018-09-17 09:00:00";
|
| | |
|
| | | String endTime = "2018-09-17 16:00:00";
|
| | |
|
| | | TaoBaoSearchResult result = TaoKeApiUtil.taoQiangGou(pageIndex, pageSize, startTime, endTime);
|
| | |
|
| | | if (result == null) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂未获取到相关数据"));
|
| | | return;
|
| | | }
|
| | |
|
| | | List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs();
|
| | | if (taoBaoGoodsBriefs == null || taoBaoGoodsBriefs.size() == 0) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无相关数据"));
|
| | | return;
|
| | | }
|
| | |
|
| | | // 插入商品集合
|
| | | List<Long> listAuctionId = new ArrayList<Long>();
|
| | | for (TaoBaoGoodsBrief goodsBrief : taoBaoGoodsBriefs) {
|
| | | listAuctionId.add(goodsBrief.getAuctionId());
|
| | | }
|
| | |
|
| | | // 验证是否存在数据库
|
| | | List<QualityFactory> listHas = selectionGoodsService.listQueryByAuctionId(listAuctionId);
|
| | |
|
| | | List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>();
|
| | |
|
| | | for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) {
|
| | | taoBaoGoodsBrief.setId(null);
|
| | |
|
| | | Map<String, Object> map = new HashMap<String, Object>();
|
| | |
|
| | | map.put("pictUrl", taoBaoGoodsBrief.getPictUrl());
|
| | | map.put("title", taoBaoGoodsBrief.getTitle());
|
| | | map.put("auctionId", taoBaoGoodsBrief.getAuctionId());
|
| | | map.put("auctionUrl", taoBaoGoodsBrief.getAuctionUrl());
|
| | | map.put("zkPrice", taoBaoGoodsBrief.getZkPrice());
|
| | | map.put("biz30day", taoBaoGoodsBrief.getBiz30day());
|
| | | map.put("couponInfo", taoBaoGoodsBrief.getCouponInfo());
|
| | | map.put("couponTotalCount", taoBaoGoodsBrief.getCouponTotalCount());
|
| | | map.put("couponLeftCount", taoBaoGoodsBrief.getCouponLeftCount());
|
| | | map.put("couponEffectiveEndTime", taoBaoGoodsBrief.getCouponEffectiveEndTime());
|
| | | map.put("tkRate", taoBaoGoodsBrief.getTkRate());
|
| | |
|
| | | // 来源 0 无 1淘宝 2 京东
|
| | | map.put("goodsSource", 1);
|
| | |
|
| | | /* 券后价--计算 */
|
| | | BigDecimal couponPrice = TaoBaoUtil.getAfterUseCouplePrice(taoBaoGoodsBrief);
|
| | | map.put("couponPrice", couponPrice);
|
| | |
|
| | | /* 预计收益: 公司、用户 */
|
| | | BigDecimal tkRate = taoBaoGoodsBrief.getTkRate();
|
| | | BigDecimal zkPrice = taoBaoGoodsBrief.getZkPrice();
|
| | | BigDecimal profit = MoneyBigDecimalUtil.mul(tkRate, zkPrice);
|
| | | // 计算结果
|
| | | BigDecimal estimateProfit = MoneyBigDecimalUtil.div(profit, new BigDecimal("100"));
|
| | |
|
| | | // 预计收益
|
| | | map.put("estimateProfit", estimateProfit);
|
| | |
|
| | | int existence = 0;
|
| | |
|
| | | /* 查询商品是否已存在商品精选库中 */
|
| | | Long localAuctionId = taoBaoGoodsBrief.getAuctionId();
|
| | | if (localAuctionId != null) {
|
| | | if (listHas != null && listHas.size() > 0) {
|
| | | for (QualityFactory selectionGoods : listHas) {
|
| | | TaoBaoGoodsBrief hasgoodsBrief = selectionGoods.getTaoBaoGoodsBrief();
|
| | | Long hasId = hasgoodsBrief.getAuctionId();
|
| | | if (localAuctionId.equals(hasId) || localAuctionId == hasId) {
|
| | | existence = 1; // 存在商品中
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | map.put("isExistence", existence);
|
| | |
|
| | | listmap.add(map);
|
| | | }
|
| | |
|
| | | PageEntity pe = result.getPageEntity();
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | GsonBuilder gsonBuilder = new GsonBuilder();
|
| | | gsonBuilder.serializeNulls(); // 重点
|
| | | Gson gson = gsonBuilder.setDateFormat("yyyy-MM-dd").create();
|
| | |
|
| | | data.put("pe", pe);
|
| | | data.put("listGoods", gson.toJson(listmap));
|
| | |
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
| | |
|
| | | // // 插入本地数据-淘宝数据记录
|
| | | taoBaoGoodsBriefRecordService.insertBatch(taoBaoGoodsBriefs);
|
| | |
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询异常"));
|
| | | e.printStackTrace();
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | }
|
| | | package com.yeshi.fanli.controller.admin; |
| | | |
| | | import java.io.PrintWriter; |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | |
| | | import com.yeshi.fanli.entity.accept.AdminAcceptData; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.yeshi.utils.JsonUtil; |
| | | |
| | | import com.google.gson.Gson; |
| | | import com.google.gson.GsonBuilder; |
| | | import com.google.gson.reflect.TypeToken; |
| | | import com.yeshi.fanli.entity.bus.clazz.GoodsClass; |
| | | import com.yeshi.fanli.entity.bus.lable.QualityFactory; |
| | | import com.yeshi.fanli.entity.common.AdminUser; |
| | | import com.yeshi.fanli.entity.taobao.PidUser; |
| | | import com.yeshi.fanli.entity.taobao.SearchFilter; |
| | | import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief; |
| | | import com.yeshi.fanli.entity.taobao.TaoBaoSearchNav; |
| | | import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult; |
| | | import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig; |
| | | import com.yeshi.fanli.entity.taobao.TaobaoMeterial; |
| | | import com.yeshi.goods.facade.entity.taobao.dataoke.DaTaoKeDetailV2; |
| | | import com.yeshi.fanli.service.inter.goods.GoodsClassService; |
| | | import com.yeshi.fanli.service.inter.goods.TaoBaoClassService; |
| | | import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService; |
| | | import com.yeshi.fanli.service.inter.lable.QualityFactoryService; |
| | | import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService; |
| | | import com.yeshi.fanli.service.inter.taobao.TaobaoMeterialService; |
| | | import com.yeshi.goods.facade.service.DaTaoKeGoodsDetailV2Service; |
| | | import com.yeshi.common.entity.PageEntity; |
| | | import com.yeshi.fanli.util.Constant; |
| | | import org.yeshi.utils.MoneyBigDecimalUtil; |
| | | import com.yeshi.fanli.util.StringUtil; |
| | | import com.yeshi.fanli.util.taobao.TaoBaoUtil; |
| | | import com.yeshi.fanli.util.taobao.TaoKeApiUtil; |
| | | |
| | | import net.sf.json.JSONObject; |
| | | |
| | | @Controller |
| | | @RequestMapping("admin/new/api/v1/taobao") |
| | | public class TaoBaoGoodsBriefAdminController { |
| | | |
| | | @Resource |
| | | private TaoBaoGoodsBriefService taoBaoGoodsBriefService; |
| | | |
| | | @Resource |
| | | private QualityFactoryService qualityFactoryService; |
| | | |
| | | @Resource |
| | | private TaoBaoUnionConfigService taoBaoUnionConfigService; |
| | | |
| | | @Resource |
| | | private TaobaoMeterialService taobaoMeterialService; |
| | | @Resource |
| | | private GoodsClassService goodsClassService; |
| | | |
| | | @Resource |
| | | private TaoBaoClassService taoBaoClassService; |
| | | |
| | | @Resource |
| | | private DaTaoKeGoodsDetailV2Service daTaoKeGoodsDetailV2Service; |
| | | |
| | | /** |
| | | * |
| | | * @param callback |
| | | * @param pageIndex |
| | | * @param key |
| | | * 关键词 |
| | | * @param startPrice |
| | | * 价格小值 |
| | | * @param endPrice |
| | | * 价格大值 |
| | | * @param startTkRate |
| | | * 佣金小值 |
| | | * @param endTkRate |
| | | * 佣金大值 |
| | | * @param sort |
| | | * 排序 |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "queryOnSale") |
| | | public void queryOnSale(AdminAcceptData acceptData, String callback, Integer pageIndex, Integer pageSize, String key, Long tbClassId, |
| | | Integer startPrice, Integer endPrice, String startTkRate, String endTkRate, Integer sort, Integer istmall, |
| | | Integer hasCoupon, Integer baoYou, Integer startDsr, Integer overseas, Integer needPrepay, |
| | | Integer includePayRate30, Integer includeGoodRate, Integer includeRfdRate, Integer npxLevel, String cid, |
| | | PrintWriter out) { |
| | | |
| | | try { |
| | | // 查询物料 |
| | | TaoBaoSearchResult result = getGoodsByWuLiao(pageIndex, pageSize, key, tbClassId, startPrice, endPrice, |
| | | startTkRate, endTkRate, sort, istmall, hasCoupon, baoYou, startDsr, overseas, needPrepay, |
| | | includePayRate30, includeGoodRate, includeRfdRate, npxLevel,cid); |
| | | |
| | | if (result == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("未获取到淘宝商品信息")); |
| | | return; |
| | | } |
| | | |
| | | List<TaoBaoGoodsBrief> listTaoBaoGoods = result.getTaoBaoGoodsBriefs(); |
| | | if (listTaoBaoGoods == null || listTaoBaoGoods.size() == 0) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("未查询到淘宝商品信息")); |
| | | return; |
| | | } |
| | | |
| | | // 插入商品集合 |
| | | List<String> listAuctionId = new ArrayList<>(); |
| | | for (TaoBaoGoodsBrief goodsBrief : listTaoBaoGoods) { |
| | | listAuctionId.add(goodsBrief.getAuctionId()); |
| | | } |
| | | |
| | | // 验证是否存在数据库 |
| | | List<QualityFactory> listHas = qualityFactoryService.listQueryByAuctionId(listAuctionId); |
| | | |
| | | List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>(); |
| | | |
| | | for (TaoBaoGoodsBrief taoBaoGoodsBrief : listTaoBaoGoods) { |
| | | |
| | | taoBaoGoodsBrief.setId(null); |
| | | |
| | | Map<String, Object> map = new HashMap<String, Object>(); |
| | | |
| | | map.put("pictUrl", taoBaoGoodsBrief.getPictUrl()); |
| | | map.put("title", taoBaoGoodsBrief.getTitle()); |
| | | map.put("auctionId", taoBaoGoodsBrief.getAuctionId()); |
| | | map.put("auctionUrl", taoBaoGoodsBrief.getAuctionUrl()); |
| | | map.put("shopTitle", taoBaoGoodsBrief.getShopTitle()); |
| | | map.put("zkPrice", taoBaoGoodsBrief.getZkPrice()); |
| | | map.put("biz30day", taoBaoGoodsBrief.getBiz30day()); |
| | | map.put("couponInfo", taoBaoGoodsBrief.getCouponInfo()); |
| | | map.put("couponTotalCount", taoBaoGoodsBrief.getCouponTotalCount()); |
| | | map.put("couponLeftCount", taoBaoGoodsBrief.getCouponLeftCount()); |
| | | map.put("couponEffectiveEndTime", taoBaoGoodsBrief.getCouponEffectiveEndTime()); |
| | | map.put("tkRate", taoBaoGoodsBrief.getTkRate()); |
| | | |
| | | /* 商品销售状态: 0 在售 此获取的淘宝信息均为在售商品 */ |
| | | map.put("saleStae", 0); |
| | | // 来源 0 无 1淘宝 2 京东 |
| | | map.put("goodsSource", 1); |
| | | |
| | | /* 1 定向计划 2 营销返利 、高佣 3 普佣 */ |
| | | Integer includeDxjh = taoBaoGoodsBrief.getIncludeDxjh(); |
| | | String tkMktStatus = taoBaoGoodsBrief.getTkMktStatus(); |
| | | |
| | | boolean include = false; |
| | | if (includeDxjh != null) { |
| | | if (includeDxjh == 1) { |
| | | // 定向计划 |
| | | map.put("yongjinType", 1); |
| | | include = true; |
| | | } |
| | | } |
| | | |
| | | if (!include) { |
| | | |
| | | if ("1".equals(tkMktStatus)) { |
| | | // 营销返利 、高佣 |
| | | map.put("yongjinType", 2); |
| | | } else { |
| | | // 普佣 |
| | | map.put("yongjinType", 3); |
| | | } |
| | | } |
| | | |
| | | /* 券后价--计算 */ |
| | | BigDecimal couponPrice = TaoBaoUtil.getCouponPrice(taoBaoGoodsBrief); |
| | | map.put("couponPrice", couponPrice); |
| | | |
| | | /* 预计收益: 公司、用户 */ |
| | | BigDecimal tkRate = taoBaoGoodsBrief.getTkRate(); |
| | | BigDecimal zkPrice = taoBaoGoodsBrief.getZkPrice(); |
| | | BigDecimal profit = MoneyBigDecimalUtil.mul(tkRate, zkPrice); |
| | | // 计算结果 |
| | | BigDecimal estimateProfit = MoneyBigDecimalUtil.div(profit, new BigDecimal("100")); |
| | | |
| | | // 预计收益 |
| | | map.put("estimateProfit", estimateProfit); |
| | | |
| | | int existence = 0; |
| | | |
| | | /* 查询商品是否已存在商品精选库中 */ |
| | | String localAuctionId = taoBaoGoodsBrief.getAuctionId(); |
| | | if (localAuctionId != null) { |
| | | if (listHas != null && listHas.size() > 0) { |
| | | for (QualityFactory selectionGoods : listHas) { |
| | | TaoBaoGoodsBrief hasgoodsBrief = selectionGoods.getTaoBaoGoodsBrief(); |
| | | String hasId = hasgoodsBrief.getAuctionId(); |
| | | if (TaoBaoUtil.isEqual( localAuctionId,hasId)) { |
| | | existence = 1; // 存在商品中 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | map.put("isExistence", existence); |
| | | |
| | | listmap.add(map); |
| | | } |
| | | |
| | | PageEntity pe = result.getPageEntity(); |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | GsonBuilder gsonBuilder = new GsonBuilder(); |
| | | gsonBuilder.serializeNulls(); // 重点 |
| | | Gson gson = gsonBuilder.setDateFormat("yyyy-MM-dd").create(); |
| | | |
| | | data.put("pe", pe); |
| | | data.put("listGoods", gson.toJson(listmap)); |
| | | |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | |
| | | } catch (Exception e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询异常")); |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 加入精选库商品 |
| | | * |
| | | * @param callback |
| | | * @param pageIndex |
| | | * @param key |
| | | * 关键词 |
| | | * @param startPrice |
| | | * 价格小值 |
| | | * @param endPrice |
| | | * 价格大值 |
| | | * @param startTkRate |
| | | * 佣金小值 |
| | | * @param endTkRate |
| | | * 佣金大值 |
| | | * @param sort |
| | | * 排序 |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "addTBGoodsFactory") |
| | | public void addTBGoodsFactory(AdminAcceptData acceptData,String callback, Integer pageIndex, Integer pageSize, String key, Long tbClassId, |
| | | Integer startPrice, Integer endPrice, String startTkRate, String endTkRate, Integer sort, Integer istmall, |
| | | Integer hasCoupon, Integer baoYou, Integer startDsr, Integer overseas, Integer needPrepay, |
| | | Integer includePayRate30, Integer includeGoodRate, Integer includeRfdRate, Integer npxLevel, |
| | | String auctionIds, String lableNames, HttpServletRequest request, PrintWriter out) { |
| | | |
| | | try { |
| | | |
| | | if (StringUtil.isNullOrEmpty(auctionIds)) { |
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("请选择正确的商品入库"))); |
| | | return; |
| | | } |
| | | |
| | | Gson gson2 = new Gson(); |
| | | List<String> listTaoBaoId = gson2.fromJson(auctionIds, new TypeToken<ArrayList<String>>() { |
| | | }.getType()); |
| | | if (listTaoBaoId == null || listTaoBaoId.size() == 0) { |
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("请选择正确的商品入库"))); |
| | | return; |
| | | } |
| | | |
| | | // 查询物料 |
| | | TaoBaoSearchResult result = getGoodsByWuLiao(pageIndex, pageSize, key, tbClassId, startPrice, endPrice, |
| | | startTkRate, endTkRate, sort, istmall, hasCoupon, baoYou, startDsr, overseas, needPrepay, |
| | | includePayRate30, includeGoodRate, includeRfdRate, npxLevel,null); |
| | | |
| | | if (result == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("未获取到淘宝商品信息")); |
| | | return; |
| | | } |
| | | |
| | | List<TaoBaoGoodsBrief> listTaoBaoGoods = result.getTaoBaoGoodsBriefs(); |
| | | if (listTaoBaoGoods == null || listTaoBaoGoods.size() == 0) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("未查询到淘宝商品信息")); |
| | | return; |
| | | } |
| | | |
| | | List<TaoBaoGoodsBrief> listAddGoods = new ArrayList<>(); |
| | | for (TaoBaoGoodsBrief taoBaoGoodsBrief : listTaoBaoGoods) { |
| | | String auctionId = taoBaoGoodsBrief.getAuctionId(); |
| | | if (listTaoBaoId.contains(auctionId)) { |
| | | listAddGoods.add(taoBaoGoodsBrief); |
| | | listTaoBaoId.remove(auctionId); |
| | | } |
| | | } |
| | | |
| | | if (listTaoBaoId != null && listTaoBaoId.size() > 0) { |
| | | for (String auctionId : listTaoBaoId) { |
| | | /* 根据auctionId 获取淘宝商品 */ |
| | | TaoBaoGoodsBrief goodsBrief = TaoKeApiUtil.searchGoodsDetail(auctionId); |
| | | if (goodsBrief != null) { |
| | | listAddGoods.add(goodsBrief); |
| | | } |
| | | } |
| | | } |
| | | |
| | | AdminUser admin = (AdminUser) request.getSession().getAttribute(Constant.SESSION_ADMIN); |
| | | // 插入精选库 |
| | | qualityFactoryService.addBatchTaoBaoGoods(listAddGoods, lableNames, admin); |
| | | |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("加入成功")); |
| | | |
| | | } catch (Exception e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, e.getMessage())); |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 根据条件淘宝商品查询 |
| | | * |
| | | * @param pageIndex |
| | | * @param pageSize |
| | | * @param key |
| | | * @param tbClassId |
| | | * @param startPrice |
| | | * @param endPrice |
| | | * @param startTkRate |
| | | * @param endTkRate |
| | | * @param sort |
| | | * @param istmall |
| | | * @param hasCoupon |
| | | * @param baoYou |
| | | * @param startDsr |
| | | * @param overseas |
| | | * @param needPrepay |
| | | * @param includePayRate30 |
| | | * @param includeGoodRate |
| | | * @param includeRfdRate |
| | | * @param npxLevel |
| | | * @throws Exception |
| | | */ |
| | | public TaoBaoSearchResult getGoodsByWuLiao(Integer pageIndex, Integer pageSize, String key, Long tbClassId, |
| | | Integer startPrice, Integer endPrice, String startTkRate, String endTkRate, Integer sort, Integer istmall, |
| | | Integer hasCoupon, Integer baoYou, Integer startDsr, Integer overseas, Integer needPrepay, |
| | | Integer includePayRate30, Integer includeGoodRate, Integer includeRfdRate, Integer npxLevel, String cids) |
| | | throws Exception { |
| | | |
| | | SearchFilter filter = new SearchFilter(); |
| | | filter.setPageSize(pageSize); |
| | | filter.setPage(pageIndex); |
| | | |
| | | // 查询词 key------ 不能为空--------- |
| | | if (!StringUtil.isNullOrEmpty(key)) |
| | | filter.setKey(key); |
| | | |
| | | if (tbClassId != null) { |
| | | GoodsClass rb = goodsClassService.getGoodsClass(tbClassId); |
| | | if (rb == null) { |
| | | throw new Exception("该类型已不存在,请刷新重试"); |
| | | } |
| | | |
| | | // 淘宝类目id |
| | | String taoBaoCatIds = taoBaoClassService.getTaoBaoCatIds(tbClassId); |
| | | if (StringUtil.isNullOrEmpty(taoBaoCatIds)) { |
| | | throw new Exception("该类型淘宝id为空,请通知相关人员进行维护"); |
| | | } else { |
| | | filter.setCateIds(taoBaoCatIds); |
| | | } |
| | | } |
| | | if (!StringUtil.isNullOrEmpty(cids)) |
| | | filter.setCateIds(cids); |
| | | |
| | | // 查询条件和类目id不能同时为空 |
| | | if (StringUtil.isNullOrEmpty(key) && tbClassId == null) { |
| | | filter.setKey("女装"); |
| | | } |
| | | // 折扣价范围下限 |
| | | if (startPrice != null) { |
| | | filter.setStartPrice(new BigDecimal(startPrice)); |
| | | } |
| | | // 折扣价范围上限 |
| | | if (endPrice != null && endPrice > 0) { |
| | | filter.setEndPrice(new BigDecimal(endPrice)); |
| | | } |
| | | // 淘客佣金比率下限 如:1234表示12.34% |
| | | if (!StringUtil.isNullOrEmpty(startTkRate)) { |
| | | int tkRate = (int) (Float.parseFloat(startTkRate) * 100); |
| | | filter.setStartTkRate(tkRate); |
| | | } |
| | | // 淘客佣金比率上限 如:1234表示12.34% |
| | | if (!StringUtil.isNullOrEmpty(endTkRate)) { |
| | | int tkRate = (int) (Float.parseFloat(endTkRate) * 100); |
| | | filter.setEndTkRate(tkRate); |
| | | } |
| | | // 排序字段 |
| | | // 销量(total_sales)淘客佣金比率(tk_rate)累计推广量(tk_total_sales)总支出佣金(tk_total_commi) |
| | | if (sort != null) { |
| | | filter.setSort(sort); |
| | | } |
| | | // 查询天猫 1 true |
| | | if (istmall != null && istmall == 1) { |
| | | filter.setTmall(true); |
| | | } |
| | | // 是否有券 1 true |
| | | if (hasCoupon != null && hasCoupon == 1) { |
| | | filter.setQuan(1); |
| | | } |
| | | // 是否包邮,true表示包邮,空或false表示不限 |
| | | if (baoYou != null && baoYou == 1) { |
| | | filter.setBaoYou(true); |
| | | // filter.setIp("113.251.22.10");// 重庆 |
| | | filter.setIp("218.72.111.105");// 杭州 |
| | | } |
| | | // 店铺dsr评分 |
| | | if (startDsr != null && startDsr >= 0 && startDsr <= 50000) { |
| | | filter.setStartDsr(startDsr); |
| | | } |
| | | // 是否海外商品 |
| | | if (overseas != null && overseas == 1) { |
| | | filter.setOverseas(true); |
| | | } |
| | | // 是否加入消费者保障, |
| | | if (needPrepay != null && needPrepay == 1) { |
| | | filter.setNeedPrepay(true); |
| | | } |
| | | // 成交转化是否高于行业均值 |
| | | if (includePayRate30 != null && includePayRate30 == 1) { |
| | | filter.setIncludePayRate30(true); |
| | | } |
| | | // 好评率是否高于行业均值 |
| | | if (includeGoodRate != null && includeGoodRate == 1) { |
| | | filter.setIncludeGoodRate(true); |
| | | } |
| | | // 退款率是否低于行业均值 |
| | | if (includeRfdRate != null && includeRfdRate == 1) { |
| | | filter.setIncludeRfdRate(true); |
| | | } |
| | | // 牛皮癣程度,取值:1:不限,2:无,3:轻微 |
| | | if (npxLevel != null && npxLevel > 0 && npxLevel < 4) { |
| | | filter.setNpxLevel(npxLevel); |
| | | } |
| | | |
| | | boolean islink = false; |
| | | String auctionId = null; |
| | | /* 判断是否是商品链接搜索 */ |
| | | if (key != null && key.contains("//") && key.contains("&")) { |
| | | String[] keyArray = key.split("\\?")[1].split("&"); |
| | | if (keyArray != null && keyArray.length > 0) { |
| | | String id = keyArray[0].replace("id=", "").trim(); |
| | | if (!StringUtil.isNullOrEmpty(id)) { |
| | | auctionId = id; |
| | | islink = true; |
| | | } |
| | | } |
| | | } |
| | | |
| | | TaoBaoSearchResult result = null; |
| | | |
| | | if (!islink) { |
| | | /* 淘宝物料搜索 */ |
| | | result = TaoKeApiUtil.searchWuLiaoNew(filter,null,null); |
| | | } else { |
| | | /* 商品链接搜索 */ |
| | | TaoBaoGoodsBrief searchGoodsDetail = TaoKeApiUtil.searchGoodsDetail(auctionId); |
| | | if (searchGoodsDetail != null) { |
| | | List<TaoBaoGoodsBrief> listGoods = new ArrayList<>(); |
| | | listGoods.add(searchGoodsDetail); |
| | | |
| | | result = new TaoBaoSearchResult(); |
| | | result.setTaoBaoGoodsBriefs(listGoods); |
| | | PageEntity pageEntity = new PageEntity(pageIndex, pageSize, 1, 1); |
| | | result.setPageEntity(pageEntity); |
| | | } |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | | * |
| | | * @param callback |
| | | * @param pageIndex |
| | | * @param key |
| | | * 关键词 |
| | | * @param startPrice |
| | | * 价格小值 |
| | | * @param endPrice |
| | | * 价格大值 |
| | | * @param startTkRate |
| | | * 佣金小值 |
| | | * @param endTkRate |
| | | * 佣金大值 |
| | | * @param sort |
| | | * 排序 |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "searchAlimamaWeb") |
| | | public void searchAlimamaWeb(AdminAcceptData acceptData,String callback, Integer pageIndex, Integer pageSize, String key, Integer startPrice, |
| | | Integer endPrice, String startTkRate, String endTkRate, Integer sort, Integer istmall, Integer hasCoupon, |
| | | Integer searchType, Integer baoYou, String startBiz30day, String catIds, PrintWriter out) { |
| | | |
| | | try { |
| | | |
| | | SearchFilter filter = new SearchFilter(); |
| | | |
| | | // 页大小,默认20,1~100 |
| | | if (pageSize == null || pageSize < 1) |
| | | pageSize = Constant.PAGE_SIZE; |
| | | |
| | | filter.setPageSize(pageSize); |
| | | |
| | | // 第几页,默认:1 |
| | | if (pageIndex == null || pageIndex < 1) |
| | | pageIndex = 1; |
| | | |
| | | filter.setPage(pageIndex); |
| | | |
| | | // 筛选条件 优先筛选查询词 |
| | | if (!StringUtil.isNullOrEmpty(key)) { |
| | | filter.setKey(key); |
| | | } else { |
| | | // 高佣id |
| | | if (!StringUtil.isNullOrEmpty(catIds)) { |
| | | |
| | | // 男装+ 类目id |
| | | String[] split = catIds.split(","); |
| | | filter.setCateIds(split[1]); |
| | | } |
| | | } |
| | | |
| | | // 折扣价范围下限 |
| | | if (startPrice != null) |
| | | filter.setStartPrice(new BigDecimal(startPrice)); |
| | | |
| | | // 折扣价范围上限 |
| | | if (endPrice != null) |
| | | filter.setEndPrice(new BigDecimal(endPrice)); |
| | | |
| | | // 佣金比率下限 |
| | | if (!StringUtil.isNullOrEmpty(startTkRate)) { |
| | | filter.setStartTkRate(Integer.parseInt(startTkRate)); |
| | | } |
| | | |
| | | // 比率上限 |
| | | if (!StringUtil.isNullOrEmpty(endTkRate)) { |
| | | filter.setEndTkRate(Integer.parseInt(endTkRate)); |
| | | } |
| | | |
| | | // 排序字段 |
| | | if (sort != null) |
| | | filter.setSort(sort); |
| | | |
| | | // 查询天猫 1 true |
| | | if (istmall != null && istmall == 1) |
| | | filter.setTmall(true); |
| | | |
| | | // 是否有券 1 true |
| | | if (hasCoupon != null && hasCoupon == 1) |
| | | filter.setQuan(1); |
| | | |
| | | // 是否包邮,true表示包邮,空或false表示不限 |
| | | if (baoYou != null && baoYou == 1) |
| | | filter.setBaoYou(true); |
| | | |
| | | // 销量 |
| | | if (!StringUtil.isNullOrEmpty(startBiz30day)) |
| | | filter.setStartBiz30day(startBiz30day); |
| | | |
| | | List<TaoBaoUnionConfig> config = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_FANLI_ANDROID); |
| | | |
| | | /* 淘宝网络 爬取 */ |
| | | TaoBaoSearchResult result = TaoBaoUtil.searchAlimamaWeb(filter, config.get(0), searchType); |
| | | |
| | | List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = null; |
| | | if (result == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("未获取到淘宝商品信息")); |
| | | return; |
| | | } else { |
| | | taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs(); |
| | | } |
| | | |
| | | if (taoBaoGoodsBriefs == null || taoBaoGoodsBriefs.size() == 0) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("未查询到淘宝商品信息")); |
| | | return; |
| | | } else { |
| | | List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>(); |
| | | |
| | | for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) { |
| | | |
| | | taoBaoGoodsBrief.setId(null); |
| | | |
| | | Map<String, Object> map = new HashMap<String, Object>(); |
| | | |
| | | map.put("pictUrl", taoBaoGoodsBrief.getPictUrl()); |
| | | map.put("title", taoBaoGoodsBrief.getTitle()); |
| | | map.put("auctionId", taoBaoGoodsBrief.getAuctionId()); |
| | | map.put("auctionUrl", taoBaoGoodsBrief.getAuctionUrl()); |
| | | map.put("shopTitle", taoBaoGoodsBrief.getShopTitle()); |
| | | map.put("zkPrice", taoBaoGoodsBrief.getZkPrice()); |
| | | map.put("biz30day", taoBaoGoodsBrief.getBiz30day()); |
| | | map.put("couponInfo", taoBaoGoodsBrief.getCouponInfo()); |
| | | map.put("couponTotalCount", taoBaoGoodsBrief.getCouponTotalCount()); |
| | | map.put("couponLeftCount", taoBaoGoodsBrief.getCouponLeftCount()); |
| | | map.put("couponEffectiveEndTime", taoBaoGoodsBrief.getCouponEffectiveEndTime()); |
| | | |
| | | /* 佣金取较大的值 */ |
| | | String eventRate = taoBaoGoodsBrief.getEventRate(); |
| | | BigDecimal rate; |
| | | |
| | | BigDecimal tkRate2 = taoBaoGoodsBrief.getTkRate(); |
| | | if (!StringUtil.isNullOrEmpty(eventRate)) { |
| | | BigDecimal eRate = new BigDecimal(eventRate); |
| | | |
| | | int a = eRate.compareTo(tkRate2); |
| | | if (a >= 0) { |
| | | rate = eRate; |
| | | } else { |
| | | rate = tkRate2; |
| | | } |
| | | } else { |
| | | rate = tkRate2; |
| | | } |
| | | map.put("tkRate", rate); |
| | | |
| | | /* 商品销售状态: 0 在售 此获取的淘宝信息均为在售商品 */ |
| | | map.put("saleStae", 0); |
| | | // 来源 0 无 1淘宝 2 京东 |
| | | map.put("goodsSource", 1); |
| | | |
| | | /* 1 定向计划 2 营销返利 、高佣 3 普佣 */ |
| | | // Integer includeDxjh = taoBaoGoodsBrief.getIncludeDxjh(); |
| | | // String tkMktStatus = taoBaoGoodsBrief.getTkMktStatus(); |
| | | /* |
| | | * boolean include = false; if (includeDxjh != null) { if |
| | | * (includeDxjh == 1) { // 定向计划 map.put("yongjinType",1); |
| | | * include = true; } } |
| | | */ |
| | | |
| | | /* |
| | | * if (!include){ |
| | | * |
| | | * if ("1".equals(tkMktStatus)) { // 营销返利 、高佣 |
| | | * map.put("yongjinType",2); } else { // 普佣 |
| | | * map.put("yongjinType",3); } } |
| | | */ |
| | | |
| | | /* 券后价--计算 */ |
| | | BigDecimal couponPrice = TaoBaoUtil.getCouponPrice(taoBaoGoodsBrief); |
| | | map.put("couponPrice", couponPrice); |
| | | |
| | | /* 预计收益: 公司、用户 */ |
| | | BigDecimal zkPrice = taoBaoGoodsBrief.getZkPrice(); |
| | | BigDecimal profit = MoneyBigDecimalUtil.mul(rate, zkPrice); |
| | | // 计算结果 |
| | | BigDecimal estimateProfit = MoneyBigDecimalUtil.div(profit, new BigDecimal("100")); |
| | | |
| | | // 预计收益 |
| | | map.put("estimateProfit", estimateProfit); |
| | | |
| | | int existence = 0; |
| | | |
| | | /* 查询商品是否已存在商品精选库中 */ |
| | | String localAuctionId = taoBaoGoodsBrief.getAuctionId(); |
| | | |
| | | if (localAuctionId != null) { |
| | | List<TaoBaoGoodsBrief> taoBaoGoodsBriefList = taoBaoGoodsBriefService |
| | | .queryByAuctionId(localAuctionId); |
| | | |
| | | if (taoBaoGoodsBriefList != null && taoBaoGoodsBriefList.size() > 0) { |
| | | |
| | | TaoBaoGoodsBrief goodsBrief = taoBaoGoodsBriefList.get(0); |
| | | |
| | | if (goodsBrief != null) { |
| | | String id = goodsBrief.getAuctionId(); |
| | | // 查询精选库 |
| | | Long has = qualityFactoryService.queryCountByGoodsId(id); |
| | | |
| | | if (has != null && has > 0l) { |
| | | existence = 1; // 存在商品中 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | map.put("isExistence", existence); |
| | | |
| | | listmap.add(map); |
| | | } |
| | | |
| | | PageEntity pe = result.getPageEntity(); |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | GsonBuilder gsonBuilder = new GsonBuilder(); |
| | | gsonBuilder.serializeNulls(); // 重点 |
| | | Gson gson = gsonBuilder.setDateFormat("yyyy-MM-dd").create(); |
| | | |
| | | data.put("pe", pe); |
| | | data.put("listGoods", gson.toJson(listmap)); |
| | | |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询异常")); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 获取淘宝高佣查询类目 |
| | | * |
| | | * @param callback |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "getNavList") |
| | | public void getNavList(AdminAcceptData acceptData,String callback, PrintWriter out) { |
| | | |
| | | try { |
| | | |
| | | SearchFilter filter = new SearchFilter(); |
| | | filter.setPageSize(10); |
| | | filter.setPage(1); |
| | | |
| | | List<TaoBaoUnionConfig> config = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_FANLI_ANDROID); |
| | | |
| | | /* 淘宝网络 爬取 */ |
| | | TaoBaoSearchResult result = TaoBaoUtil.searchAlimamaWeb(filter, config.get(0), 3); |
| | | |
| | | if (result == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("淘宝列表获取失败")); |
| | | return; |
| | | } |
| | | |
| | | List<TaoBaoSearchNav> navList = result.getNavList(); |
| | | |
| | | if (navList == null || navList.size() == 0) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("淘宝列表获取失败")); |
| | | return; |
| | | } |
| | | |
| | | GsonBuilder gsonBuilder = new GsonBuilder(); |
| | | gsonBuilder.serializeNulls(); |
| | | Gson gson = gsonBuilder.create(); |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("navList", gson.toJson(navList)); |
| | | |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | |
| | | } catch (Exception e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询异常")); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * |
| | | * @param callback |
| | | * @param pageIndex |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "searchMaterial") |
| | | public void searchMaterial(AdminAcceptData acceptData,String callback, Integer pageIndex, Integer pageSize, String subName, String superName, |
| | | PrintWriter out) { |
| | | |
| | | try { |
| | | |
| | | List<TaobaoMeterial> taobaoMeterials = null; |
| | | if (!StringUtil.isNullOrEmpty(subName) && !StringUtil.isNullOrEmpty(superName)) { |
| | | taobaoMeterials = taobaoMeterialService.selectByClassNameAndSuperName(subName, superName); |
| | | } else if (!StringUtil.isNullOrEmpty(superName)) { |
| | | taobaoMeterials = taobaoMeterialService.selectByClassNameAndSuperName(null, superName); |
| | | } else { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请选择筛选类目")); |
| | | return; |
| | | } |
| | | |
| | | if (taobaoMeterials == null || taobaoMeterials.size() == 0) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("类目信息不存在")); |
| | | return; |
| | | } |
| | | |
| | | TaobaoMeterial taobaoMeterial = taobaoMeterials.get(0); |
| | | Integer materialId = taobaoMeterial.getMaterialId(); |
| | | if (materialId == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("该类目物料ID不存在")); |
| | | return; |
| | | } |
| | | |
| | | // 页大小,默认20,1~100 |
| | | if (pageSize == null || pageSize < 1) |
| | | pageSize = Constant.PAGE_SIZE; |
| | | |
| | | // 第几页,默认:1 |
| | | if (pageIndex == null || pageIndex < 1) |
| | | pageIndex = 1; |
| | | |
| | | TaoBaoSearchResult result = TaoKeApiUtil.getMaterialByMaterialId(materialId, pageIndex, pageSize); |
| | | |
| | | if (result == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂未获取到相关数据")); |
| | | return; |
| | | } |
| | | |
| | | List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs(); |
| | | if (taoBaoGoodsBriefs == null || taoBaoGoodsBriefs.size() == 0) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无相关数据")); |
| | | return; |
| | | } |
| | | |
| | | // 插入商品集合 |
| | | List<String> listAuctionId = new ArrayList<>(); |
| | | for (TaoBaoGoodsBrief goodsBrief : taoBaoGoodsBriefs) { |
| | | listAuctionId.add(goodsBrief.getAuctionId()); |
| | | } |
| | | |
| | | // 验证是否存在数据库 |
| | | List<QualityFactory> listHas = qualityFactoryService.listQueryByAuctionId(listAuctionId); |
| | | |
| | | List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>(); |
| | | |
| | | for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) { |
| | | taoBaoGoodsBrief.setId(null); |
| | | |
| | | Map<String, Object> map = new HashMap<String, Object>(); |
| | | |
| | | map.put("pictUrl", taoBaoGoodsBrief.getPictUrl()); |
| | | map.put("title", taoBaoGoodsBrief.getTitle()); |
| | | map.put("auctionId", taoBaoGoodsBrief.getAuctionId()); |
| | | map.put("auctionUrl", taoBaoGoodsBrief.getAuctionUrl()); |
| | | map.put("zkPrice", taoBaoGoodsBrief.getZkPrice()); |
| | | map.put("biz30day", taoBaoGoodsBrief.getBiz30day()); |
| | | map.put("couponInfo", taoBaoGoodsBrief.getCouponInfo()); |
| | | map.put("couponTotalCount", taoBaoGoodsBrief.getCouponTotalCount()); |
| | | map.put("couponLeftCount", taoBaoGoodsBrief.getCouponLeftCount()); |
| | | map.put("couponEffectiveEndTime", taoBaoGoodsBrief.getCouponEffectiveEndTime()); |
| | | map.put("tkRate", taoBaoGoodsBrief.getTkRate()); |
| | | |
| | | // 来源 0 无 1淘宝 2 京东 |
| | | map.put("goodsSource", 1); |
| | | |
| | | /* 券后价--计算 */ |
| | | BigDecimal couponPrice = TaoBaoUtil.getCouponPrice(taoBaoGoodsBrief); |
| | | map.put("couponPrice", couponPrice); |
| | | |
| | | /* 预计收益: 公司、用户 */ |
| | | BigDecimal tkRate = taoBaoGoodsBrief.getTkRate(); |
| | | BigDecimal zkPrice = taoBaoGoodsBrief.getZkPrice(); |
| | | BigDecimal profit = MoneyBigDecimalUtil.mul(tkRate, zkPrice); |
| | | // 计算结果 |
| | | BigDecimal estimateProfit = MoneyBigDecimalUtil.div(profit, new BigDecimal("100")); |
| | | |
| | | // 预计收益 |
| | | map.put("estimateProfit", estimateProfit); |
| | | |
| | | int existence = 0; |
| | | |
| | | /* 查询商品是否已存在商品精选库中 */ |
| | | String localAuctionId = taoBaoGoodsBrief.getAuctionId(); |
| | | if (localAuctionId != null) { |
| | | if (listHas != null && listHas.size() > 0) { |
| | | for (QualityFactory selectionGoods : listHas) { |
| | | TaoBaoGoodsBrief hasgoodsBrief = selectionGoods.getTaoBaoGoodsBrief(); |
| | | String hasId = hasgoodsBrief.getAuctionId(); |
| | | if (TaoBaoUtil.isEqual( localAuctionId,hasId)) { |
| | | existence = 1; // 存在商品中 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | map.put("isExistence", existence); |
| | | |
| | | listmap.add(map); |
| | | } |
| | | |
| | | PageEntity pe = result.getPageEntity(); |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | GsonBuilder gsonBuilder = new GsonBuilder(); |
| | | gsonBuilder.serializeNulls(); // 重点 |
| | | Gson gson = gsonBuilder.setDateFormat("yyyy-MM-dd").create(); |
| | | |
| | | data.put("pe", pe); |
| | | data.put("listGoods", gson.toJson(listmap)); |
| | | |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | |
| | | } catch (Exception e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询异常")); |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | private List<Map<String, Object>> filterTaoBaoGoodsWithQulity(List<TaoBaoGoodsBrief> goodsList) { |
| | | |
| | | // 插入商品集合 |
| | | List<String> listAuctionId = new ArrayList<>(); |
| | | for (TaoBaoGoodsBrief goodsBrief : goodsList) { |
| | | listAuctionId.add(goodsBrief.getAuctionId()); |
| | | } |
| | | |
| | | // 验证是否存在数据库 |
| | | List<QualityFactory> listHas = qualityFactoryService.listQueryByAuctionId(listAuctionId); |
| | | |
| | | List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>(); |
| | | |
| | | for (TaoBaoGoodsBrief taoBaoGoodsBrief : goodsList) { |
| | | taoBaoGoodsBrief.setId(null); |
| | | |
| | | Map<String, Object> map = new HashMap<String, Object>(); |
| | | |
| | | map.put("pictUrl", taoBaoGoodsBrief.getPictUrl()); |
| | | map.put("title", taoBaoGoodsBrief.getTitle()); |
| | | map.put("auctionId", taoBaoGoodsBrief.getAuctionId()); |
| | | map.put("auctionUrl", taoBaoGoodsBrief.getAuctionUrl()); |
| | | map.put("zkPrice", taoBaoGoodsBrief.getZkPrice()); |
| | | map.put("biz30day", taoBaoGoodsBrief.getBiz30day()); |
| | | map.put("couponInfo", taoBaoGoodsBrief.getCouponInfo()); |
| | | map.put("couponTotalCount", taoBaoGoodsBrief.getCouponTotalCount()); |
| | | map.put("couponLeftCount", taoBaoGoodsBrief.getCouponLeftCount()); |
| | | map.put("couponEffectiveEndTime", taoBaoGoodsBrief.getCouponEffectiveEndTime()); |
| | | map.put("tkRate", taoBaoGoodsBrief.getTkRate()); |
| | | |
| | | // 来源 0 无 1淘宝 2 京东 |
| | | map.put("goodsSource", 1); |
| | | |
| | | /* 券后价--计算 */ |
| | | BigDecimal couponPrice = TaoBaoUtil.getCouponPrice(taoBaoGoodsBrief); |
| | | map.put("couponPrice", couponPrice); |
| | | |
| | | /* 预计收益: 公司、用户 */ |
| | | BigDecimal tkRate = taoBaoGoodsBrief.getTkRate(); |
| | | BigDecimal zkPrice = taoBaoGoodsBrief.getZkPrice(); |
| | | BigDecimal profit = MoneyBigDecimalUtil.mul(tkRate, zkPrice); |
| | | // 计算结果 |
| | | BigDecimal estimateProfit = MoneyBigDecimalUtil.div(profit, new BigDecimal("100")); |
| | | |
| | | // 预计收益 |
| | | map.put("estimateProfit", estimateProfit); |
| | | |
| | | int existence = 0; |
| | | |
| | | /* 查询商品是否已存在商品精选库中 */ |
| | | String localAuctionId = taoBaoGoodsBrief.getAuctionId(); |
| | | if (localAuctionId != null) { |
| | | if (listHas != null && listHas.size() > 0) { |
| | | for (QualityFactory selectionGoods : listHas) { |
| | | TaoBaoGoodsBrief hasgoodsBrief = selectionGoods.getTaoBaoGoodsBrief(); |
| | | String hasId = hasgoodsBrief.getAuctionId(); |
| | | if (TaoBaoUtil.isEqual(localAuctionId,hasId)) { |
| | | existence = 1; // 存在商品中 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | map.put("isExistence", existence); |
| | | |
| | | listmap.add(map); |
| | | } |
| | | |
| | | return listmap; |
| | | |
| | | } |
| | | |
| | | |
| | | @RequestMapping(value = "searchDaTaoKe") |
| | | public void searchDaTaoKe(AdminAcceptData acceptData,String callback, Integer pageIndex, Integer pageSize, String key, Long cid, |
| | | PrintWriter out) { |
| | | try { |
| | | key = StringUtil.isNullOrEmpty(key) ? "" : key; |
| | | List<DaTaoKeDetailV2> list = daTaoKeGoodsDetailV2Service.listSearchByTitleWithCid(key, cid, pageIndex, |
| | | pageSize); |
| | | long count = daTaoKeGoodsDetailV2Service.countSearchByTitleWithCid(key, cid); |
| | | List<TaoBaoGoodsBrief> goodsList = new ArrayList<>(); |
| | | for (DaTaoKeDetailV2 detail : list) { |
| | | goodsList.add(TaoBaoUtil.convert(detail)); |
| | | } |
| | | |
| | | List<Map<String, Object>> listmap = filterTaoBaoGoodsWithQulity(goodsList); |
| | | |
| | | PageEntity pe = new PageEntity(pageIndex, pageSize, (int) count,(int)(count%pageSize==0?count/pageSize:count/pageSize+1)); |
| | | JSONObject data = new JSONObject(); |
| | | GsonBuilder gsonBuilder = new GsonBuilder(); |
| | | gsonBuilder.serializeNulls(); // 重点 |
| | | Gson gson = gsonBuilder.setDateFormat("yyyy-MM-dd").create(); |
| | | |
| | | data.put("pe", pe); |
| | | data.put("listGoods", gson.toJson(listmap)); |
| | | |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | |
| | | } catch (Exception e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询异常")); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | @RequestMapping(value = "getQiangGou") |
| | | public void getQiangGou(AdminAcceptData acceptData,String callback, Integer pageIndex, PrintWriter out) { |
| | | |
| | | try { |
| | | |
| | | int pageSize = 40; |
| | | |
| | | // 第几页,默认:1 |
| | | if (pageIndex == null || pageIndex < 1) |
| | | pageIndex = 1; |
| | | |
| | | String startTime = "2018-09-17 09:00:00"; |
| | | |
| | | String endTime = "2018-09-17 16:00:00"; |
| | | |
| | | TaoBaoSearchResult result = TaoKeApiUtil.taoQiangGou(pageIndex, pageSize, startTime, endTime); |
| | | |
| | | if (result == null) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂未获取到相关数据")); |
| | | return; |
| | | } |
| | | |
| | | List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs(); |
| | | if (taoBaoGoodsBriefs == null || taoBaoGoodsBriefs.size() == 0) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无相关数据")); |
| | | return; |
| | | } |
| | | |
| | | // 插入商品集合 |
| | | List<String> listAuctionId = new ArrayList<>(); |
| | | for (TaoBaoGoodsBrief goodsBrief : taoBaoGoodsBriefs) { |
| | | listAuctionId.add(goodsBrief.getAuctionId()); |
| | | } |
| | | |
| | | // 验证是否存在数据库 |
| | | List<QualityFactory> listHas = qualityFactoryService.listQueryByAuctionId(listAuctionId); |
| | | |
| | | List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>(); |
| | | |
| | | for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) { |
| | | taoBaoGoodsBrief.setId(null); |
| | | |
| | | Map<String, Object> map = new HashMap<String, Object>(); |
| | | |
| | | map.put("pictUrl", taoBaoGoodsBrief.getPictUrl()); |
| | | map.put("title", taoBaoGoodsBrief.getTitle()); |
| | | map.put("auctionId", taoBaoGoodsBrief.getAuctionId()); |
| | | map.put("auctionUrl", taoBaoGoodsBrief.getAuctionUrl()); |
| | | map.put("zkPrice", taoBaoGoodsBrief.getZkPrice()); |
| | | map.put("biz30day", taoBaoGoodsBrief.getBiz30day()); |
| | | map.put("couponInfo", taoBaoGoodsBrief.getCouponInfo()); |
| | | map.put("couponTotalCount", taoBaoGoodsBrief.getCouponTotalCount()); |
| | | map.put("couponLeftCount", taoBaoGoodsBrief.getCouponLeftCount()); |
| | | map.put("couponEffectiveEndTime", taoBaoGoodsBrief.getCouponEffectiveEndTime()); |
| | | map.put("tkRate", taoBaoGoodsBrief.getTkRate()); |
| | | |
| | | // 来源 0 无 1淘宝 2 京东 |
| | | map.put("goodsSource", 1); |
| | | |
| | | /* 券后价--计算 */ |
| | | BigDecimal couponPrice = TaoBaoUtil.getCouponPrice(taoBaoGoodsBrief); |
| | | map.put("couponPrice", couponPrice); |
| | | |
| | | /* 预计收益: 公司、用户 */ |
| | | BigDecimal tkRate = taoBaoGoodsBrief.getTkRate(); |
| | | BigDecimal zkPrice = taoBaoGoodsBrief.getZkPrice(); |
| | | BigDecimal profit = MoneyBigDecimalUtil.mul(tkRate, zkPrice); |
| | | // 计算结果 |
| | | BigDecimal estimateProfit = MoneyBigDecimalUtil.div(profit, new BigDecimal("100")); |
| | | |
| | | // 预计收益 |
| | | map.put("estimateProfit", estimateProfit); |
| | | |
| | | int existence = 0; |
| | | |
| | | /* 查询商品是否已存在商品精选库中 */ |
| | | String localAuctionId = taoBaoGoodsBrief.getAuctionId(); |
| | | if (localAuctionId != null) { |
| | | if (listHas != null && listHas.size() > 0) { |
| | | for (QualityFactory selectionGoods : listHas) { |
| | | TaoBaoGoodsBrief hasgoodsBrief = selectionGoods.getTaoBaoGoodsBrief(); |
| | | String hasId = hasgoodsBrief.getAuctionId(); |
| | | if ( TaoBaoUtil.isEqual(localAuctionId,hasId)) { |
| | | existence = 1; // 存在商品中 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | map.put("isExistence", existence); |
| | | listmap.add(map); |
| | | } |
| | | |
| | | PageEntity pe = result.getPageEntity(); |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | GsonBuilder gsonBuilder = new GsonBuilder(); |
| | | gsonBuilder.serializeNulls(); // 重点 |
| | | Gson gson = gsonBuilder.setDateFormat("yyyy-MM-dd").create(); |
| | | |
| | | data.put("pe", pe); |
| | | data.put("listGoods", gson.toJson(listmap)); |
| | | |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); |
| | | } catch (Exception e) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询异常")); |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | } |
| | | |
| | | } |