增加用户金额数据统计
This commit is contained in:
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; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user