2025-04-24 18:31:27 +08:00

141 lines
4.9 KiB
C#

using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using MyCode.Project.Domain.Message.Response.User;
using MyCode.Project.Infrastructure.Constant;
using MyCode.Project.WebApi.Controllers;
using MyCode.Project.Domain.Config;
using MyCode.Project.Services;
using MyCode.Project.Infrastructure.Common;
using MyCode.Project.Domain.Message.Request.User;
using MyCode.Project.Infrastructure.Enumeration;
using MyCode.Project.Domain.Message.Act.User;
using MyCode.Project.Domain.Message.Response.Goods;
using MyCode.Project.Domain.Model;
using MyCode.Project.Infrastructure.Extensions;
using MyCode.Project.Domain.Message.Response.Common;
using MyCode.Project.Domain.Message.Response.MaterialWarehouse;
using MyCode.Project.Domain.Message.Request.MaterialWarehouse;
using MyCode.Project.Domain.Message.Common;
using MyCode.Project.Infrastructure.Cache;
using MyCode.Project.Domain.Message.Response.MemberFunnel;
using MyCode.Project.Domain.Message.Request.MemberFunnel;
using MyCode.Project.Services.Implementation;
using MyCode.Project.Infrastructure.Exceptions;
namespace MyCode.Project.WebApi.Areas.Wechat.Controllers
{
/// <summary>
/// 会员漏斗 相关
/// </summary>
public class MemberFunnelController : BaseWechatController
{
private IMemberFunnelService _memberFunnelService;
private IBillKeepingService _billKeepingService;
public MemberFunnelController(IMemberFunnelService memberFunnelService, IBillKeepingService billKeepingService)
{
_memberFunnelService = memberFunnelService;
_billKeepingService = billKeepingService;
}
#region GetMemberFunnel()
/// <summary>
/// 获取会员的数据漏斗
/// </summary>
/// <returns></returns>
[HttpPost]
public MemberFunnelResp GetMemberFunnel(MemberFunnelQuest req)
{
return _memberFunnelService.GetMemberFunnel(req, this.CurrentLogin);
}
#endregion
#region GetClerkMemberFunnel()
/// <summary>
/// 店员的会员漏斗数据
/// </summary>
/// <param name="req"></param>
/// <returns></returns>
[HttpPost]
public List<ClerkMemberFunnel> GetClerkMemberFunnel(MemberFunnelQuest req)
{
return _memberFunnelService.GetClerkMemberFunnel(req);
}
#endregion
#region GetClerkMemberFunnel2()
/// <summary>
/// 店员的会员漏斗数据
/// </summary>
/// <param name="req"></param>
/// <returns></returns>
[HttpPost]
public List<ClerkMemberFunnel> GetClerkMemberFunnel2(MemberFunnelQuest2 req)
{
return _memberFunnelService.GetClerkMemberFunnel(req);
}
#endregion
#region GetMemberInfo
/// <summary>
/// 获取会员列表
/// </summary>
/// <param name="request">搜索条件</param>
/// <returns></returns>
[HttpPost]
public PageResult<MemberCusResp> GetMemberInfoForTuoKe(PagedSearch<TuoKeMemberRequst> request)
{
if (!request.Condition.ShopID.HasValue)
{
throw new BaseException("请选择一个门店");
}
var shopIds = _billKeepingService.GetShopAssetRules(this.CurrentLogin.CustomerId, request.Condition.ShopID.SafeValue());
return _memberFunnelService.GetMemberInfoForTuoKe(request, this.CurrentLogin, shopIds);
}
#endregion
#region GetMemberStatisticsForTuoKe
/// <summary>
/// 根据条件获取拓客关系的会员信息统计
/// </summary>
/// <param name="request">搜索条件</param>
/// <returns></returns>
[HttpPost]
public MemberStatistics GetMemberStatisticsForTuoKe(TuoKeMemberRequst request)
{
if (!request.ShopID.HasValue)
{
throw new BaseException("请选择一个门店");
}
var shopIds = _billKeepingService.GetShopAssetRules(this.CurrentLogin.CustomerId, request.ShopID.SafeValue());
return _memberFunnelService.GetMemberStatisticsForTuoKe(request, this.CurrentLogin, shopIds);
}
#endregion
#region GetMemberFunnel()
/// <summary>
/// 获取会员的数据漏斗
/// </summary>
/// <returns></returns>
[HttpPost]
public MemberFunnelResp GetMemberFunnelReport(MemberFunnelQuest req)
{
return _memberFunnelService.GetMemberFunnel(req, this.CurrentLogin,1);
}
#endregion
}
}