diff --git a/KJD_WebService/Controllers/WX/WXUser_N_Controller.cs b/KJD_WebService/Controllers/WX/WXUser_N_Controller.cs
index 0b86116..bb5d64d 100644
--- a/KJD_WebService/Controllers/WX/WXUser_N_Controller.cs
+++ b/KJD_WebService/Controllers/WX/WXUser_N_Controller.cs
@@ -104,10 +104,21 @@ namespace KJD_Web.Controllers
}
///
- /// 用户结算流水
+ /// 获取用户消费统计
///
- private void UserSettleFlows(string userName, string oemId)
+ ///
+ ///
+ 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));
+ }
}
}
diff --git a/KJD_WebService/Services/Users/UserService.FeeRecord.cs b/KJD_WebService/Services/Users/UserService.FeeRecord.cs
index b9bf3fe..e4a374b 100644
--- a/KJD_WebService/Services/Users/UserService.FeeRecord.cs
+++ b/KJD_WebService/Services/Users/UserService.FeeRecord.cs
@@ -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 UserPaymentTypeFiltert = [20, 23, 26, 16, 31, 34];
+ List UserPaymentTypeFiltert = [16, 20, 23, 26, 31, 34];
var paymentQuery = tr_freeSql.Select()
- .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;
}
+
+
+
+ ///
+ /// 获取用户金额统计
+ ///
+ ///
+
+ 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 types = new List { 16, 20, 23, 24, 26, 31 };
+
+
+ var data = _freeSql.Select()
+ .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
+ {
+ ///
+ /// 充值总额
+ ///
+ public long RechargeTotal { get; set; }
+ ///
+ /// 消费总额
+ ///
+ public long ConsumeTotal { get; set; }
+ ///
+ /// 剩余余额
+ ///
+ public long Balance { get; set; }
}
}
\ No newline at end of file
diff --git a/test/WebServiceTest/UserTest.cs b/test/WebServiceTest/UserTest.cs
index cb7c1bd..94aaa4f 100644
--- a/test/WebServiceTest/UserTest.cs
+++ b/test/WebServiceTest/UserTest.cs
@@ -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();
+ var data = userService.GetUserAmountSummary("15395107196");
+ Console.WriteLine(JsonConvert.SerializeObject(data));
+ }
}