增加用户金额数据统计

This commit is contained in:
chfei committed 2026-09-20 18:14:20 +08:00
1 parent 51cd5f9388
commit 694d2cfdb2
3 files changed
+70 -7

No files matched your search

@@ -104,10 +104,21 @@ namespace KJD_Web.Controllers
}
/// <summary>
/// 用户结算流水
/// 获取用户消费统计
/// </summary>
private void UserSettleFlows(string userName, string oemId)
/// <param name="request"></param>
/// <returns></returns>
public IHttpActionResult GetUserAmountSummary(SignRequestBase request)
{
try
{
var data = _userService.GetUserAmountSummary(request.UserName);
return Ok(ApiResult.Success(data));
}
catch (Exception ex)
{
return Ok(ApiResult.Fail(ex.Message));
}
}
}
@@ -8,6 +8,7 @@ using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Web;
using static FreeSql.Internal.GlobalFilter;
namespace KJD_Web.Services.Users
{
@@ -128,12 +129,12 @@ namespace KJD_Web.Services.Users
decimal rebate_amount = 0m; // 正数部分(累计返利)
DateTime now = DateTime.Now;
List<int> UserPaymentTypeFiltert = [20, 23, 26, 16, 31, 34];
List<int> UserPaymentTypeFiltert = [16, 20, 23, 26, 31, 34];
var paymentQuery = tr_freeSql.Select<UserPaymentRecordEntity>()
.Where(a => userNames.Contains(a.UserName))
.Where(a => UserPaymentTypeFiltert.Contains(a.Type))
.Where(a => a.Settlement == 0)
.Where(a => a.IsDeleted == 0);
.Where(a => userNames.Contains(a.UserName))
.Where(a => UserPaymentTypeFiltert.Contains(a.Type))
.Where(a => a.Settlement == 0)
.Where(a => a.IsDeleted == 0);
//只有OEM结算才限制OEM创建时间。
if (oemAddTime.HasValue)
{
@@ -240,5 +241,47 @@ namespace KJD_Web.Services.Users
return total_fen;
}
/// <summary>
/// 获取用户金额统计
/// </summary>
/// <param name="userName"></param>
public UserAmountSummary GetUserAmountSummary(string userName)
{
UserAmountSummary summary = new UserAmountSummary();
var user = GetUserByUserName(userName);
if (user == null) throw new Exception("错误的用户");
summary.RechargeTotal = (long)Math.Round((user.RechargeAmountTotal ?? 0) * 100m);
summary.Balance = (long)Math.Round((user.Balance ?? 0) * 100m);
List<int> types = new List<int> { 16, 20, 23, 24, 26, 31 };
var data = _freeSql.Select<UserPaymentRecordEntity>()
.Where(a => types.Contains(a.Type))
.Where(a => a.UserName == userName)
.ToList();
decimal sum = data.Sum(r => r.Type == 23 ? -(r.Amount ?? 0) : r.Amount ?? 0);
summary.ConsumeTotal = (long)Math.Round(sum * 100m);
return summary;
}
}
public class UserAmountSummary
{
/// <summary>
/// 充值总额
/// </summary>
public long RechargeTotal { get; set; }
/// <summary>
/// 消费总额
/// </summary>
public long ConsumeTotal { get; set; }
/// <summary>
/// 剩余余额
/// </summary>
public long Balance { get; set; }
}
}
+9
View File
@@ -2,6 +2,7 @@
using Autofac.Integration.WebApi;
using KJD_Web;
using KJD_Web.Services.Users;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Diagnostics;
@@ -68,4 +69,12 @@ internal class UserTest
Console.WriteLine(count);
}
[Test]
public void GetUserAmountSummate()
{
var userService = _container.Resolve<UserService>();
var data = userService.GetUserAmountSummary("15395107196");
Console.WriteLine(JsonConvert.SerializeObject(data));
}
}