package com.yeshi.fanli.service.impl.taobao;
|
|
import java.io.InputStream;
|
import java.math.BigDecimal;
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.UUID;
|
|
import javax.annotation.Resource;
|
|
import org.springframework.cache.annotation.Cacheable;
|
import org.springframework.stereotype.Service;
|
import org.springframework.web.multipart.MultipartFile;
|
import org.yeshi.utils.tencentcloud.COSManager;
|
|
import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoShopMapper;
|
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
|
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra;
|
import com.yeshi.fanli.entity.taobao.TaoBaoShop;
|
import com.yeshi.fanli.entity.taobao.TaoBaoShopInfo;
|
import com.yeshi.fanli.log.LogHelper;
|
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
|
import com.yeshi.fanli.service.inter.taobao.TaoBaoShopService;
|
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
|
public class TaoBaoShopServiceImpl implements TaoBaoShopService {
|
|
@Resource
|
private MongoDBManager mongoDBManager;
|
|
@Resource
|
private TaoBaoShopMapper taoBaoShopMapper;
|
|
@Resource
|
private HongBaoManageService hongBaoManageService;
|
|
@Override
|
public TaoBaoShopInfo getTaoBaoShopInfo(TaoBaoGoodsBrief goodsInfo) {
|
if (goodsInfo == null)
|
return null;
|
long startTime = System.currentTimeMillis();
|
TaoBaoShopInfo shopInfo = null;
|
try {
|
shopInfo = mongoDBManager.getTBShopInfo(goodsInfo.getSellerId());
|
} catch (Exception e) {
|
LogHelper.error(e);
|
}
|
|
if (shopInfo == null) {
|
shopInfo = TaoBaoShopUtil.getTaoBaoShopInfo(goodsInfo.getShopTitle(), goodsInfo.getSellerId(),
|
goodsInfo.getAuctionId());
|
if (shopInfo != null)
|
try {
|
mongoDBManager.saveTBShopInfo(shopInfo);
|
} catch (Exception e) {
|
}
|
}
|
|
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, String key) {
|
TaoBaoShop taoBaoShop = taoBaoShopMapper.selectByPrimaryKey(id);
|
if (taoBaoShop == null) {
|
return;
|
}
|
|
String fileLink = null;
|
if (file != null) {
|
try {
|
fileLink = uploadPicture(file);
|
} catch (Exception e) {
|
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);
|
updateShop.setKey(key);
|
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 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);
|
try {
|
if (shop != null)
|
taoBaoShopMapper.insert(shop);
|
} catch (Exception e) {
|
}
|
return shop;
|
}
|
|
@Override
|
@Cacheable(value = "brandCache", key = "'getShopByKey-'+#key")
|
public List<TaoBaoShopVO> getShopByKey(String key) {
|
List<TaoBaoShopVO> list = taoBaoShopMapper.getShopByKey(key);
|
if (list == null || list.size() == 0) {
|
return null;
|
}
|
|
BigDecimal proportion = hongBaoManageService.getFanLiRate();
|
for (TaoBaoShopVO taoBaoShopVO : list) {
|
|
String shopLink = taoBaoShopVO.getShopLink();
|
if (StringUtil.isNullOrEmpty(shopLink)) {
|
taoBaoShopVO.setShopLink(TaoBaoUtil.getShopLink(taoBaoShopVO.getId()));
|
}
|
|
String shopNameCustom = taoBaoShopVO.getShopNameCustom();
|
if (!StringUtil.isNullOrEmpty(shopNameCustom)) {
|
taoBaoShopVO.setShopName(shopNameCustom);
|
}
|
|
String shopIconCustom = taoBaoShopVO.getShopIconCustom();
|
if (!StringUtil.isNullOrEmpty(shopIconCustom)) {
|
taoBaoShopVO.setShopIcon(shopIconCustom);
|
}
|
|
List<TaoBaoGoodsBriefExtra> listGoods = new ArrayList<TaoBaoGoodsBriefExtra>();
|
List<TaoBaoGoodsBrief> listGoodsBrief = taoBaoShopVO.getListGoodsBrief();
|
for (TaoBaoGoodsBrief taoBaoGoodsBrief : listGoodsBrief) {
|
listGoods.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null));
|
}
|
taoBaoShopVO.setListGoods(listGoods);
|
}
|
return list;
|
}
|
}
|