/***********************************************************************
* Project: baifenBinfa
* ProjectName: 百分兵法管理系统
* Web: http://chuanyin.com
* Author:
* Email:
* CreateTime: 2021/7/15 14:44:18
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Model.Entities;
using CoreCms.Net.Model.Entities.Expression;
using CoreCms.Net.Model.FromBody;
using CoreCms.Net.Model.ViewModels.UI;
using CoreCms.Net.Filter;
using CoreCms.Net.Loging;
using CoreCms.Net.IServices;
using CoreCms.Net.Utility.Helper;
using CoreCms.Net.Utility.Extensions;
using CoreCms.Net.Web.Admin.Infrastructure;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
using static CoreCms.Net.Configuration.GlobalEnumVars;
namespace CoreCms.Net.Web.Admin.Controllers
{
///
/// 微信用户列表
///
[Description("微信用户列表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsUserWeChatInfoController : ControllerBase
{
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly ICoreCmsUserWeChatInfoServices _coreCmsUserWeChatInfoServices;
///
/// 构造函数
///
public CoreCmsUserWeChatInfoController(IWebHostEnvironment webHostEnvironment
, ICoreCmsUserWeChatInfoServices coreCmsUserWeChatInfoServices
)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsUserWeChatInfoServices = coreCmsUserWeChatInfoServices;
}
#region 获取列表============================================================
// POST: Api/CoreCmsUserWeChatInfo/GetPageList
///
/// 获取列表
///
///
[HttpPost]
[Description("获取列表")]
public async Task GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression> orderEx = orderField switch
{
"id" => p => p.id,
"type" => p => p.type,
"userId" => p => p.userId,
"openid" => p => p.openid,
"sessionKey" => p => p.sessionKey,
"unionId" => p => p.unionId,
"avatar" => p => p.avatar,
"nickName" => p => p.nickName,
"gender" => p => p.gender,
"language" => p => p.language,
"city" => p => p.city,
"province" => p => p.province,
"country" => p => p.country,
"countryCode" => p => p.countryCode,
"mobile" => p => p.mobile,
"createTime" => p => p.createTime,
"updateTime" => p => p.updateTime,
_ => p => p.id
};
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//用户ID int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0)
{
where = where.And(p => p.id == id);
}
//第三方登录类型 int
var type = Request.Form["type"].FirstOrDefault().ObjectToInt(0);
if (type > 0)
{
where = where.And(p => p.type == type);
}
//关联用户表 int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0)
{
where = where.And(p => p.userId == userId);
}
//openId nvarchar
var openid = Request.Form["openid"].FirstOrDefault();
if (!string.IsNullOrEmpty(openid))
{
where = where.And(p => p.openid.Contains(openid));
}
//缓存key nvarchar
var sessionKey = Request.Form["sessionKey"].FirstOrDefault();
if (!string.IsNullOrEmpty(sessionKey))
{
where = where.And(p => p.sessionKey.Contains(sessionKey));
}
//unionid nvarchar
var unionId = Request.Form["unionId"].FirstOrDefault();
if (!string.IsNullOrEmpty(unionId))
{
where = where.And(p => p.unionId.Contains(unionId));
}
//头像 nvarchar
var avatar = Request.Form["avatar"].FirstOrDefault();
if (!string.IsNullOrEmpty(avatar))
{
where = where.And(p => p.avatar.Contains(avatar));
}
//昵称 nvarchar
var nickName = Request.Form["nickName"].FirstOrDefault();
if (!string.IsNullOrEmpty(nickName))
{
where = where.And(p => p.nickName.Contains(nickName));
}
//性别 int
var gender = Request.Form["gender"].FirstOrDefault().ObjectToInt(0);
if (gender > 0)
{
where = where.And(p => p.gender == gender);
}
//语言 nvarchar
var language = Request.Form["language"].FirstOrDefault();
if (!string.IsNullOrEmpty(language))
{
where = where.And(p => p.language.Contains(language));
}
//城市 nvarchar
var city = Request.Form["city"].FirstOrDefault();
if (!string.IsNullOrEmpty(city))
{
where = where.And(p => p.city.Contains(city));
}
//省 nvarchar
var province = Request.Form["province"].FirstOrDefault();
if (!string.IsNullOrEmpty(province))
{
where = where.And(p => p.province.Contains(province));
}
//国家 nvarchar
var country = Request.Form["country"].FirstOrDefault();
if (!string.IsNullOrEmpty(country))
{
where = where.And(p => p.country.Contains(country));
}
//手机号码国家编码 nvarchar
var countryCode = Request.Form["countryCode"].FirstOrDefault();
if (!string.IsNullOrEmpty(countryCode))
{
where = where.And(p => p.countryCode.Contains(countryCode));
}
//手机号码 nvarchar
var mobile = Request.Form["mobile"].FirstOrDefault();
if (!string.IsNullOrEmpty(mobile))
{
where = where.And(p => p.mobile.Contains(mobile));
}
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//获取数据
var list = await _coreCmsUserWeChatInfoServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize, true);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region 首页数据============================================================
// POST: Api/CoreCmsUserWeChatInfo/GetIndex
///
/// 首页数据
///
///
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var userAccountTypes = EnumHelper.EnumToList();
jm.data = new
{
userAccountTypes
};
return jm;
}
#endregion
#region 预览数据============================================================
// POST: Api/CoreCmsUserWeChatInfo/GetDetails/10
///
/// 预览数据
///
///
///
[HttpPost]
[Description("预览数据")]
public async Task GetDetails([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsUserWeChatInfoServices.QueryByIdAsync(entity.id, false);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
}
}