using System;
using System.Linq;
using System.Text;
using System.Data.Common;
using System.Linq.Expressions;
using System.Collections.Generic;
using System.Threading.Tasks;
using YiSha.Util;
using YiSha.Util.Extension;
using YiSha.Util.Model;
using YiSha.Data;
using YiSha.Data.Repository;
using YiSha.Enum;
using System.ComponentModel.DataAnnotations.Schema;
using YiSha.Entity.TK;
using YiSha.Model.Param.TK;
using YiSha.IService.TK;
using YiSha.Enum.ZX;
using YiSha.Web.Code;
namespace YiSha.Service.TK
{
///
/// 创 建:cmzx
/// 日 期:2021-04-21 15:53
/// 描 述:图库板块权限管理服务实现类(部分类)
///
public partial class PlateJurisdictionModelsService
{
private IRepositoryFactory _baseRepository;
public PlateJurisdictionModelsService(IRepositoryFactory baseRepository)
{
_baseRepository = baseRepository;
}
///
/// 保存数据
///
/// 实体参数
///
public async Task SaveFormPartial(SavePlateJurisdictionModelsParam entity)
{
var result = 1;
var insertList = new List();
OperatorInfo user = await Operator.Instance.Current(entity.Token);
entity.GalleryIdList.ForEach(item =>
{
insertList.Add(new PlateJurisdictionModelsEntity
{
createTime = DateTime.Now,
createUserId = user?.UserId,
createUserName = user?.UserName,
galleryId = item,
isDelete = false,
sortNo = 1,
UserId = entity.UserId,
UserName = entity.UserName
});
});
var deleteList = await _baseRepository.BaseRepository(dbConnectType).FindList(d => d.UserId == entity.UserId && d.isDelete == false);
//开启事务
var db = await _baseRepository.BaseRepository(dbConnectType).BeginTrans();
try
{
await db.Delete(deleteList.ToList());
await db.Insert(insertList);
await db.CommitTrans();
}
catch
{
result = -1;
await db.RollbackTrans();
}
return result;
}
///
/// 获取当前用户图库板块权限
///
///
public async Task> GetUserPlateJurisdictionAuthority()
{
OperatorInfo user = await Operator.Instance.Current(null);
var sql = @"select
gmm.ID as Id,
gmm.galleryName
from PlateJurisdictionModels pjm
inner join galleryManagerModels gmm on pjm.galleryId = gmm.id
where pjm.UserId = @UserId";
var param = new List();
param.Add(DbParameterExtension.CreateDbParameter("@UserId", user?.UserId, dbConnectType));
var result = await _baseRepository.BaseRepository(dbConnectType).FindList(sql, param.ToArray());
return result.ToList();
}
#region 私有方法
///
/// 列表条件过滤
/// 建议该方法放在Partial部分类中,因为代码生成时当前类会被覆盖(该方法在生成时将会被注释)
///
///
///
private Expression> ListFilterPartial(PlateJurisdictionModelsListParam param)
{
var expression = LinqExtensions.True();
expression = expression.And(d => d.isDelete == false);
if (param != null)
{
if (param.UserId != null)
expression = expression.And(d => d.UserId == param.UserId);
}
return expression;
}
#endregion
}
}