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
{
///
/// 会员漏斗 相关
///
public class MemberFunnelController : BaseWechatController
{
private IMemberFunnelService _memberFunnelService;
private IBillKeepingService _billKeepingService;
public MemberFunnelController(IMemberFunnelService memberFunnelService, IBillKeepingService billKeepingService)
{
_memberFunnelService = memberFunnelService;
_billKeepingService = billKeepingService;
}
#region GetMemberFunnel(获取会员的数据漏斗)
///
/// 获取会员的数据漏斗
///
///
[HttpPost]
public MemberFunnelResp GetMemberFunnel(MemberFunnelQuest req)
{
return _memberFunnelService.GetMemberFunnel(req, this.CurrentLogin);
}
#endregion
#region GetClerkMemberFunnel(店员的会员漏斗数据)
///
/// 店员的会员漏斗数据
///
///
///
[HttpPost]
public List GetClerkMemberFunnel(MemberFunnelQuest req)
{
return _memberFunnelService.GetClerkMemberFunnel(req);
}
#endregion
#region GetClerkMemberFunnel2(店员的会员漏斗数据)
///
/// 店员的会员漏斗数据
///
///
///
[HttpPost]
public List GetClerkMemberFunnel2(MemberFunnelQuest2 req)
{
return _memberFunnelService.GetClerkMemberFunnel(req);
}
#endregion
#region GetMemberInfo 获取会员列表
///
/// 获取会员列表
///
/// 搜索条件
///
[HttpPost]
public PageResult GetMemberInfoForTuoKe(PagedSearch 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 根据条件获取拓客关系的会员信息统计
///
/// 根据条件获取拓客关系的会员信息统计
///
/// 搜索条件
///
[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(获取会员的数据漏斗)
///
/// 获取会员的数据漏斗
///
///
[HttpPost]
public MemberFunnelResp GetMemberFunnelReport(MemberFunnelQuest req)
{
return _memberFunnelService.GetMemberFunnel(req, this.CurrentLogin,1);
}
#endregion
}
}