Commit 75e698a3 authored by liudong1993's avatar liudong1993
parents 674629a6 ac15443c
using Mall.Common.AOP;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Entity.User
{
/// <summary>
/// 菜单实体表
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Menu
{
/// <summary>
/// 菜单编号
/// </summary>
public int MenuId
{
get;
set;
}
/// <summary>
/// 菜单名称
/// </summary>
public string MenuName
{
get;
set;
}
/// <summary>
/// 菜单连接
/// </summary>
public string MenuUrl
{
get;
set;
}
/// <summary>
/// 菜单等级(1)
/// </summary>
public int? MenuLevel
{
get;
set;
}
/// <summary>
/// 父级菜单编号(根节点为0)
/// </summary>
public int? ParentId
{
get;
set;
}
/// <summary>
/// 图标
/// </summary>
public string IconClass
{
get;
set;
}
/// <summary>
/// 状态
/// </summary>
public int? Status
{
get;
set;
}
/// <summary>
/// 创建时间
/// </summary>
public DateTime? CreateDate
{
get;
set;
}
/// <summary>
/// 排序
/// </summary>
public int SortNum { get; set; }
}
}
......@@ -70,5 +70,20 @@ namespace Mall.Model.Entity.User
/// 状态(0-正常,1-禁用)
/// </summary>
public int Status { get; set; }
/// <summary>
/// 版权文字
/// </summary>
public string CopyRightWord { get; set; }
/// <summary>
/// 版权图片
/// </summary>
public string CopyRightImg { get; set; }
/// <summary>
/// 版权链接页面
/// </summary>
public string CopyRightLink { get; set; }
}
}
using Mall.Common.AOP;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Extend.User
{
/// <summary>
/// 菜单实体表
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Menu_Extend : Model.Entity.User.RB_Menu
{
/// <summary>
/// 状态字符串
/// </summary>
public string StatusStr
{
get
{
string str = "正常";
if (this.Status > 0 && this.Status == 1)
{
str = "禁用";
}
return str;
}
}
}
}
......@@ -12,6 +12,27 @@ namespace Mall.Model.Extend.User
[DB(ConnectionName = "DefaultConnection")]
public class RB_Tenant_Extend : Model.Entity.User.RB_Tenant
{
/// <summary>
/// 账号有效期
/// </summary>
public string AccountValidateStr
{
get
{
string str = "";
if (this.IsEffective != null && this.IsEffective == 1)
{
str = "永久有效";
}
else
{
if (this.AccountValidate != null)
{
str = Convert.ToDateTime(this.AccountValidate).ToString("yyyy-MM-dd");
}
}
return str;
}
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
using Mall.Model.Extend.User;
using Mall.Repository;
using Mall.Repository.User;
namespace Mall.Module.User
{
/// <summary>
/// 菜单处理类
/// </summary>
public class MenuModule
{
/// <summary>
/// 菜单仓储层对象
/// </summary>
private readonly RB_MenuRepository menuRepository = new RB_MenuRepository();
/// <summary>
/// 根据查询条件获取菜单列表
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Menu_Extend> GetMenuListModule(RB_Menu_Extend query)
{
return menuRepository.GetListRepository(query);
}
/// <summary>
/// 获取菜单分页列表
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页显示条数</param>
/// <param name="rowCount">总条数</param>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Menu_Extend> GetMenuPageListModule(int pageIndex, int pageSize, out long rowCount, RB_Menu_Extend query)
{
return menuRepository.GetPageListRepository(pageIndex, pageSize, out rowCount, query);
}
/// <summary>
/// 新增修改菜单
/// </summary>
/// <param name="extModel"></param>
/// <returns></returns>
public bool SetMenuModule(RB_Menu_Extend extModel)
{
bool flag = false;
if (extModel.MenuId > 0)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{ nameof(RB_Menu_Extend.MenuName),extModel.MenuName.Trim()},
{ nameof(RB_Menu_Extend.MenuUrl),extModel.MenuUrl.Trim()},
{ nameof(RB_Menu_Extend.MenuLevel),extModel.MenuLevel},
{ nameof(RB_Menu_Extend.ParentId),extModel.ParentId},
{ nameof(RB_Menu_Extend.IconClass),extModel.IconClass},
};
flag = menuRepository.Update(fileds, new WhereHelper(nameof(RB_Menu_Extend.MenuId), extModel.MenuId));
}
else
{
extModel.CreateDate = DateTime.Now;
int NewId = menuRepository.Insert(extModel);
extModel.MenuId = NewId;
flag = NewId > 0;
}
return flag;
}
/// <summary>
/// 删除菜单
/// </summary>
/// <param name="MenuId">菜单编号</param>
/// <param name="Status">菜单状态</param>
/// <returns></returns>
public bool RemoveMenuModule(object MenuId, int Status)
{
bool flag = false;
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{ nameof(RB_Menu_Extend.Status),Status},
};
flag = menuRepository.Update(fileds, new WhereHelper(nameof(RB_Menu_Extend.MenuId), MenuId));
return flag;
}
/// <summary>
/// 根据编号获取菜单实体
/// </summary>
/// <param name="MenuId">菜单编号</param>
/// <returns></returns>
public RB_Menu_Extend GetMenuModule(object MenuId)
{
RB_Menu_Extend extModel = menuRepository.GetEntity<RB_Menu_Extend>(MenuId);
if (extModel == null)
{
extModel = new RB_Menu_Extend();
}
return extModel;
}
}
}
......@@ -75,7 +75,7 @@ namespace Mall.Module.User
{ nameof(RB_MiniProgram_Extend.IsEffective),extModel.IsEffective},
{ nameof(RB_MiniProgram_Extend.MallValidate),extModel.MallValidate},
};
flag = programRepository.Update(fileds, new WhereHelper(nameof(RB_Tenant_Extend.TenantId), extModel.TenantId));
flag = programRepository.Update(fileds, new WhereHelper(nameof(RB_MiniProgram_Extend.MallBaseId), extModel.MallBaseId));
}
else
{
......@@ -88,6 +88,27 @@ namespace Mall.Module.User
return flag;
}
/// <summary>
/// 修改小程序版权信息
/// </summary>
/// <param name="extModel"></param>
/// <returns></returns>
public bool SetMiniProgramCopyRightModule(RB_MiniProgram_Extend extModel)
{
bool flag = false;
if (extModel.MallBaseId > 0)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{ nameof(RB_MiniProgram_Extend.CopyRightWord),extModel.CopyRightWord.Trim()},
{ nameof(RB_MiniProgram_Extend.CopyRightImg),extModel.CopyRightImg},
{ nameof(RB_MiniProgram_Extend.CopyRightLink),extModel.CopyRightLink},
};
flag = programRepository.Update(fileds, new WhereHelper(nameof(RB_MiniProgram_Extend.MallBaseId), extModel.MallBaseId));
}
return flag;
}
/// <summary>
......@@ -111,12 +132,12 @@ namespace Mall.Module.User
/// <param name="MallBaseId">小程序Id</param>
/// <param name="Status">小程序状态</param>
/// <returns></returns>
public bool SetTenantStatusModule(object MallBaseId, int AccountStatus)
public bool SetMiniProgramModule(object MallBaseId, int Status)
{
bool flag = false;
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{ nameof(RB_MiniProgram_Extend.Status),AccountStatus},
{ nameof(RB_MiniProgram_Extend.Status),Status},
};
flag = programRepository.Update(fileds, new WhereHelper(nameof(RB_MiniProgram_Extend.MallBaseId), MallBaseId));
return flag;
......
using System;
using System.Collections.Generic;
using System.Text;
using Mall.Model.Entity.User;
using Mall.Model.Extend.User;
using System.Linq;
namespace Mall.Repository.User
{
/// <summary>
/// 菜单仓储层对象
/// </summary>
public class RB_MenuRepository : RepositoryBase<RB_Menu>
{
/// <summary>
/// 根据查询条件获取菜单列表
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Menu_Extend> GetListRepository(RB_Menu_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.Append(" SELECT * FROM RB_Menu WHERE 1=1 AND Status=0 ");
if (query != null)
{
if (query.MenuLevel > 0)
{
builder.AppendFormat(" AND MenuLevel={0} ", query.MenuLevel);
}
if (query.MenuName != null && !string.IsNullOrEmpty(query.MenuName.Trim()))
{
builder.AppendFormat(" AND MenuName LIKE '%{0}%' ", query.MenuName.Trim());
}
}
return Get<RB_Menu_Extend>(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<RB_Menu_Extend> GetPageListRepository(int pageIndex, int pageSize, out long rowCount, RB_Menu_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.Append(" SELECT * FROM RB_Menu WHERE 1=1 ");
if (query != null)
{
if (query.MenuLevel > 0)
{
builder.AppendFormat(" AND MenuLevel={0} ", query.MenuLevel);
}
if (query.MenuName != null && !string.IsNullOrEmpty(query.MenuName.Trim()))
{
builder.AppendFormat(" AND MenuName LIKE '%{0}%' ", query.MenuName.Trim());
}
}
return GetPage<RB_Menu_Extend>(pageIndex, pageSize, out rowCount, builder.ToString()).ToList();
}
}
}
......@@ -49,6 +49,10 @@ FROM RB_MiniProgram AS A LEFT JOIN RB_Tenant AS B ON A.TenantId=B.TenantId
WHERE 1=1 ");
if (query != null)
{
if (query.Status >= 0)
{
builder.AppendFormat(" AND A.Status={0} ", query.Status);
}
if (query.TenantId != null && query.TenantId > 0)
{
builder.AppendFormat(" AND A.TenantId='{0}' ", query.TenantId);
......
......@@ -16,6 +16,7 @@ using JWT.Serializers;
using Mall.Common.Enum;
using Mall.CacheManager.User;
using Mall.CacheKey;
using Mall.Common.Plugin;
namespace Mall.WebApi.Controllers.User
{
......@@ -35,6 +36,12 @@ namespace Mall.WebApi.Controllers.User
/// </summary>
private Module.User.MiniProgramModule programModule = new Module.User.MiniProgramModule();
/// <summary>
/// 菜单处理类
/// </summary>
private Module.User.MenuModule menuModule = new Module.User.MenuModule();
#region 商户信息
/// <summary>
/// 用户登录
/// </summary>
......@@ -78,7 +85,7 @@ namespace Mall.WebApi.Controllers.User
#endregion
UserInfo obj = new UserInfo
{
TenantId=model.TenantId,
TenantId = model.TenantId,
Account = model.Account,
Name = model.Name,
MobilePhone = model.MobilePhone,
......@@ -89,8 +96,8 @@ namespace Mall.WebApi.Controllers.User
//MallName = model.MallName,
AccountStatus = model.AccountStatus,
Token = token,
SecretKey="",
MallBaseId=0,
SecretKey = "",
MallBaseId = 0,
};
UserReidsCache.UserInfoSet(UserModuleCacheKeyConfig.Mall_Login_Info + model.TenantId, obj, Config.JwtExpirTime);
return ApiResult.Success("", obj);
......@@ -109,7 +116,10 @@ namespace Mall.WebApi.Controllers.User
return ApiResult.Failed(message: "此账号已存在!");
}
extModel.CreateDate = DateTime.Now;
var flag= TenantModule.SetTenantFirstModule(extModel);
extModel.AccountValidate = DateTime.Now.AddYears(1);
extModel.CreateMiniPrograme = 1;
extModel.IsEffective = 0;
var flag = TenantModule.SetTenantFirstModule(extModel);
return flag ? ApiResult.Success(data: extModel) : ApiResult.Failed();
}
......@@ -155,6 +165,9 @@ namespace Mall.WebApi.Controllers.User
return flag ? ApiResult.Success(data: extModel) : ApiResult.Failed();
}
#endregion
#region 小程序相关
/// <summary>
/// 添加修改小程序
/// </summary>
......@@ -162,19 +175,47 @@ namespace Mall.WebApi.Controllers.User
public ApiResult SetMiniPrograme()
{
var extModel = JsonConvert.DeserializeObject<RB_MiniProgram_Extend>(RequestParm.msg.ToString());
var flag = programModule.SetMiniProgramModule(extModel);
Int32.TryParse(RequestParm.uid.ToString(), out int TenantId);
extModel.TenantId = TenantId;
var flag = programModule.SetMiniProgramModule(extModel);
return flag ? ApiResult.Success(data: extModel) : ApiResult.Failed();
}
/// <summary>
/// 获取小程序信息
/// 更新小程序状态
/// </summary>
/// <returns></returns>
public ApiResult SetMiniProgrameStatus()
{
JObject parms = JObject.Parse(RequestParm.msg.ToString());
var MallBaseId = parms.GetInt("MallBaseId", 0);
int Status = parms.GetInt("Status");
var flag = programModule.SetMiniProgramModule(MallBaseId, Status);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary>
/// 根据小程序编号获取小程序信息
/// </summary>
/// <returns></returns>
public ApiResult GetMiniPrograme()
{
return ApiResult.Failed();
JObject parms = JObject.Parse(RequestParm.msg.ToString());
var MallBaseId = parms.GetInt("MallBaseId", 0);
var extModel = programModule.GetMiniProgramModule(MallBaseId);
return ApiResult.Success(data: extModel);
}
/// <summary>
/// 更新小程序版权信息
/// </summary>
/// <returns></returns>
public ApiResult SetMiniProgrameCopyRight()
{
var extModel = JsonConvert.DeserializeObject<RB_MiniProgram_Extend>(RequestParm.msg.ToString());
var flag = programModule.SetMiniProgramCopyRightModule(extModel);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary>
......@@ -184,11 +225,120 @@ namespace Mall.WebApi.Controllers.User
public ApiResult GetMiniProgramePage()
{
ResultPageModel pageModel = JsonConvert.DeserializeObject<ResultPageModel>(RequestParm.msg.ToString());
var query = JsonConvert.DeserializeObject<RB_MiniProgram_Extend>(RequestParm.msg.ToString());
var query = JsonConvert.DeserializeObject<RB_MiniProgram_Extend>(RequestParm.msg.ToString());
var list = programModule.GetMiniProgramPageListModule(pageModel.pageIndex, pageModel.pageSize, out long rowsCount, query);
pageModel.count = Convert.ToInt32(rowsCount);
pageModel.pageData = list;
return ApiResult.Success(data: pageModel);
}
#endregion
#region 菜单信息
/// <summary>
/// 添加修改菜单
/// </summary>
/// <returns></returns>
public ApiResult SetMenu()
{
var extModel = JsonConvert.DeserializeObject<RB_Menu_Extend>(RequestParm.msg.ToString());
Int32.TryParse(RequestParm.uid.ToString(), out int TenantId);
var flag = menuModule.SetMenuModule(extModel);
return flag ? ApiResult.Success(data: extModel) : ApiResult.Failed();
}
/// <summary>
/// 根据菜单编号获取菜单
/// </summary>
/// <returns></returns>
public ApiResult GetMenu()
{
JObject parms = JObject.Parse(RequestParm.msg.ToString());
var MenuId = parms.GetInt("MenuId", 0);
var extModel = menuModule.GetMenuModule(MenuId);
return ApiResult.Success(data: extModel);
}
/// <summary>
/// 修改菜单状态
/// </summary>
/// <returns></returns>
public ApiResult SetMenuStatus()
{
JObject parms = JObject.Parse(RequestParm.msg.ToString());
var MenuId = parms.GetInt("MenuId", 0);
var Status = parms.GetInt("Status", 0);
var flag = menuModule.RemoveMenuModule(MenuId, Status);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary>
/// 菜单分页列表
/// </summary>
/// <returns></returns>
public ApiResult GetMenuPage()
{
ResultPageModel pageModel = JsonConvert.DeserializeObject<ResultPageModel>(RequestParm.msg.ToString());
var query = JsonConvert.DeserializeObject<RB_Menu_Extend>(RequestParm.msg.ToString());
var list = menuModule.GetMenuPageListModule(pageModel.pageIndex, pageModel.pageSize, out long rowsCount, query);
pageModel.count = Convert.ToInt32(rowsCount);
pageModel.pageData = list;
return ApiResult.Success(data: pageModel);
}
/// <summary>
/// 根据菜单等级获取菜单列表
/// </summary>
/// <returns></returns>
public ApiResult GetMenuChildList()
{
JObject parms = JObject.Parse(RequestParm.msg.ToString());
var MenuLevel = parms.GetInt("MenuLevel", 0);
var list = menuModule.GetMenuListModule(new RB_Menu_Extend() { MenuLevel = MenuLevel }).OrderBy(qitem => qitem.SortNum).ToList();
return ApiResult.Success(data: list.Select(qitem => new { qitem.MenuId, qitem.MenuName }));
}
/// <summary>
/// 获取菜单列表
/// </summary>
/// <returns></returns>
public ApiResult GetMenuList()
{
List<object> resultList = new List<object>();
var list = menuModule.GetMenuListModule(new RB_Menu_Extend() { });
var rootList = list.Where(qitem => qitem.MenuLevel == 1).OrderBy(qitem => qitem.SortNum).ToList();
foreach (var item in rootList)
{
List<object> subResultList = new List<object>();
var subList = list.Where(qitem => qitem.MenuLevel == 2 && qitem.ParentId == item.MenuId).OrderBy(qitem => qitem.SortNum).ToList();
foreach (var subItem in subList)
{
List<object> thirdResultList = new List<object>();
subResultList.Add(new
{
subItem.MenuName,
subItem.MenuUrl,
subItem.IconClass,
ThirdList = list.Where(qitem => qitem.MenuLevel == 3 && qitem.ParentId == subItem.MenuId).OrderBy(qitem => qitem.SortNum).Select(qitem => new
{
qitem.MenuName,
qitem.MenuUrl,
qitem.IconClass,
})
});
}
resultList.Add(new
{
item.MenuName,
item.MenuUrl,
item.IconClass,
SubList = subResultList
});
}
return ApiResult.Success(data: resultList);
}
#endregion
}
}
\ No newline at end of file
......@@ -39,11 +39,25 @@ namespace Mall.WebApi.Filter
#region api监控日志
parm = DoApiMonitorLog(actionContext, ref token);
#endregion
var notValidat = parm["cmd"].ToString();
//不需要验证TOKEN的CMD
List<string> notValidatList = new List<string>()
{
"/api/Tenant/Login",//用户登录
"/api/Tenant/SetTenantFirst",//用户注册第一步
"/api/Tenant/SetTenantSecond",//用户注册第二步
"/api/Tenant/UpdateTenantPwd",//忘记密码
};
bool isCheckToken = true;
foreach (var item in notValidatList)
{
if (item== parm["cmd"].ToString())
{
isCheckToken = false;
}
}
#region Token校验
if (notValidat != "/api/Tenant/Login")
if (isCheckToken)
{
JWTValidat(actionContext, token);
}
......
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