131 lines
4.3 KiB
C#
131 lines
4.3 KiB
C#
|
using Common.Models.Enums;
|
|||
|
using Common.Models.SubTables;
|
|||
|
using Common.Models.UnqTables;
|
|||
|
using Server.MyClass.Views;
|
|||
|
using SqlSugar;
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
using System.Threading.Tasks;
|
|||
|
using System.Web.Http;
|
|||
|
|
|||
|
namespace Server.Controllers.FinancialManagement
|
|||
|
{
|
|||
|
|
|||
|
public class IntegralRecordController : DefaultController
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// 获取机器人信息
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
[HttpPost, ErrorFilter]
|
|||
|
public WebResult GetRobotInfo()
|
|||
|
{
|
|||
|
var PageIndex = GetInt("PageIndex");
|
|||
|
var PageSize = GetInt("PageSize");
|
|||
|
var tNumber = 0;
|
|||
|
|
|||
|
var Keyword = GetString("Keyword");
|
|||
|
|
|||
|
var exp = Expressionable.Create<Robot>();
|
|||
|
|
|||
|
if (!string.IsNullOrEmpty(Keyword))
|
|||
|
{
|
|||
|
exp.And(f => f.Nickname.Contains(Keyword));
|
|||
|
}
|
|||
|
var DataList = Db.Queryable<Robot>().Where(exp.ToExpression())
|
|||
|
.Select(m => new RobotInfo { RobotId = m.Id, RobotName = m.Nickname })
|
|||
|
.ToPageList(PageIndex, PageSize, ref tNumber);
|
|||
|
|
|||
|
var res = new PageResult<RobotInfo>(DataList, tNumber, PageSize, PageIndex);
|
|||
|
return PutData(res);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 查询积分记录
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
[HttpPost, ErrorFilter]
|
|||
|
public WebResult GetIntegralRecord()
|
|||
|
{
|
|||
|
var PageIndex = GetInt("PageIndex");
|
|||
|
var PageSize = GetInt("PageSize");
|
|||
|
if (PageSize > 100) PageSize = 100;
|
|||
|
|
|||
|
var tNumber = 0;
|
|||
|
|
|||
|
var MinTime = GetTime("MinTime");
|
|||
|
var MaxTime = GetTime("MaxTime");
|
|||
|
|
|||
|
if (MinTime == DateTime.MinValue)
|
|||
|
MinTime = DateTime.Now.AddMonths(-6);
|
|||
|
if (MaxTime == DateTime.MinValue)
|
|||
|
MaxTime = DateTime.Now;
|
|||
|
|
|||
|
var exp = Expressionable.Create<PointHist>();
|
|||
|
|
|||
|
exp.And(f => f.CreateTime > MinTime && f.CreateTime < MaxTime);
|
|||
|
|
|||
|
var RobotId = GetInt("RobotId");
|
|||
|
if (RobotId != 0)
|
|||
|
exp.And(f => f.RobotId == RobotId);
|
|||
|
|
|||
|
var IntegralType = GetEnum<PointType>("IntegralType");
|
|||
|
if (IntegralType != PointType.未知)
|
|||
|
exp.And(f => f.PointType == IntegralType);
|
|||
|
|
|||
|
var Keyword = GetString("Keyword");
|
|||
|
|
|||
|
if (!string.IsNullOrEmpty(Keyword))
|
|||
|
{
|
|||
|
var KeywordType = GetInt("KeywordType");//搜索类型 1:微信账号 2:微信昵称
|
|||
|
|
|||
|
switch (KeywordType)
|
|||
|
{
|
|||
|
case 1://微信账号搜索
|
|||
|
var user = Db.Queryable<User>().Where(u => u.Username == Keyword).First();
|
|||
|
|
|||
|
if (user == null)
|
|||
|
return PutData(new PageResult<PointHist>(new List<PointHist>(), tNumber, PageSize, PageIndex));
|
|||
|
|
|||
|
exp.And(f => user.Id == f.Id);
|
|||
|
break;
|
|||
|
|
|||
|
case 2://微信昵称搜索
|
|||
|
var Ids = Db.Queryable<User>().Where(u => u.NickName.Contains(Keyword)).Select(u => u.Id).Take(20).ToList();
|
|||
|
|
|||
|
exp.And(f => Ids.Contains(f.UserId));
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
var DataList = Db.Queryable<PointHist>()
|
|||
|
.Where(exp.ToExpression())
|
|||
|
.SplitTable(MinTime, MaxTime)
|
|||
|
.LeftJoin<Robot>((f, b) => f.RobotId == b.Id)
|
|||
|
.LeftJoin<User>((f, b, u) => f.UserId == u.Id)
|
|||
|
.Select((f, b, u) => new IntegralShow
|
|||
|
{
|
|||
|
Id = f.Id,
|
|||
|
UserId = f.UserId,
|
|||
|
NickName = u.NickName,
|
|||
|
RobotName = b.Username,
|
|||
|
BeforeModify = f.BeforeModify,
|
|||
|
AfterModify = f.AfterModify,
|
|||
|
ChangeAmount = f.ChangeAmount,
|
|||
|
PointType = f.PointType,
|
|||
|
CreateTime = f.CreateTime,
|
|||
|
Remark = f.Remark
|
|||
|
})
|
|||
|
|
|||
|
.ToPageList(PageIndex, PageSize, ref tNumber);
|
|||
|
|
|||
|
var res = new PageResult<IntegralShow>(DataList, tNumber, PageSize, PageIndex);
|
|||
|
|
|||
|
return PutData(res);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|