/// <summary> /// 批量保存图片(添加+删除) /// </summary> /// <param name="model"></param> /// <returns></returns> public int SaveCarPicture(AuctionPictureListModel model) { const string sqlSCarPic = "select innerid, carid, typeid, path, sort, createdtime from auction_car_picture where carid=@carid order by sort;";//查询车辆图片 const string sqlSMaxSort = "select ifnull(max(sort),0) as maxsort from auction_car_picture where carid=@carid;";//查询车辆所有图片的最大排序 const string sqlIPic = @"insert into auction_car_picture (innerid, carid, typeid, path, sort, createdtime) values (@innerid, @carid, @typeid, @path, @sort, @createdtime);"; const string sqlDPic = @"delete from auction_car_picture where innerid=@innerid;"; const string sqlUCover = @"update auction_carinfo set pic_url=(select path from auction_car_picture where carid=@carid order by sort limit 1) where innerid=@carid;"; using (var conn = Helper.GetConnection()) { //获取车辆图片 var picList = conn.Query<AuctionCarPictureModel>(sqlSCarPic, new { carid = model.Carid }).ToList(); var number = picList.Count + model.AddPaths.Count - model.DelIds.Count; if (number < 3 || number > 9) { //图片数量控制在>=3 and <=9 return 402; } var maxsort = conn.ExecuteScalar<int>(sqlSMaxSort, new { carid = model.Carid }); var tran = conn.BeginTransaction(); try { foreach (var path in model.AddPaths) { conn.Execute(sqlIPic, new AuctionCarPictureModel { Carid = model.Carid, Createdtime = DateTime.Now, Path = path, Innerid = Guid.NewGuid().ToString(), Sort = ++maxsort }, tran); //插入图片 } //标示是否修改封面 var isUCover = false; //获取封面图片 var coverid = picList.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; } } }