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.ZX;
using YiSha.Model.Param.ZX;
using YiSha.IService.ZX;
using YiSha.Model.Result.ZX;
using YiSha.Web.Code;
namespace YiSha.Service.ZX
{
///
/// 创 建:cmzx
/// 日 期:2021-04-15 09:36
/// 描 述:资讯专家标签服务实现类(部分类)
///
public partial class LabelModelsService
{
private IRepositoryFactory _baseRepository;
public LabelModelsService(IRepositoryFactory baseRepository)
{
_baseRepository = baseRepository;
}
///
/// 获取分页数据
///
/// 请求参数
/// 分页条件
///
public async Task> GetPageListPartial(LabelModelsListParam param, Pagination pagination)
{
var parameters = new List();
var sql = SqlPageList(param, pagination, out parameters);
var list = await _baseRepository.BaseRepository(dbConnectType).FindList(sql, parameters.ToArray());
return list.ToList();
}
///
/// 保存数据(由于之前数据库设计不规范,无法实现在新增、修改时保存正确的操作用户信息,每张表的创建时间和创建人id、创建人姓名都不一样,且这些字段是必填项)
///
/// 实体参数
///
public async Task SaveFormPartial(LabelModelsEntity entity)
{
OperatorInfo user = await Operator.Instance.Current(entity.Token);
if (entity.Id.IsNullOrZero())
{
entity.createTime = DateTime.Now;
entity.createUserId = user?.UserId;
entity.createUserName = user?.UserName;
return await _baseRepository.BaseRepository(dbConnectType).Insert(entity);
}
else
{
return await _baseRepository.BaseRepository(dbConnectType).Update(entity);
}
}
#region 私有方法
///
/// 列表条件过滤
/// 建议该方法放在Partial部分类中,因为代码生成时当前类会被覆盖(该方法在生成时将会被注释)
///
///
///
private Expression> ListFilterPartial(LabelModelsListParam param)
{
var expression = LinqExtensions.True();
if (param != null)
{
if (!string.IsNullOrEmpty(param.LabelName))
expression = expression.And(t => t.labelName.Equals(param.LabelName));
if (!param.MenuId.IsNullOrZero())
expression = expression.And(t => t.menuId == param.MenuId);
}
return expression;
}
///
/// 获取分页Sql语句
///
///
///
private string SqlPageList(LabelModelsListParam param, Pagination pagination, out List parameters)
{
parameters = new List();
var where = new StringBuilder();
where.Append(" 1 = 1 ");
if (param != null)
{
if (!string.IsNullOrEmpty(param.LabelName))
{
where.Append(" and lm.LabelName like @LabelName ");
parameters.Add(DbParameterExtension.CreateDbParameter("@LabelName", $"%{param.LabelName}%", dbConnectType));
}
if (!string.IsNullOrEmpty(param.MenuName))
{
where.Append(" and mmm.menuName like @MenuName ");
parameters.Add(DbParameterExtension.CreateDbParameter("@MenuName", $"%{param.MenuName}%", dbConnectType));
}
}
//获取分页数据Sql
var pageSql = $@"select lm.*,mmm.menuName
from LabelModels lm
left join menuManagerModels mmm on lm.menuId = mmm.id
where {where.ToString()}";
//统计总数据Sql
var totalSql = $@"select count(1)
from LabelModels lm
left join menuManagerModels mmm on lm.menuId = mmm.id
where {where.ToString()}";
pageSql = SqlserverHelper.GetInstance.SqlPageList(pageSql, totalSql, pagination);
return pageSql;
}
#endregion
}
}