Commit a90a895a authored by 吴春's avatar 吴春

积分以余额收支

parent 9869329d
using Mall.Common.Plugin;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Common.Enum.MarketingCenter
{
public enum PlatformTypeEnum
{
/// <summary>
/// 微信
/// </summary>
[EnumField("微信")]
WeChat = 1,
/// <summary>
/// 支付宝
/// </summary>
[EnumField("支付宝")]
Alipay = 2,
/// <summary>
/// 抖音/头条
/// </summary>
[EnumField("抖音/头条")]
TrillOrHeadline = 3,
/// <summary>
/// 百度
/// </summary>
[EnumField("百度")]
Baidu = 2,
}
}
using Mall.Common.AOP;
using Mall.Common.Enum.MarketingCenter;
using Mall.Common.Enum.User;
using System;
using System.Collections.Generic;
......@@ -29,7 +30,7 @@ namespace Mall.Model.Entity.User
/// <summary>
/// 类型 1增加 2减少
/// </summary>
public int? Type
public RecordTypeEnum? Type
{
get;
set;
......@@ -82,5 +83,10 @@ namespace Mall.Model.Entity.User
get;
set;
}
/// <summary>
/// 备注
/// </summary>
public string Remarks { get; set; }
}
}
......@@ -35,6 +35,13 @@ namespace Mall.Model.Entity.User
get;
set;
}
/// <summary>
/// 平台类型
/// </summary>
public PlatformTypeEnum? PlatformType { get; set; }
/// <summary>
/// 积分
/// </summary>
......
......@@ -13,6 +13,19 @@ namespace Mall.Model.Extend.User
[DB(ConnectionName = "DefaultConnection")]
public class RB_Member_Balance_Extend : RB_Member_Balance
{
/// <summary>
/// 会员名称
/// </summary>
public string MemberName { get; set; }
/// <summary>
/// 开始时间【查询使用】
/// </summary>
public string StartDate { get; set; }
/// <summary>
/// 结束时间【查询使用】
/// </summary>
public string EndDate { get; set; }
}
}
using Mall.Common.AOP;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Query
{
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class Integral_Query
{
public int TenantId { get; set; }
public int MallBaseId { get; set; }
public int PlatformType { get; set; }
public string CreateDate { get; set; }
public string Income { get; set; }
public string Expend { get; set; }
/// <summary>
/// 开始时间【查询使用】
/// </summary>
public string StartDate { get; set; }
/// <summary>
/// 结束时间【查询使用】
/// </summary>
public string EndDate { get; set; }
}
}
using Mall.Model.Entity.MarketingCenter;
using Mall.Model.Extend.MarketingCenter;
using Mall.Model.Extend.User;
using Mall.Model.Query;
using Mall.Repository.MarketingCenter;
using Mall.Repository.User;
using System;
......@@ -62,7 +63,31 @@ namespace Mall.Module.MarketingCenter
return recordRepository.GetRechargeRecordPageList(pageIndex, pageSize, out rowCount, query);
}
/// <summary>
/// 数据统计-积分收支
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页显示条数</param>
/// <param name="rowCount">总条数</param>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<Integral_Query> GetIntegraStatisticslList(int pageIndex, int pageSize, out long rowCount, Integral_Query query)
{
return recordRepository.GetIntegraStatisticslList(pageIndex, pageSize, out rowCount, query);
}
/// <summary>
/// 获取列表
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Member_Integral_Extend> GetTotalIntegral(RB_Member_Integral_Extend dmodel)
{
return recordRepository.GetList(dmodel);
}
#endregion
}
}
using Mall.Common.Plugin;
using Mall.Model.Entity.MarketingCenter;
using Mall.Model.Extend.MarketingCenter;
using Mall.Model.Extend.User;
using Mall.Repository;
using Mall.Repository.MarketingCenter;
using Mall.Repository.User;
using System;
using System.Collections.Generic;
using System.Text;
......@@ -14,7 +16,7 @@ namespace Mall.Module.MarketingCenter
private RB_Recharge_RulesRepository rulesRepository = new RB_Recharge_RulesRepository();
private RB_Member_BalanceRepository balanceRepository = new RB_Member_BalanceRepository();
private RB_Recharge_SettingsRepository settingsRepository = new RB_Recharge_SettingsRepository();
#region 充值规则信息
/// <summary>
......@@ -125,5 +127,20 @@ namespace Mall.Module.MarketingCenter
}
}
#endregion
#region 余额收支
/// <summary>
/// 营销中心-余额收支
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页显示条数</param>
/// <param name="rowCount">总条数</param>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Member_Balance_Extend> GetMemberBalancePageList(int pageIndex, int pageSize, out long rowCount, RB_Member_Balance_Extend query)
{
return balanceRepository.GetMemberBalancePageList(pageIndex, pageSize, out rowCount, query);
}
#endregion
}
}
......@@ -501,7 +501,7 @@ namespace Mall.Module.User
{
var umodel = member_UserRepository.GetEntity(demodel.UserId);
decimal Balance;
if (demodel.Type == 1)
if ((int)demodel.Type == 1)
{
Balance = (umodel.Balance ?? 0) + (demodel.Balance ?? 0);
}
......
......@@ -12,7 +12,11 @@ namespace Mall.Repository.User
/// </summary>
public class RB_Member_BalanceRepository : RepositoryBase<RB_Member_Balance>
{
public string MemberTableName { get { return nameof(RB_Member_User); } }
/// <summary>
/// 表名称
/// </summary>
public string TableName { get { return nameof(RB_Member_Balance); } }
/// <summary>
/// 分页列表
/// </summary>
......@@ -76,5 +80,48 @@ namespace Mall.Repository.User
string sql = $@"select * from RB_Member_Balance where {where} order by Id desc";
return Get<RB_Member_Balance_Extend>(sql).ToList();
}
/// <summary>
/// 营销中心-余额收支
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页显示条数</param>
/// <param name="rowCount">总条数</param>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Member_Balance_Extend> GetMemberBalancePageList(int pageIndex, int pageSize, out long rowCount, RB_Member_Balance_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.Append($" SELECT a.*,b.`Name` as MemberName FROM {TableName} as a LEFT JOIN {MemberTableName} as b on a.UserId = b.Id WHERE 1=1 ");
if (query != null)
{
if (query.Id > 0)
{
builder.Append($" AND a.{nameof(RB_Member_Balance_Extend.Id)}={query.Id}");
}
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Member_Balance_Extend.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Member_Balance_Extend.MallBaseId)}={query.MallBaseId}");
}
if (!string.IsNullOrWhiteSpace(query.MemberName))
{
builder.Append($" AND b.{nameof(RB_Member_Balance_Extend.MemberName)} like '%{query.MemberName}%'");
}
if (!string.IsNullOrWhiteSpace(query.StartDate))
{
builder.Append($" AND DATE_FORMAT(a.{nameof(RB_Member_Balance_Extend.CreateDate)},'%Y-%m-%d' )>= DATE_FORMAT('{nameof(RB_Member_Balance_Extend.StartDate)}','%Y-%m-%d' )");
}
if (!string.IsNullOrWhiteSpace(query.EndDate))
{
builder.Append($" AND DATE_FORMAT(a.{nameof(RB_Member_Balance_Extend.CreateDate)},'%Y-%m-%d' )<= DATE_FORMAT('{nameof(RB_Member_Balance_Extend.EndDate)}','%Y-%m-%d' )");
}
}
return GetPage<RB_Member_Balance_Extend>(pageIndex, pageSize, out rowCount, builder.ToString()).ToList();
}
}
}
......@@ -4,6 +4,7 @@ using System.Text;
using Mall.Model.Entity.User;
using Mall.Model.Extend.User;
using System.Linq;
using Mall.Model.Query;
namespace Mall.Repository.User
{
......@@ -77,6 +78,10 @@ namespace Mall.Repository.User
{
where += $@" and {nameof(RB_Member_Integral.Type)}={dmodel.Type}";
}
if (dmodel.PlatformType != null && (int)dmodel.PlatformType > 0)
{
where += $@" and {nameof(RB_Member_Integral.PlatformType)}={dmodel.PlatformType}";
}
if (dmodel.UserId > 0)
{
where += $@" and {nameof(RB_Member_Integral.UserId)}={dmodel.UserId}";
......@@ -98,7 +103,7 @@ namespace Mall.Repository.User
public List<RB_Member_Integral_Extend> GetRechargeRecordPageList(int pageIndex, int pageSize, out long rowCount, RB_Member_Integral_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.Append($" SELECT a.*,b.`Name` as MemberName FROM {TableName} as a LEFT JOIN {MemberTableName} as b on a.MemberId = b.Id WHERE 1=1 ");
builder.Append($" SELECT a.*,b.`Name` as MemberName FROM {TableName} as a LEFT JOIN {MemberTableName} as b on a.UserId = b.Id WHERE 1=1 ");
if (query != null)
{
if (query.Id > 0)
......@@ -128,6 +133,46 @@ namespace Mall.Repository.User
}
return GetPage<RB_Member_Integral_Extend>(pageIndex, pageSize, out rowCount, builder.ToString()).ToList();
}
/// <summary>
/// 数据统计-积分收支
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页显示条数</param>
/// <param name="rowCount">总条数</param>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<Integral_Query> GetIntegraStatisticslList(int pageIndex, int pageSize, out long rowCount, Integral_Query query)
{
StringBuilder builder = new StringBuilder();
if (query != null)
{
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_Member_Integral_Extend.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_Member_Integral_Extend.MallBaseId)}={query.MallBaseId}");
}
if (query.PlatformType > 0)
{
builder.Append($" AND {nameof(RB_Member_Integral_Extend.PlatformType)}={query.PlatformType}");
}
if (!string.IsNullOrWhiteSpace(query.StartDate))
{
builder.Append($" AND DATE_FORMAT({nameof(RB_Member_Integral_Extend.CreateDate)},'%Y-%m-%d' )>= DATE_FORMAT('{nameof(RB_Member_Integral_Extend.StartDate)}','%Y-%m-%d' )");
}
if (!string.IsNullOrWhiteSpace(query.EndDate))
{
builder.Append($" AND DATE_FORMAT({nameof(RB_Member_Integral_Extend.CreateDate)},'%Y-%m-%d' )<= DATE_FORMAT('{nameof(RB_Member_Integral_Extend.EndDate)}','%Y-%m-%d' )");
}
}
string sql = @$" SELECT CreateDate,SUM(Income) as Income, SUM(Expend) as Expend from (
select DATE_FORMAT(CreateDate, '%Y-%m-%d') as CreateDate, Integral as Income, 0 as Expend from rb_member_integral where Type = 1 {builder.ToString()}
union all
select DATE_FORMAT(CreateDate, '%Y-%m-%d') as CreateDate, 0 as Income, Integral as Expend from rb_member_integral where Type = 2 {builder.ToString()}
) as t GROUP BY CreateDate ";
return GetPage<Integral_Query>(pageIndex, pageSize, out rowCount, sql).ToList();
}
}
}
......@@ -6,6 +6,7 @@ using Mall.Common.API;
using Mall.Model.Entity.MarketingCenter;
using Mall.Model.Extend.MarketingCenter;
using Mall.Model.Extend.User;
using Mall.Model.Query;
using Mall.Module.MarketingCenter;
using Mall.WebApi.Filter;
using Microsoft.AspNetCore.Cors;
......@@ -111,5 +112,51 @@ namespace Mall.WebApi.Controllers.MarketingCenter
}
#endregion
#region 数据统计- 积分收支
/// <summary>
/// 积分收支
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetIntegraStatisticslList()
{
var parms = RequestParm;
ResultPageModel pagelist = JsonConvert.DeserializeObject<ResultPageModel>(RequestParm.msg.ToString());
Integral_Query demodel = JsonConvert.DeserializeObject<Integral_Query>(RequestParm.msg.ToString());
demodel.TenantId = UserInfo.TenantId;
demodel.MallBaseId = parms.MallBaseId;
var list = IntegralModule.GetIntegraStatisticslList(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list.Select(x => new
{
x.CreateDate,
x.Income,
x.Expend
});
return ApiResult.Success("", pagelist);
}
/// <summary>
/// 积分收支统计
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetTotalIntegral()
{
var parms = RequestParm;
RB_Member_Integral_Extend demodel = JsonConvert.DeserializeObject<RB_Member_Integral_Extend>(RequestParm.msg.ToString());
demodel.TenantId = UserInfo.TenantId;
demodel.MallBaseId = parms.MallBaseId;
var list = IntegralModule.GetTotalIntegral(demodel);
Integral_Query model = new Integral_Query();
if (list != null && list.Any())
{
model.Income = list.Where(x => x.Type == Common.Enum.MarketingCenter.RecordTypeEnum.Income).Sum(x => x.Integral ?? 0).ToString();
model.Expend = list.Where(x => x.Type == Common.Enum.MarketingCenter.RecordTypeEnum.Expend).Sum(x => x.Integral ?? 0).ToString();
}
return ApiResult.Success("", new { model.Income, model.Expend });
}
#endregion
}
}
\ No newline at end of file
......@@ -7,6 +7,7 @@ using Mall.Common.Plugin;
using Mall.Model.Entity.MarketingCenter;
using Mall.Model.Extend.BaseSetUp;
using Mall.Model.Extend.MarketingCenter;
using Mall.Model.Extend.User;
using Mall.Module.MarketingCenter;
using Mall.WebApi.Filter;
using Microsoft.AspNetCore.Cors;
......@@ -195,5 +196,37 @@ namespace Mall.WebApi.Controllers.MarketingCenter
}
}
#endregion
#region 余额收支
/// <summary>
/// 余额收支列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetMemberBalancePageList()
{
var parms = RequestParm;
ResultPageModel pagelist = JsonConvert.DeserializeObject<ResultPageModel>(RequestParm.msg.ToString());
RB_Member_Balance_Extend demodel = JsonConvert.DeserializeObject<RB_Member_Balance_Extend>(RequestParm.msg.ToString());
demodel.TenantId = UserInfo.TenantId;
demodel.MallBaseId = parms.MallBaseId;
var list = rechargeModule.GetMemberBalancePageList(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list.Select(x => new
{
x.Id,
CreateDate = x.CreateDate.Value.ToString("yyyy-MM-dd HH:mm:ss"),
x.MemberName,
Balance = x.Balance ?? 0,
x.Description,
x.Remarks,
RecordTypeStr = Mall.Common.Plugin.EnumHelper.GetEnumName(x.Type)
});
return ApiResult.Success("", pagelist);
}
#endregion
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment