yz_server/Server/Controllers/FinancialManagement/IntegralRecordController.cs

131 lines
4.3 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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);
}
}
}