package com.ks.lijin.service.manager;
|
|
import com.ks.lijin.dao.TaoBaoOrderRecordDao;
|
import com.ks.lijin.mapper.LiJinExpendRecordMapper;
|
import com.ks.lijin.mapper.LiJinProviderAccountMapper;
|
import com.ks.lijin.pojo.DO.LiJinExpendRecord;
|
import com.ks.lijin.pojo.DO.LiJinProviderTaoKeAccount;
|
import com.ks.lijin.pojo.DO.TaoBaoOrderRecord;
|
import com.ks.lijin.pojo.DTO.taobao.TaoKeAppInfo;
|
import com.ks.lijin.pojo.DTO.taobao.TaoLiJinReportDTO;
|
import com.ks.lijin.service.LiJinProviderAccountService;
|
import com.ks.lijin.utils.taobao.TaoKeApiUtil;
|
import com.ks.vip.exception.LijinBalanceException;
|
import com.ks.vip.pojo.DO.UserLijinRecord;
|
import com.ks.vip.service.LijinBalanceService;
|
import com.ks.vip.service.LijinRecordService;
|
import org.apache.dubbo.config.annotation.Reference;
|
import org.springframework.stereotype.Component;
|
import org.yeshi.utils.TimeUtil;
|
|
import javax.annotation.Resource;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* 礼金订单管理
|
*/
|
@Component
|
public class LijinOrderManager {
|
|
@Resource
|
private TaoBaoOrderRecordDao taoBaoOrderRecordDao;
|
|
@Resource
|
private LijinDangerGoodsManager lijinDangerGoodsManager;
|
|
@Resource
|
private LiJinExpendRecordMapper liJinExpendRecordMapper;
|
|
@Resource
|
private LiJinProviderAccountMapper liJinProviderAccountMapper;
|
|
@Reference(version = "1.0", check = false)
|
private LijinBalanceService lijinBalanceService;
|
|
@Reference(version = "1.0", check = false)
|
private LijinRecordService lijinRecordService;
|
|
/**
|
* 保存淘宝订单
|
*
|
* @param taoBaoOrderRecord
|
*/
|
public void saveTaoBaoOrder(TaoBaoOrderRecord taoBaoOrderRecord) {
|
if (taoBaoOrderRecord == null) {
|
return;
|
}
|
//不保存非淘礼金的订单数据
|
if (taoBaoOrderRecord.getMarketing_type() == null || !taoBaoOrderRecord.getMarketing_type().contains("淘礼金")) {
|
return;
|
}
|
taoBaoOrderRecord.setUpdateTime(new Date());
|
taoBaoOrderRecord.setId(taoBaoOrderRecord.getTrade_id());
|
taoBaoOrderRecordDao.save(taoBaoOrderRecord);
|
|
try {
|
lijinDangerGoodsManager.processOrder(taoBaoOrderRecord);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
|
public void syncOnGoingLijin() {
|
long now = System.currentTimeMillis();
|
Date maxCreateTime = new Date(now - 1000 * 60 * 2);
|
Date minCreateTime = new Date(maxCreateTime.getTime() - 1000 * 60 * 60 * 24L);
|
long count = liJinExpendRecordMapper.countOnGoingLijin(minCreateTime, maxCreateTime);
|
int page = (int) (count % 100 == 0 ? count / 100 : count / 100 + 1);
|
for (int i = 0; i < page; i++) {
|
List<LiJinExpendRecord> recordList = liJinExpendRecordMapper.listOnGoingLijin(minCreateTime, maxCreateTime, 100 * i, 100);
|
if (recordList != null) {
|
for (LiJinExpendRecord record : recordList) {
|
LiJinProviderTaoKeAccount account = liJinProviderAccountMapper.selectByPrimaryKey(record.getAccountId());
|
TaoLiJinReportDTO reportDTO = TaoKeApiUtil.taolijinReport(record.getRightsId(), new TaoKeAppInfo(account.getAppKey(), account.getAppSecret(), account.getPid()));
|
if (reportDTO != null) {
|
//有数据
|
if (reportDTO.getFp_refund_num() != null || reportDTO.getRefund_num() != null || reportDTO.getUnfreeze_num() != null || reportDTO.getUse_num() != null || reportDTO.getWin_num() != null) {
|
LiJinExpendRecord update = new LiJinExpendRecord(record.getId());
|
update.setRefundAmount(reportDTO.getRefund_amount());
|
update.setRefundNum(reportDTO.getRefund_num());
|
update.setUnfreezeAmount(reportDTO.getUnfreeze_amount());
|
update.setUnfreezeNum(reportDTO.getUnfreeze_num());
|
update.setUseAmount(reportDTO.getUse_amount());
|
update.setUseNum(reportDTO.getUse_num());
|
update.setWinAmount(reportDTO.getUse_amount());
|
update.setWinNum(reportDTO.getWin_num());
|
update.setUpdateTime(new Date());
|
update.setPreCommissionAmount(reportDTO.getPre_commission_amount());
|
liJinExpendRecordMapper.updateByPrimaryKeySelective(update);
|
}
|
//判断是否为当天创建
|
if (!TimeUtil.getGernalTime(now, "yyyyMMdd").equalsIgnoreCase(TimeUtil.getGernalTime(record.getCreateTime().getTime(), "yyyyMMdd"))) {
|
//不是当天创建的,而且没有使用
|
if (reportDTO.getUse_num() == null || reportDTO.getUse_num() == 0) {
|
UserLijinRecord record1 = lijinRecordService.getRecord(record.getUid(), UserLijinRecord.TYPE_ADD, UserLijinRecord.Category.createGoodsLijin.name(), record.getId() + "");
|
if (record1 != null) {
|
continue;
|
}
|
|
try {
|
lijinBalanceService.addLijin(record.getUid(), record.getMoney(), "未抵退回", UserLijinRecord.Category.createGoodsLijin.name(), record.getId() + "");
|
} catch (LijinBalanceException e) {
|
e.printStackTrace();
|
}
|
}
|
}
|
|
}
|
}
|
}
|
}
|
|
|
}
|
|
|
}
|