yz_server/Server/Controllers/FinancialManagement/IntegralRecordController.cs

131 lines
4.3 KiB
C#
Raw Normal View History

2022-04-16 07:48:12 +00:00
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);
}
}
}