增加用户金额数据统计

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>
/// 用户结算流水 /// 获取用户消费统计
/// </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.Linq;
using System.Text; using System.Text;
using System.Web; using System.Web;
using static FreeSql.Internal.GlobalFilter;
namespace KJD_Web.Services.Users namespace KJD_Web.Services.Users
{ {
@@ -128,12 +129,12 @@ namespace KJD_Web.Services.Users
decimal rebate_amount = 0m; // 正数部分(累计返利) decimal rebate_amount = 0m; // 正数部分(累计返利)
DateTime now = DateTime.Now; 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>() var paymentQuery = tr_freeSql.Select<UserPaymentRecordEntity>()
.Where(a => userNames.Contains(a.UserName)) .Where(a => userNames.Contains(a.UserName))
.Where(a => UserPaymentTypeFiltert.Contains(a.Type)) .Where(a => UserPaymentTypeFiltert.Contains(a.Type))
.Where(a => a.Settlement == 0) .Where(a => a.Settlement == 0)
.Where(a => a.IsDeleted == 0); .Where(a => a.IsDeleted == 0);
//只有OEM结算才限制OEM创建时间。 //只有OEM结算才限制OEM创建时间。
if (oemAddTime.HasValue) if (oemAddTime.HasValue)
{ {
@@ -240,5 +241,47 @@ namespace KJD_Web.Services.Users
return total_fen; 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 Autofac.Integration.WebApi;
using KJD_Web; using KJD_Web;
using KJD_Web.Services.Users; using KJD_Web.Services.Users;
using Newtonsoft.Json;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
@@ -68,4 +69,12 @@ internal class UserTest
Console.WriteLine(count); Console.WriteLine(count);
} }
[Test]
public void GetUserAmountSummate()
{
var userService = _container.Resolve<UserService>();
var data = userService.GetUserAmountSummary("15395107196");
Console.WriteLine(JsonConvert.SerializeObject(data));
}
} }