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 } }