public int AddAndDelPicture(BatchPictureListModel model)
{
const string sqlSCarPic = "select innerid, carid, typeid, path, sort, createdtime from car_picture where carid=@carid order by sort;";//查询车辆图片
const string sqlSMaxSort = "select ifnull(max(sort),0) as maxsort from car_picture where carid=@carid;";//查询车辆所有图片的最大排序
const string sqlIPic = @"insert into car_picture (innerid, carid, typeid, path, sort, createdtime) values (@innerid, @carid, @typeid, @path, @sort, @createdtime);";
const string sqlDPic = @"delete from car_picture where innerid=@innerid;";
const string sqlUCover = @"update car_info set pic_url=(select path from car_picture where carid=@carid order by sort limit 1) where innerid=@carid;";
using (var conn = Helper.GetConnection())
{
//获取车辆图片
var picedList = conn.Query<CarPictureModel>(sqlSCarPic, new { carid = model.Carid }).ToList();
var number = picedList.Count + model.AddPaths.Count - model.DelIds.Count;
if (number < 3 || number > 9)
{
//图片数量控制在>=3 and <=9
return 402;
}
var maxsort = 0;
var carPictureModel = picedList.LastOrDefault();
if (carPictureModel != null)
{
maxsort = carPictureModel.Sort;
}
var tran = conn.BeginTransaction();
try
{
foreach (var path in model.AddPaths)
{
conn.Execute(sqlIPic, new CarPictureModel
{
Carid = model.Carid,
Createdtime = DateTime.Now,
Path = path,
Innerid = Guid.NewGuid().ToString(),
Sort = ++maxsort
}, tran); //插入图片
}
//标示是否修改封面
var isUCover = false;
//获取封面图片
var coverid = picedList.First().Innerid;
foreach (var id in model.DelIds)
{
if (id.Equals(coverid))
{
isUCover = true;
}
conn.Execute(sqlDPic, new { innerid = id }, tran);
}
if (isUCover)
{
conn.Execute(sqlUCover, new { carid = model.Carid }, tran);
}
tran.Commit();
return 1;
}
catch (Exception ex)
{
tran.Rollback();
LoggerFactories.CreateLogger().Write("批量保存图片异常:" + ex.Message, TraceEventType.Warning);
return 0;
}
}
}