using MyCode.Project.Domain.Businesses.BillKeeping;
using MyCode.Project.Domain.Config;
using MyCode.Project.Domain.Message.Act.User;
using MyCode.Project.Domain.Message.Common;
using MyCode.Project.Domain.Message.Request.Member;
using MyCode.Project.Domain.Message.Request.User;
using MyCode.Project.Domain.Message.Response.Common;
using MyCode.Project.Domain.Message.Response.Goods;
using MyCode.Project.Domain.Message.Response.Member;
using MyCode.Project.Domain.Message.Response.User;
using MyCode.Project.Domain.Model;
using MyCode.Project.Infrastructure.Common;
using MyCode.Project.Infrastructure.Constant;
using MyCode.Project.Infrastructure.Enumeration;
using MyCode.Project.Infrastructure.Exceptions;
using MyCode.Project.Infrastructure.Extensions;
using MyCode.Project.Services;
using MyCode.Project.WebApi.App_Filter;
using System;
using System.Collections.Generic;
using System.Threading;
using System.Web.Http;
namespace MyCode.Project.WebApi.Areas.Wechat.Controllers
{
///
/// 会员基础信息查询 相关
///
[TrimStringsAttribute]
public class MemberController : BaseWechatController
{
private IMemberService _memberService;
private IMemberConsultantService _memberConsultantService;
private IMemberInfoService _memberInfoService;
private IBillKeepingService _billKeepingService;
public MemberController(IMemberService memberService, IMemberConsultantService memberConsultantService
, IMemberInfoService memberInfoService
, IBillKeepingService billKeepingService)
{
_memberInfoService = memberInfoService;
_memberService = memberService;
_memberConsultantService = memberConsultantService;
_billKeepingService = billKeepingService;
}
#region 保存小程序code(SaveCode)
///
/// 保存小程序code
///
///
[HttpPost]
[AllowAnonymous]
public void SaveCode(SaveCodeRequest request)
{
_memberService.SaveCode(request);
}
#endregion
#region GetToken(根据小程序的code获得用户的token等信息)
///
/// 根据小程序的code获得用户的token等信息
///
///
///
[AllowAnonymous]
[HttpPost]
public string GetToken(GetTokenRequest request)
{
return _memberService.GetToken(request);
}
#endregion
///
/// 获取测试token
///
///
[HttpGet]
[AllowAnonymous]
public string GetTestToken()
{
LoginInfo loginInfo = new LoginInfo();
loginInfo.CustomerId = Guid.Parse("078282A8-542B-1BA7-C223-39ECC63D08CB");
loginInfo.MerchantId = Guid.Parse("00000000-0000-0000-0000-000000000009");
loginInfo.Name = "这是一个测试店员";
loginInfo.UserId = Guid.Parse("7080C72D-303C-2601-F62A-39F01CCFDB0C");
loginInfo.ShopId = Guid.Parse("08062359-B7DA-A696-9B26-39ECC63FAB9A");
loginInfo.UnionId = "UnionId";
loginInfo.OpenId = "OpenId";
loginInfo.ClerkId = Guid.Parse("2794DFBE-143B-1681-CD22-39F01CCF8727");
loginInfo.RoleType = LoginRoleType.StoreManager;
loginInfo.RoleId = Guid.Parse("56858fc0-b382-b75a-5dd0-39f05b42300f");
string token = TokenHelper.CreateToken(SystemConfig.JwtKey, Const.LoginInfoKey, loginInfo);
return token;
}
#region UntiedWxInfo(解绑店员账号与微信关系)
///
/// 解绑店员账号与微信关系(退出登录时调用)
///
[HttpGet]
public void UntiedWxInfo()
{
_memberService.UntiedWxInfo(this.CurrentLogin.OpenId,this.CurrentLogin);
}
#endregion
#region SetPassWord(忘记密码的重设用户的密码)
///
/// 忘记密码的重设用户的密码
///
///
[HttpPost]
[AllowAnonymous]
public void SetPassWord(SetPassWordAct act)
{
_memberService.SetPassWord(act);
}
#endregion
#region GetCouponList 根据订单ID获取会员可用优惠券列表
///
/// 根据订单ID获取会员可用优惠券列表
///
/// 订单ID
/// 一口价金额
///
[HttpGet]
public List GetCouponList(Guid id, decimal directAmount)
{
return _memberService.GetCouponList(id, directAmount);
}
#endregion
#region GetMemberByMobile 根据电话或编码精确查询会员信息
///
/// 根据电话或编码精确查询会员信息
///
/// 关键字
/// 店铺ID
///
[HttpGet]
public List GetMemberByMobile(string KeyWord,Guid? shopId=null)
{
if (!shopId.HasValue)
{
shopId = this.CurrentLogin.ShopId;
}
var shopIds = _billKeepingService.GetShopAssetRules(this.CurrentLogin.CustomerId, shopId.SafeValue());
var result= this._memberService.GetMemberByMobile(KeyWord, this.CurrentLogin,shopId, shopIds);
try
{
result.ForEach(t =>
{
_memberService.GetAllMemberCoupon(t.ID);
Thread.Sleep(200);
});
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return result;
}
#endregion
#region GetWXInfo 获取当前用户的微信信息和店铺列表
///
/// 获取当前用户的微信信息和店铺列表
///
///
[HttpGet]
public ShopMemberResp GetWXInfo()
{
return _memberService.GetWXInfo(this.CurrentLogin);
}
#endregion
#region GetMemberInfo 获取会员列表
///
/// 获取会员列表
///
/// 搜索条件
///
[HttpPost]
public PageResult GetMemberInfo(PagedSearch request)
{
if (!request.Condition.ShopID.HasValue)
{
throw new BaseException("请选择一个门店");
}
var shopIds = _billKeepingService.GetShopAssetRules(this.CurrentLogin.CustomerId, request.Condition.ShopID.SafeValue());
return _memberService.GetMemberInfo(request, this.CurrentLogin, shopIds);
}
#endregion
#region GetMemberAmount 获取会员列表汇总信息
///
/// 获取会员列表汇总信息
///
/// 搜索条件
///
[HttpPost]
public MemberStatistics GetMemberStatistics(MemberRequst request)
{
if (!request.ShopID.HasValue)
{
throw new BaseException("请选择一个门店");
}
var shopIds = _billKeepingService.GetShopAssetRules(this.CurrentLogin.CustomerId, request.ShopID.SafeValue());
return _memberService.GetMemberStatistics(request, this.CurrentLogin, shopIds);
}
#endregion
#region GetGradeInfo 获取会员等级列表
///
/// 获取等级列表
///
///
[HttpGet]
public List GetGradeInfo()
{
return _memberService.GetGradeInfo();
}
#endregion
#region GetMemberDetail获取会员详细档案
///
/// 获取会员详细档案 (下个版本注释掉)
///
/// 主键ID
///
[HttpGet]
public MemberDetailResp GetMemberDetail(Guid ID)
{
return _memberService.GetMemberDetail(ID, this.CurrentLogin, 1);
}
#endregion
#region GetMemberDetailById
///
/// 获取会员详细档案 2022-03-22
///
/// 主键ID
/// 1=已绑定营销关系的会员 0=未绑定营销关系的会员
///
[HttpGet]
public MemberDetailResp GetMemberDetailById(Guid ID,int ifNormal)
{
return _memberService.GetMemberDetail(ID, this.CurrentLogin, ifNormal);
}
#endregion
#region SetMemberConsultant 修改营销顾问
///
/// 修改营销顾问
///
/// 详细档案接口返回的主键ID
/// 店员ID
[HttpGet]
public void SetMemberConsultant(Guid ID, Guid ClerkID)
{
_memberService.SetMemberConsultant(ID, ClerkID, this.CurrentLogin);
}
#endregion
#region SetChatMemberConsultant 会话页面-修改营销顾问
///
/// 会话页面-修改营销顾问(此接口作废)
///
/// 会员主键
/// 店员ID
/// 店铺ID
[HttpGet]
public void SetChatMemberConsultant(Guid id, Guid clerkId, Guid shopId)
{
_memberService.SetChatMemberConsultant(id, clerkId, shopId, this.CurrentLogin);
}
#endregion
#region SetMemberInfo 修改会员信息
///
/// 修改会员信息
///
/// 需要修改的信息
[HttpPost]
public object SetMemberInfo(SetMemberRequst requst)
{
return _memberService.SetMemberInfo(requst, this.CurrentLogin);
}
#endregion
#region GetQuickSelectionMember(快速选择会员的信息)
///
/// 快速选择会员的信息
///
///
[HttpGet]
public MemberResp GetQuickSelectionMember(Guid? shopId)
{
return this._memberConsultantService.GetQuickSelectionMember(this.CurrentLogin.CustomerId, this.CurrentLogin.ClerkId, shopId);
}
#endregion
#region GetActionLog 获取会员行为记录
///
/// 获取会员行为记录
///
/// 会员主键ID
/// 店铺主键ID
/// 对应年份
/// 营销顾问记录主键
///
[HttpGet]
public List GetActionLog(DateTime time, Guid? memberId=null, Guid? shopId=null,Guid? ID=null)
{
return _memberService.GetActionLog(time, memberId, shopId, ID);
}
#endregion
#region SetActionRemind 设置会员回店提醒记录(可不用,统一用下面的那个接口)
///
/// 设置会员回店提醒记录
///
/// 会员详细档案接口主键ID或营销顾问记录主键ID
/// 设置操作日期
///
[HttpGet]
public void SetActionRemind(Guid ID, DateTime SetTime)
{
_memberService.SetActionRemind(ID, (int)ActionType.Remind, SetTime, this.CurrentLogin);
}
#endregion
#region SetChatActionRemind 会话页面--设置会员回店提醒记录
///
/// 会话页面--设置会员回店提醒记录
///
/// 会员主键ID
/// 店铺主键
/// 设置操作日期
///
[HttpGet]
public void SetChatActionRemind(Guid id,Guid shopId, DateTime setTime)
{
_memberService.SetChatActionRemind(id, shopId,setTime, (int)ActionType.Remind, this.CurrentLogin);
}
#endregion
#region CancelActionRemind 取消设置会员回店提醒记录
///
/// 取消设置会员回店提醒记录
///
/// 行为记录主键ID
///
[HttpGet]
public void CancelActionRemind(Guid ID)
{
_memberService.CancelActionRemind(ID);
}
#endregion
#region GetRegisteredUrl(获取注册会员的URL地址)
///
/// 获取注册会员的URL地址
///
///
///
[HttpGet]
public string GetRegisteredUrl(Guid shopId)
{
return _memberService.GetRegisteredUrl(shopId, this.CurrentLogin);
}
#endregion
#region GetMessageRegisteredUrl(消息页面获取注册会员的URL地址)
///
/// 消息页面获取注册会员的URL地址
///
///
/// 脸部识别id
/// 脸部图片地址
///
[HttpGet]
public string GetMessageRegisteredUrl(Guid shopId,string faceId, string faceImgUrl)
{
return _memberService.GetMessageRegisteredUrl(shopId, faceId, faceImgUrl, this.CurrentLogin);
}
#endregion
#region GetCardUrl(获取微信卡包会员卡的二维码地址)
///
/// 获取微信卡包会员卡的二维码地址
///
///
[HttpGet]
[AllowAnonymous]
public string GetCardUrl()
{
string url = "download/exceltemp/WeChatMembershipCard.jpg";
return url;
}
#endregion
#region GetInviteList 获取拟邀名单列表
///
/// 获取拟邀名单列表
///
/// 搜索条件
///
[HttpPost]
public PageResult GetInviteList(PagedSearch request)
{
return _memberService.GetInviteList(request, this.CurrentLogin);
}
#endregion
#region GetBeInvitedList 获取邀约列表
///
/// 获取邀约列表
///
/// 搜索条件
///
[HttpPost]
public PageResult GetBeInvitedList(PagedSearch request)
{
return _memberService.GetBeInvitedList(request, this.CurrentLogin);
}
#endregion
#region AddMemberByManual(店员手动增加会员)
///
/// 店员手动增加会员
///
///
[HttpPost]
public void AddMemberByManual(AddMemberAct requst)
{
_memberService.AddMemberByManual(requst, this.CurrentLogin);
}
#endregion
#region GetMemberGrageList(获取等级列表)
///
/// 获取等级列表
///
///
[HttpGet]
public List GetMemberGrageList()
{
return _memberInfoService.GetMemberGrageList();
}
#endregion
#region ChangeMemberGrage(修改会员等级)
///
/// 修改会员等级
///
///
[HttpPost]
public void ChangeMemberGrage(ChangeMemberGradeAct act)
{
_memberInfoService.ChangeMemberGrage(act,this.CurrentLogin);
}
#endregion
#region 修改记录列表
///
/// 修改记录列表
///
/// 会员主键
/// 店铺主键
///
[HttpGet]
public List GetChangeList(Guid memberId,Guid shopId)
{
return _memberInfoService.GetChangeList(memberId,shopId);
}
#endregion
#region ChangeMemberIntegral(修改会员积分)
///
/// 修改会员积分
///
///
[HttpPost]
public void ChangeMemberIntegral(MemberIntegralDto act )
{
_memberService.ChangeMemberIntegral(act, this.CurrentLogin);
}
#endregion
#region GetShopListByRole 根据角色获取店铺列表
///
/// 根据角色获取店铺列表
///
/// 角色类型 12=加盟商 14=店长
///
///
[HttpGet]
[AllowAnonymous]
public List GetShopListByRole(int roleType,Guid userId)
{
return _memberService.GetShopListByRole(roleType,userId);
}
#endregion
#region EncryptMobile(加密会员手机号)
///
/// 加密会员手机号,代码已经被注释,需要运行前取消注释
///
[HttpGet]
public void EncryptMobile()
{
//_memberService.EncryptMobile();
}
#endregion
#region BatchChangeConsultant(批量修改会员的营销顾问)
///
/// 批量修改会员的营销顾问
///
///
[HttpPost]
public void BatchChangeConsultant(MemberRequst act)
{
_memberService.BatchChangeConsultant(act, this.CurrentLogin);
}
#endregion
#region SetMemberAddFrom 修改会员来源
///
/// 修改会员来源
///
///
[HttpPost]
public void SetMemberAddFrom(SetMemberAddFrom req )
{
_memberService.SetMemberAddFrom(req, this.CurrentLogin);
}
#endregion
#region GetAddFromList(会员来源下拉列表)
///
/// 会员来源下拉列表
///
///
[HttpGet]
public List GetAddFromList()
{
//小程序、后台、报表API的店长宝典都要改
List result = new List();
result.Add(new ItemResult { SortId = 0, Text = "自然流量", Value = "3" });
result.Add(new ItemResult { SortId = 1, Text = "1元公益、派单", Value = "5" });
result.Add(new ItemResult { SortId = 2, Text = "美团", Value = "2" });
result.Add(new ItemResult { SortId = 3, Text = "抖音", Value = "1" });
result.Add(new ItemResult { SortId = 4, Text = "老顾客裂变", Value = "4" });
result.Add(new ItemResult { SortId = 5, Text = "其他", Value = "0" });
result.Add(new ItemResult { SortId = 6, Text = "第三方合作", Value = "6" });
return result;
}
#endregion
#region DelelteMemberConsultant( 删除会员营销关系)
///
/// 删除会员营销关系
///
/// 会员详情页面的ID字段
[HttpPost]
public void DelelteMemberConsultant(IdAct act)
{
_memberService.DelelteMemberConsultant(act.Id, this.CurrentLogin);
}
#endregion
#region AddMemberConsultant 新增会员营销顾问关系,返回新的关系ID
///
/// 新增会员营销顾问关系,返回新的关系ID
///
/// 会员ID
/// 店铺ID
[HttpGet]
public Guid AddMemberConsultant(Guid id, Guid shopId)
{
return _memberService.AddMemberConsultant(id, shopId, this.CurrentLogin);
}
#endregion
#region QuicklyAddMember 店员快速增加会员
///
/// 店员快速增加会员
///
///
///
[HttpPost]
public List QuicklyAddMember(QuicklyAddMemberInformationAct act)
{
return _memberService.QuicklyAddMember(act, this.CurrentLogin);
}
#endregion
}
}