Merge remote-tracking branch 'origin/master' into master_develop
| | |
| | | import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
|
| | | import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra;
|
| | | import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult;
|
| | | import com.yeshi.fanli.entity.taobao.TaoBaoShop;
|
| | | import com.yeshi.fanli.entity.taobao.TaoBaoShopInfo;
|
| | | import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
|
| | | import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
|
| | |
| | | import com.yeshi.fanli.service.inter.order.OrderService;
|
| | | import com.yeshi.fanli.service.inter.order.ShareGoodsActivityOrderService;
|
| | | import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
|
| | | import com.yeshi.fanli.service.inter.taobao.TaoBaoShopService;
|
| | | import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
|
| | | import com.yeshi.fanli.service.inter.user.ShamUserService;
|
| | | import com.yeshi.fanli.service.inter.user.TBPidService;
|
| | |
| | |
|
| | | @Resource
|
| | | private TaoBaoGoodsCacheUtil taoBaoGoodsCacheUtil;
|
| | |
|
| | | @Resource
|
| | | private TaoBaoShopService taoBaoShopService;
|
| | |
|
| | | @RequestMapping(value = "getHonestList")
|
| | | public void getHonestList(AcceptData acceptData, PrintWriter out) {
|
| | |
| | | goodsJson.put("hongBao", hongBao);
|
| | |
|
| | | List<ClientTextStyleVO> labels = new ArrayList<>();
|
| | | labels.add(new ClientTextStyleVO("标签测试内容1", "#FF0000"));
|
| | | labels.add(new ClientTextStyleVO("标签测试内容2", "#00FF00"));
|
| | | labels.add(new ClientTextStyleVO("标签测试内容", "#FF0000"));
|
| | | labels.add(new ClientTextStyleVO("标签测试内容", "#00FF00"));
|
| | | goodsJson.put("labels", labels);
|
| | |
|
| | | data.put("tbPidInfo", clientTBPid);
|
| | |
| | | }
|
| | | }
|
| | | // 店铺
|
| | | goodsJson.put("shopInfo", tbShopInfo);
|
| | | if (("android".equalsIgnoreCase(acceptData.getPlatform()) && Integer.parseInt(acceptData.getVersion()) >= 40)
|
| | | || ("ios".equalsIgnoreCase(acceptData.getPlatform())
|
| | | && Integer.parseInt(acceptData.getVersion()) >= 49)) {
|
| | | TaoBaoShop shop = taoBaoShopService.getTaoBaoShop(goods.getAuctionId(), goods.getSellerId());
|
| | | if (shop != null)
|
| | | goodsJson.put("shopInfo", shop);
|
| | | } else {
|
| | | goodsJson.put("shopInfo", tbShopInfo);
|
| | | }
|
| | |
|
| | | goodsJson.put("fanliValid", true);// 是否有返利
|
| | |
|
| | | // 分享路径
|
| | |
| | | */
|
| | | public class UserMoneyChangeDTO {
|
| | | private Long uid;
|
| | | private BigDecimal chnageMoney;// 变化的资金金额
|
| | | private BigDecimal changeMoney;// 变化的资金金额
|
| | |
|
| | | public UserMoneyChangeDTO() {
|
| | |
|
| | | }
|
| | |
|
| | | public UserMoneyChangeDTO(Long uid, BigDecimal chnageMoney) {
|
| | | public UserMoneyChangeDTO(Long uid, BigDecimal changeMoney) {
|
| | | this.uid = uid;
|
| | | this.chnageMoney = chnageMoney;
|
| | | this.changeMoney = changeMoney;
|
| | | }
|
| | |
|
| | | public Long getUid() {
|
| | |
| | | this.uid = uid;
|
| | | }
|
| | |
|
| | | public BigDecimal getChnageMoney() {
|
| | | return chnageMoney;
|
| | | public BigDecimal getChangeMoney() {
|
| | | return changeMoney;
|
| | | }
|
| | |
|
| | | public void setChnageMoney(BigDecimal chnageMoney) {
|
| | | this.chnageMoney = chnageMoney;
|
| | | public void setChangeMoney(BigDecimal changeMoney) {
|
| | | this.changeMoney = changeMoney;
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | List<TaoBaoOrder> taoBaoOrderList = taoBaoOrderService.getTaoBaoOrderByOrderId(lo.getOrderId());
|
| | | // 清除频率限制
|
| | | if (taoBaoOrderList != null && taoBaoOrderList.size() > 0) {
|
| | | String key = "addorder-" + lo.getOrderId();
|
| | | String key = "addorderqueue-" + lo.getOrderId();
|
| | | redisManager.removeCommonString(key);
|
| | | addOrder(taoBaoOrderList);
|
| | | LogHelper.test("自动处理淘宝订单:" + lo.getOrderId());
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | @Override
|
| | | public boolean isHaveDebtToRepay(Long uid) {
|
| | | List<UserMoneyDebt> debtList = userMoneyDebtMapper.listByUidWithHasLeftMoney(uid, 0, 1);
|
| | | if (debtList != null && debtList.size() > 0)
|
| | | return true;
|
| | | return false;
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | import com.yeshi.fanli.util.StringUtil;
|
| | | import com.yeshi.fanli.util.db.MongoDBManager;
|
| | | import com.yeshi.fanli.util.taobao.TaoBaoShopUtil;
|
| | | import com.yeshi.fanli.util.taobao.TaoBaoUtil;
|
| | | import com.yeshi.fanli.vo.brand.TaoBaoShopVO;
|
| | |
|
| | | @Service
|
| | |
| | |
|
| | | @Resource
|
| | | private MongoDBManager mongoDBManager;
|
| | | |
| | |
|
| | | @Resource
|
| | | private TaoBaoShopMapper taoBaoShopMapper;
|
| | |
|
| | |
| | | LogHelper.test("获取店铺信息耗时:" + (System.currentTimeMillis() - startTime));
|
| | | return shopInfo;
|
| | | }
|
| | | |
| | | |
| | |
|
| | | @Override
|
| | | public TaoBaoShop selectByPrimaryKey(Long id) {
|
| | | return taoBaoShopMapper.selectByPrimaryKey(id);
|
| | | }
|
| | |
|
| | |
|
| | | @Override
|
| | | public int insertSelective(TaoBaoShop record) {
|
| | | return taoBaoShopMapper.insertSelective(record);
|
| | | }
|
| | |
|
| | |
|
| | | @Override
|
| | | public int updateByPrimaryKeySelective(TaoBaoShop record) {
|
| | | return taoBaoShopMapper.updateByPrimaryKeySelective(record);
|
| | | }
|
| | | |
| | |
|
| | | @Override
|
| | | public void changeInfo(MultipartFile file, Long id, String shopName) {
|
| | | TaoBaoShop taoBaoShop = taoBaoShopMapper.selectByPrimaryKey(id);
|
| | | if (taoBaoShop == null) {
|
| | | return;
|
| | | }
|
| | | |
| | |
|
| | | String fileLink = null;
|
| | | if (file != null) {
|
| | | try {
|
| | |
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | | |
| | |
|
| | | TaoBaoShop updateShop = new TaoBaoShop();
|
| | | if (!StringUtil.isNullOrEmpty(fileLink)) {
|
| | | updateShop.setShopIconCustom(fileLink);
|
| | | |
| | |
|
| | | // 删除图片
|
| | | String shopIconCustom = taoBaoShop.getShopIconCustom();
|
| | | if (!StringUtil.isNullOrEmpty(shopIconCustom)) {
|
| | | COSManager.getInstance().deleteFile(shopIconCustom);
|
| | | }
|
| | | }
|
| | | |
| | | |
| | |
|
| | | if (StringUtil.isNullOrEmpty(shopName) || "null".equalsIgnoreCase(shopName)) {
|
| | | shopName = null;
|
| | | }
|
| | | |
| | |
|
| | | updateShop.setId(id);
|
| | | updateShop.setShopNameCustom(shopName);
|
| | | taoBaoShopMapper.updateByPrimaryKeySelective(updateShop);
|
| | | }
|
| | | |
| | | |
| | |
|
| | | /**
|
| | | * 上传图片
|
| | | * |
| | | * @param file
|
| | | * @return
|
| | | * @throws Exception
|
| | | */
|
| | | public String uploadPicture(MultipartFile file) throws Exception {
|
| | | // 文件解析 |
| | | // 文件解析
|
| | | InputStream inputStream = file.getInputStream();
|
| | | String contentType = file.getContentType();
|
| | | String type = contentType.substring(contentType.indexOf("/") + 1);
|
| | | |
| | |
|
| | | // 文件路径
|
| | | String filePath="/img/TaoBaoShop/"+UUID.randomUUID().toString().replace("-", "") + "." + type;
|
| | | String filePath = "/img/TaoBaoShop/" + UUID.randomUUID().toString().replace("-", "") + "." + type;
|
| | | // 执行上传
|
| | | String fileLink= COSManager.getInstance().uploadFile(inputStream, filePath).getUrl();
|
| | | |
| | | String fileLink = COSManager.getInstance().uploadFile(inputStream, filePath).getUrl();
|
| | |
|
| | | return fileLink;
|
| | | }
|
| | |
|
| | |
|
| | | @Override
|
| | | public List<TaoBaoShopVO> listBrandShopinfo(long start, int count, Long cid) {
|
| | | return taoBaoShopMapper.listBrandShopinfo(start, count, cid);
|
| | | }
|
| | |
|
| | |
|
| | | @Override
|
| | | public long countBrandShopinfo(Long cid) {
|
| | | return taoBaoShopMapper.countBrandShopinfo(cid);
|
| | | }
|
| | |
|
| | | |
| | | @Override
|
| | | public TaoBaoShop getTaoBaoShop(Long auctionId, Long sellerId) {
|
| | | TaoBaoShop shop = taoBaoShopMapper.selectByPrimaryKey(sellerId);
|
| | | if (shop != null)
|
| | | return shop;
|
| | | shop = TaoBaoUtil.getTaoBaoShopDetailByAuctionId(auctionId);
|
| | | if (shop != null)
|
| | | taoBaoShopMapper.insert(shop);
|
| | | return shop;
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | import com.yeshi.fanli.service.inter.config.ConfigService;
|
| | | import com.yeshi.fanli.service.inter.config.SystemConfigService;
|
| | | import com.yeshi.fanli.service.inter.hongbao.HongBaoV2Service;
|
| | | import com.yeshi.fanli.service.inter.money.UserMoneyDebtService;
|
| | | import com.yeshi.fanli.service.inter.msg.UserMoneyMsgNotificationService;
|
| | | import com.yeshi.fanli.service.inter.push.PushService;
|
| | | import com.yeshi.fanli.service.inter.user.ExtractRecordService;
|
| | |
| | |
|
| | | @Resource
|
| | | private UserAccountBindingHistoryService userAccountBindingHistoryService;
|
| | |
|
| | | @Resource
|
| | | private UserMoneyDebtService userMoneyDebtService;
|
| | |
|
| | | @Transactional
|
| | | public Integer addExtract(Extract extract) {
|
| | |
| | | Long count = hongBaoV2Mapper.countByUidAndState(uid, HongBao.STATE_YILINGQU);
|
| | | if (count == null || count == 0)
|
| | | throw new ExtractException(1, "没有已到账的红包");
|
| | | // 查询是否有欠账
|
| | | boolean isDebt = userMoneyDebtService.isHaveDebtToRepay(uid);
|
| | | if (isDebt)
|
| | | throw new ExtractException(3, "有欠账未还");
|
| | | // 获取所有收入所得
|
| | | BigDecimal hongBaoMoney = hongBaoV2Service.computeMoneyByUidAndState(uid, HongBaoV2.STATE_YILINGQU);
|
| | |
|
| | |
| | | * @param debt
|
| | | * @throws UserMoneyDebtException
|
| | | */
|
| | | public void repayDebt(UserMoneyDebt debt,BigDecimal money) throws UserMoneyDebtException;
|
| | | |
| | | public void repayDebt(UserMoneyDebt debt, BigDecimal money) throws UserMoneyDebtException;
|
| | |
|
| | | /**
|
| | | * 偿还
|
| | | * |
| | | * @param uid
|
| | | */
|
| | | public void repayDebt(Long uid);
|
| | |
|
| | | /**
|
| | | * 是否有账务待还
|
| | | * |
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | public boolean isHaveDebtToRepay(Long uid);
|
| | |
|
| | | }
|
| | |
| | |
|
| | | /**
|
| | | * 店铺信息
|
| | | * |
| | | * @param id
|
| | | * @return
|
| | | */
|
| | | public TaoBaoShop selectByPrimaryKey(Long id);
|
| | |
|
| | | |
| | | /**
|
| | | * 获取店铺信息
|
| | | * |
| | | * @param auctionId
|
| | | * @param sellerId
|
| | | * @return
|
| | | */
|
| | | public TaoBaoShop getTaoBaoShop(Long auctionId, Long sellerId);
|
| | |
|
| | | public int insertSelective(TaoBaoShop record);
|
| | | |
| | | |
| | |
|
| | | public int updateByPrimaryKeySelective(TaoBaoShop record);
|
| | |
|
| | | /**
|
| | | * 修改店铺信息
|
| | | * |
| | | * @param file
|
| | | * @param id
|
| | | * @param shopName
|
| | | */
|
| | | public void changeInfo(MultipartFile file, Long id, String shopName);
|
| | | |
| | | |
| | |
|
| | | /**
|
| | | * 查询店铺信息、并返回钱3个商品数量
|
| | | * |
| | | * @param start
|
| | | * @param count
|
| | | * @param cid
|
| | | * @return
|
| | | */
|
| | | public List<TaoBaoShopVO> listBrandShopinfo(long start, int count, Long cid);
|
| | | |
| | | |
| | |
|
| | | long countBrandShopinfo(Long cid);
|
| | | }
|
| | |
| | | long count = jedis.incr(key);
|
| | | if (count == 1)
|
| | | jedis.expire(key, 5);
|
| | | if (count >= 100)
|
| | | if (count >= 10)
|
| | | return true;
|
| | | else
|
| | | return false;
|
| | |
| | | package com.yeshi.fanli.util;
|
| | |
|
| | | import java.math.BigDecimal;
|
| | | import java.util.ArrayList;
|
| | | import java.util.Iterator;
|
| | | import java.util.List;
|
| | |
| | | import org.yeshi.utils.tencentcloud.COSManager;
|
| | | import org.yeshi.utils.tencentcloud.entity.COSInitParams;
|
| | |
|
| | | import com.yeshi.fanli.dto.money.UserMoneyChangeDTO;
|
| | | import com.yeshi.fanli.entity.bus.user.AlipayTransferResultInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.HongBaoV2;
|
| | | import com.yeshi.fanli.entity.bus.user.ThreeSale;
|
| | |
| | | import com.yeshi.fanli.service.inter.lable.BoutiqueAutoRuleService;
|
| | | import com.yeshi.fanli.service.inter.lable.LabelService;
|
| | | import com.yeshi.fanli.service.inter.lable.QualityFactoryService;
|
| | | import com.yeshi.fanli.service.inter.money.UserMoneyDebtService;
|
| | | import com.yeshi.fanli.service.inter.order.OrderProcessService;
|
| | | import com.yeshi.fanli.service.inter.push.IOSPushService;
|
| | | import com.yeshi.fanli.service.inter.taobao.TaoBaoOrderService;
|
| | |
| | | import com.yeshi.fanli.service.inter.user.UserInfoService;
|
| | | import com.yeshi.fanli.service.inter.user.UserSystemCouponService;
|
| | | import com.yeshi.fanli.util.cmq.ThreeSaleCMQManager;
|
| | | import com.yeshi.fanli.util.cmq.UserMoneyChangeCMQManager;
|
| | |
|
| | | /**
|
| | | * 系统初始化
|
| | |
| | | @Resource
|
| | | private RedisManager redisManager;
|
| | |
|
| | | @Resource
|
| | | private UserMoneyDebtService userMoneyDebtService;
|
| | |
|
| | | private static boolean isInited = false;
|
| | |
|
| | | public void onApplicationEvent(ContextRefreshedEvent arg0) {
|
| | |
| | | doPushIOS();// 处理发送IOS消息
|
| | | doThreeSaleUserCouponJob();// 处理邀请队列
|
| | | doUpdateGoodsJob();
|
| | | doUserMoneyDebtJob();// 债务偿还
|
| | | } else if (!Constant.IS_TEST) {
|
| | | initScheduler();// 启动定时任务
|
| | | //
|
| | |
| | | });
|
| | |
|
| | | }
|
| | |
|
| | | /**
|
| | | * 用户借贷处理
|
| | | */
|
| | | public void doUserMoneyDebtJob() {
|
| | | executor.execute(new Runnable() {
|
| | | @Override
|
| | | public void run() {
|
| | | while (true) {
|
| | | try {
|
| | | Map<String, UserMoneyChangeDTO> map = UserMoneyChangeCMQManager.getInstance()
|
| | | .consumeQueueMsg(UserMoneyChangeCMQManager.QUEUE_DEBT, 16);
|
| | | if (map != null) {
|
| | |
|
| | | Iterator<String> its = map.keySet().iterator();
|
| | | while (its.hasNext()) {
|
| | | String key = its.next();
|
| | | try {
|
| | | UserMoneyChangeDTO dto = map.get(key);
|
| | | if (dto != null && dto.getChangeMoney().compareTo(new BigDecimal(0)) > 0) {
|
| | | userMoneyDebtService.repayDebt(dto.getUid());
|
| | | }
|
| | | UserMoneyChangeCMQManager.getInstance()
|
| | | .deleteQueueMsg(UserMoneyChangeCMQManager.QUEUE_DEBT, key);
|
| | | } catch (Exception e) {
|
| | | try {
|
| | | LogHelper.errorDetailInfo(e);
|
| | | } catch (Exception e1) {
|
| | | e1.printStackTrace();
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | } catch (Exception e) {
|
| | | LogHelper.error("还款出错:" + e.getMessage());
|
| | |
|
| | | }
|
| | | }
|
| | | }
|
| | | });
|
| | | }
|
| | | }
|
| | |
| | | import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
|
| | | import com.yeshi.fanli.entity.taobao.TaoBaoHead;
|
| | | import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult;
|
| | | import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetail;
|
| | | import com.yeshi.fanli.tag.PageEntity;
|
| | | import com.yeshi.fanli.util.StringUtil;
|
| | | import com.yeshi.fanli.util.TimeUtil;
|
| | |
| | | return couponList;
|
| | | }
|
| | |
|
| | | private static List<DaTaoKeDetail> parseCurrent(String url) {
|
| | | try {
|
| | | Document doc = Jsoup.connect(url)
|
| | | .userAgent(
|
| | | "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36")
|
| | | .get();
|
| | | Elements items = doc.getElementsByClass("goods-list").get(0).getElementsByClass("goods-item");
|
| | | for (int i = 0; i < items.size(); i++) {
|
| | | Long id = Long.parseLong(items.get(i).attr("id").replace("goods-items_", ""));
|
| | | String currentSale = items.get(i).getElementsByClass("goods-item-content").get(0)
|
| | | .getElementsByClass("goods-info").get(0).getElementsByClass("tg-show").get(0)
|
| | | .getElementsByTag("b").get(0).text();
|
| | |
|
| | | System.out.println(id + "-" + currentSale);
|
| | |
|
| | | }
|
| | |
|
| | | } catch (IOException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | |
|
| | | // TODO 需要返回值
|
| | | return null;
|
| | | }
|
| | |
|
| | | // 获取实时榜单
|
| | | /**
|
| | | * 获取实时销量榜
|
| | | * |
| | | * @param cid
|
| | | * @return
|
| | | */
|
| | | public static List<DaTaoKeDetail> getCurrentSalesRank(Long cid) {
|
| | | String url = null;
|
| | | if (cid == null)
|
| | | url = "http://www.dataoke.com/top_sell";
|
| | | else
|
| | | url = String.format("http://www.dataoke.com/top_sell?cid=%s&type=1", cid);
|
| | | return parseCurrent(url);
|
| | | }
|
| | |
|
| | | /**
|
| | | * 全天销量榜
|
| | | * |
| | | * @param cid
|
| | | * @return
|
| | | */
|
| | | public static List<DaTaoKeDetail> getCurrentDaySalesRank(Long cid) {
|
| | | String url = null;
|
| | | if (cid == null)
|
| | | url = "http://www.dataoke.com/top_all";
|
| | | else
|
| | | url = String.format("http://www.dataoke.com/top_all?cid=%s", cid);
|
| | | return parseCurrent(url);
|
| | | }
|
| | |
|
| | | /**
|
| | | * 获取热推榜
|
| | | * |
| | | * @param cid
|
| | | * @return
|
| | | */
|
| | | public static List<DaTaoKeDetail> getCurrentHotSalesRank() {
|
| | | String url = "http://www.dataoke.com/top_tui";
|
| | | return parseCurrent(url);
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | tg.setSalesType(Math.random() > 0.5 ? 1 : 2);
|
| | | tg.setSalesType(Math.random() > 0.5 ? tg.getSalesType() : 3);
|
| | | List<ClientTextStyleVO> labels = new ArrayList<>();
|
| | | labels.add(new ClientTextStyleVO("标签测试内容1", "#FF0000"));
|
| | | labels.add(new ClientTextStyleVO("标签测试内容2", "#00FF00"));
|
| | | labels.add(new ClientTextStyleVO("标签测试内容", "#FF0000"));
|
| | | labels.add(new ClientTextStyleVO("标签测试内容", "#00FF00"));
|
| | | tg.setLabels(labels);
|
| | |
|
| | | return tg;
|
| | |
| | | tg.setSalesType(Math.random() > 0.5 ? 1 : 2);
|
| | | tg.setSalesType(Math.random() > 0.5 ? tg.getSalesType() : 3);
|
| | | List<ClientTextStyleVO> labels = new ArrayList<>();
|
| | | labels.add(new ClientTextStyleVO("标签测试内容1", "#FF0000"));
|
| | | labels.add(new ClientTextStyleVO("标签测试内容2", "#00FF00"));
|
| | | labels.add(new ClientTextStyleVO("标签测试内容", "#FF0000"));
|
| | | labels.add(new ClientTextStyleVO("标签测试内容", "#00FF00"));
|
| | | tg.setLabels(labels);
|
| | |
|
| | | return tg;
|
| | |
| | | * @return
|
| | | */
|
| | | public static String getGoodsHongBaoInfo(TaoBaoGoodsBrief goodsBrief, BigDecimal rate) {
|
| | | if (goodsBrief != null && goodsBrief.getMaterialLibType() != null && goodsBrief.getMaterialLibType() == 0)
|
| | | return "¥0.00";
|
| | | else
|
| | | // if (goodsBrief != null && goodsBrief.getMaterialLibType() != null && goodsBrief.getMaterialLibType() == 0)
|
| | | // return "¥0.00";
|
| | | // else
|
| | | return "¥" + getGoodsHongBaoMoney(goodsBrief, rate).toString();
|
| | | }
|
| | |
|
| | |
| | | shop.setUserType(0);
|
| | |
|
| | | shop.setShopLink(TaoBaoUtil.getShopLink(shop.getId()));
|
| | | |
| | |
|
| | | return shop;
|
| | | }
|
| | | |
| | |
|
| | | /**
|
| | | * 根据卖家id获取店铺链接
|
| | | * |
| | | * @param sellerId
|
| | | * @return
|
| | | */
|
| | | public static String getShopLink(Long sellerId) {
|
| | | return "http://store.taobao.com/shop/view_shop.htm?user_number_id=" + sellerId;
|
| | | return "http://store.taobao.com/shop/view_shop.htm?user_number_id=" + sellerId;
|
| | | }
|
| | | |
| | |
|
| | | public static void main(String[] args) {
|
| | | String s = channelMap.get("3");
|