You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

43 lines
2.0 KiB

using SiNan.Common.Log;
using SiNan.Common.Models;
using SiNan.Model.Db;
using Yitter.IdGenerator;
namespace SiNan.Business
{
public class AutoTaskBusiness : BaseBusiness, IDenpendency
{
public AutoTaskBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator) : base(fsql, nLogManager, idGenerator)
{
}
public void ClearHistoryData()
{
var timeOutDate = DateTime.Now.Date.AddDays(-40);
var campaignList = fsql.Select<JDPopularizeCampaign>().Where(c => c.Date <= timeOutDate).ToList<HistoryJDPopularizeCampaign>();
var adGroupList = fsql.Select<JDPopularizeAdGroup>().Where(adg => adg.Date <= timeOutDate).ToList<HistoryJDPopularizeAdGroup>();
var adSkuList = fsql.Select<JDPopularizeAdSku>().Where(ads => ads.Date <= timeOutDate).ToList<HistoryJDPopularizeAdSku>();
var orderPopRelationList = fsql.Select<JDOrderPopularizeRelation>().Where(x => x.CreateTime <= timeOutDate).ToList<HistoryJDOrderPopularizeRelation>();
var deleteCampaignIdList = campaignList.Select(x => x.Id).ToList();
var deleteAdGroupIdList = adGroupList.Select(x => x.Id).ToList();
var deleteAdSkuIdList = adSkuList.Select(x => x.Id).ToList();
var deleteOrderPopRelationIdList = orderPopRelationList.Select(x => x.Id).ToList();
fsql.Transaction(() =>
{
fsql.Insert(campaignList).ExecuteAffrows();
fsql.Insert(adGroupList).ExecuteAffrows();
fsql.Insert(adSkuList).ExecuteAffrows();
fsql.Insert(orderPopRelationList).ExecuteAffrows();
fsql.Delete<JDPopularizeCampaign>(deleteCampaignIdList).ExecuteAffrows();
fsql.Delete<JDPopularizeAdGroup>(deleteAdGroupIdList).ExecuteAffrows();
fsql.Delete<JDPopularizeAdSku>(deleteAdSkuIdList).ExecuteAffrows();
fsql.Delete<JDOrderPopularizeRelation>(deleteOrderPopRelationIdList).ExecuteAffrows();
});
}
}
}