package com.ks.lijin.service.manager;
|
|
import com.ks.lijin.dao.LijinDangerGoodsDao;
|
import com.ks.lijin.dao.LijinDangerSellerDao;
|
import com.ks.lijin.mapper.LiJinExpendRecordMapper;
|
import com.ks.lijin.pojo.DO.LiJinDangerGoods;
|
import com.ks.lijin.pojo.DO.LiJinDangerSeller;
|
import com.ks.lijin.pojo.DO.LiJinExpendRecord;
|
import com.ks.lijin.pojo.DO.TaoBaoOrderRecord;
|
import com.ks.lijin.util.Constant;
|
import com.ks.lijin.utils.taobao.TaoBaoOrderUtil;
|
import com.ks.lijin.utils.taobao.TaoKeApiUtil;
|
import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
|
import org.springframework.stereotype.Component;
|
import org.yeshi.utils.TimeUtil;
|
|
import javax.annotation.Resource;
|
import java.math.BigDecimal;
|
import java.util.Date;
|
import java.util.List;
|
|
@Component
|
public class LijinDangerSellerManager {
|
|
@Resource
|
private LijinDangerSellerDao lijinDangerSellerDao;
|
|
@Resource
|
private LiJinExpendRecordMapper liJinExpendRecordMapper;
|
|
/**
|
* 处理订单
|
*
|
* @param record
|
* @throws Exception
|
*/
|
public void processOrder(TaoBaoOrderRecord record) throws Exception {
|
if (record == null) {
|
throw new Exception("订单为空");
|
}
|
|
if (record.getTb_paid_time() == null) {
|
throw new Exception("订单未付款");
|
}
|
|
//查询是否在危险商家中
|
TaoBaoGoodsBrief goods = TaoKeApiUtil.getSimpleGoodsInfo(record.getItem_id());
|
|
LiJinDangerSeller dangerSeller = lijinDangerSellerDao.get(LiJinDangerSeller.createId(1, goods.getSellerId() + ""));
|
if (dangerSeller != null) {
|
throw new Exception("已加入危险商家记录");
|
}
|
//判断是否
|
Date maxCreateTime = record.getTb_paid_time();
|
Date minCreateTime = new Date(TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(maxCreateTime.getTime(), "yyyyMMdd"), "yyyyMMdd"));
|
LiJinExpendRecord expendRecord = liJinExpendRecordMapper.getMaxMoneyRecord(record.getItem_id() + "", minCreateTime, maxCreateTime);
|
//判断是否触发机制
|
if (expendRecord == null) {
|
throw new Exception("礼金创建记录不存在");
|
}
|
BigDecimal money = expendRecord.getMoney();
|
BigDecimal commission = TaoBaoOrderUtil.getCommission(record);
|
if (commission == null) {
|
throw new Exception("订单未处于付款/结算状态");
|
}
|
|
//礼金大于佣金的87%表示出错
|
if (money.compareTo(commission.multiply(new BigDecimal("0.87"))) >= 0) {
|
//危险报警
|
LiJinDangerSeller seller = new LiJinDangerSeller();
|
seller.setCreateTime(new Date());
|
seller.setSellerId(goods.getSellerId() + "");
|
seller.setSellerName(goods.getShopTitle());
|
seller.setGoodsType(1);
|
seller.setId(LiJinDangerSeller.createId(1, seller.getSellerId()));
|
lijinDangerSellerDao.save(seller);
|
}
|
}
|
|
|
/**
|
* 是否是危险商品
|
*
|
* @param sellerId
|
* @param goodsType
|
* @return
|
*/
|
public boolean isDangerous(String sellerId, int goodsType) {
|
String id = LiJinDangerSeller.createId(goodsType, sellerId);
|
return lijinDangerSellerDao.get(id) != null;
|
}
|
|
|
}
|