172 lines
5.5 KiB
C#
172 lines
5.5 KiB
C#
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Data.Entity;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using WX.CRM.Common;
|
|
using WX.CRM.IBLL.Res;
|
|
using WX.CRM.Model.Entity;
|
|
|
|
namespace WX.CRM.BLL.Res
|
|
{
|
|
public class RES_RESETRULELOG_BL : DbContextRepository<RES_RESETRULELOG>, IRES_RESETRULELOG
|
|
{
|
|
public ResReSetRuleLogView GetReSetTime()
|
|
{
|
|
var model = new ResReSetRuleLogView();
|
|
using (var db = new crmContext())
|
|
{
|
|
var info = db.RES_RESETRULELOG.Where(p => p.ISEXE == 0).OrderByDescending(p => p.RESETTIME).FirstOrDefault();
|
|
if (info != null)
|
|
{
|
|
model.ID = info.ID;
|
|
model.RESETTIME = info.RESETTIME;
|
|
model.RESETSHORTDAY = info.RESETTIME.ToString("yyyy-MM-dd");
|
|
model.RESETSHORTTIME = info.RESETTIME.ToShortTimeString();
|
|
}
|
|
}
|
|
return model;
|
|
}
|
|
|
|
public DateTime? GetExeTime()
|
|
{
|
|
using (var db = new crmContext())
|
|
{
|
|
var q = db.RES_RESETRULELOG.Where(p => p.ISEXE == 1).OrderByDescending(p => p.EXETIME).FirstOrDefault();
|
|
if (q != null)
|
|
return q.EXETIME;
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public bool Save(ResReSetRuleLogDto dto)
|
|
{
|
|
if (dto.ID.HasValue)
|
|
{
|
|
var model = Get(p => p.ID == dto.ID.Value);
|
|
if (model != null)
|
|
{
|
|
model.RESETTIME = DateTime.Parse(dto.RESETDAY + " " + dto.RESETTIME + ":00");
|
|
if (model.RESETTIME <= DateTime.Now)
|
|
{
|
|
model.RESETTIME = model.RESETTIME.AddDays(1);
|
|
}
|
|
model.ISEXE = 0;
|
|
return Update(model);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var model = new RES_RESETRULELOG()
|
|
{
|
|
ID = new Base.SEQUENCES_BL().Seq_base_get(),
|
|
RESETTIME = DateTime.Parse(dto.RESETDAY + " " + dto.RESETTIME + ":00"),
|
|
ISEXE = 0
|
|
};
|
|
if (model.RESETTIME <= DateTime.Now)
|
|
{
|
|
model.RESETTIME = model.RESETTIME.AddDays(1);
|
|
}
|
|
return Add(model) > 0;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public bool Exec(decimal id)
|
|
{
|
|
using (var db = new crmContext())
|
|
{
|
|
//using (var trans = db.Database.BeginTransaction())
|
|
//{
|
|
try
|
|
{
|
|
var info = db.RES_RESETRULELOG.FirstOrDefault(p => p.ID == id);
|
|
if (info != null)
|
|
{
|
|
info.ISEXE = 1;
|
|
info.EXETIME = DateTime.Now;
|
|
|
|
var entry = db.Entry(info);
|
|
db.Set<RES_RESETRULELOG>().Attach(info);
|
|
entry.State = EntityState.Modified;
|
|
}
|
|
|
|
var model = new RES_RESETRULELOG()
|
|
{
|
|
ID = new Base.SEQUENCES_BL().Seq_base_get(),
|
|
RESETTIME = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " " + (string.IsNullOrEmpty(info.RESETTIME.ToShortTimeString()) ? "00:00:00" : info.RESETTIME.ToShortTimeString())).AddDays(1),
|
|
ISEXE = 0
|
|
};
|
|
|
|
db.RES_RESETRULELOG.Add(model);
|
|
|
|
db.SaveChanges();
|
|
|
|
//trans.Commit();
|
|
|
|
return true;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex);
|
|
//trans.Rollback();
|
|
return false;
|
|
}
|
|
//}
|
|
}
|
|
}
|
|
|
|
public bool Exec(int? sid)
|
|
{
|
|
try
|
|
{
|
|
var url = Common.Utility.GetSettingOrNullByKey("ReSetRuleUrl");
|
|
var channel = Utility.GetSettingOrNullByKey("Channel");
|
|
|
|
if (string.IsNullOrEmpty(url))
|
|
{
|
|
LogHelper.Info("ReSetRuleUrl未配置");
|
|
return false;
|
|
}
|
|
|
|
if (string.IsNullOrEmpty(channel))
|
|
{
|
|
LogHelper.Info("Channel未配置");
|
|
return false;
|
|
}
|
|
|
|
var ssid = 0;
|
|
if (sid.HasValue)
|
|
{
|
|
ssid = sid.Value;
|
|
}
|
|
|
|
var reqUrl = url + "?ch=" + channel + "&sid=" + ssid.ToString();
|
|
|
|
var rsp = Utility.PostData(reqUrl, Encoding.UTF8);
|
|
|
|
var rspObj = JsonConvert.DeserializeAnonymousType(rsp, new { result = false, retcode = 0, retmsg = string.Empty });
|
|
//LogHelper.Info("rsp:" + rspObj.ToJson());
|
|
if (rspObj.result)
|
|
{
|
|
var model = new RES_RESETRULELOG()
|
|
{
|
|
ID = new Base.SEQUENCES_BL().Seq_base_get(),
|
|
RESETTIME = DateTime.Now,
|
|
ISEXE = 1
|
|
};
|
|
Add(model);
|
|
}
|
|
|
|
return rspObj.result;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex);
|
|
return false;
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|