当前位置: 首页 > news >正文

郑州企业网站怎么优化保障性租赁住房管理平台

郑州企业网站怎么优化,保障性租赁住房管理平台,网站建设开发用什么软件,罗湖中小网站建设本节内容,使用登录的token进行店铺信息读取,顺利的话,进行EXCEL上传测试。 1。在后台编写 读取店铺信息代码 1.1 查看原来铺店信息在什么位置,店铺的表格为CoreCmsStore#region 获取列表// POST: Api/CoreCmsStore/GetPageList///…

本节内容,使用登录的token进行店铺信息读取,顺利的话,进行EXCEL上传测试。

1。在后台编写 读取店铺信息代码

1.1 查看原来铺店信息在什么位置,店铺的表格为CoreCmsStore

   #region 获取列表============================================================// POST: Api/CoreCmsStore/GetPageList/// <summary>///     获取列表/// </summary>/// <returns></returns>[HttpPost][Description("获取列表")]public async Task<AdminUiCallBack> GetPageList(){var jm = new AdminUiCallBack();var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);var where = PredicateBuilder.True<CoreCmsStore>();//获取排序字段var orderField = Request.Form["orderField"].FirstOrDefault();Expression<Func<CoreCmsStore, object>> orderEx;switch (orderField){case "id":orderEx = p => p.id;break;case "storeName":orderEx = p => p.storeName;break;case "mobile":orderEx = p => p.mobile;break;case "linkMan":orderEx = p => p.linkMan;break;case "logoImage":orderEx = p => p.logoImage;break;case "areaId":orderEx = p => p.areaId;break;case "address":orderEx = p => p.address;break;case "coordinate":orderEx = p => p.coordinate;break;case "latitude":orderEx = p => p.latitude;break;case "longitude":orderEx = p => p.longitude;break;case "createTime":orderEx = p => p.createTime;break;case "updateTime":orderEx = p => p.updateTime;break;default:orderEx = p => p.isDefault;break;}//设置排序方式var orderDirection = Request.Form["orderDirection"].FirstOrDefault();var orderBy = orderDirection switch{"asc" => OrderByType.Asc,"desc" => OrderByType.Desc,_ => OrderByType.Desc};//查询筛选//序列 intvar id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);if (id > 0) @where = @where.And(p => p.id == id);//门店名称 nvarcharvar storeName = Request.Form["storeName"].FirstOrDefault();if (!string.IsNullOrEmpty(storeName)) @where = @where.And(p => p.storeName.Contains(storeName));//门店电话/手机号 nvarcharvar mobile = Request.Form["mobile"].FirstOrDefault();if (!string.IsNullOrEmpty(mobile)) @where = @where.And(p => p.mobile.Contains(mobile));//门店联系人 nvarcharvar linkMan = Request.Form["linkMan"].FirstOrDefault();if (!string.IsNullOrEmpty(linkMan)) @where = @where.And(p => p.linkMan.Contains(linkMan));//门店logo nvarcharvar logoImage = Request.Form["logoImage"].FirstOrDefault();if (!string.IsNullOrEmpty(logoImage)) @where = @where.And(p => p.logoImage.Contains(logoImage));//门店地区id intvar areaId = Request.Form["areaId"].FirstOrDefault().ObjectToInt(0);if (areaId > 0) @where = @where.And(p => p.areaId == areaId);//门店详细地址 nvarcharvar address = Request.Form["address"].FirstOrDefault();if (!string.IsNullOrEmpty(address)) @where = @where.And(p => p.address.Contains(address));//坐标位置 nvarcharvar coordinate = Request.Form["coordinate"].FirstOrDefault();if (!string.IsNullOrEmpty(coordinate)) @where = @where.And(p => p.coordinate.Contains(coordinate));//纬度 nvarcharvar latitude = Request.Form["latitude"].FirstOrDefault();if (!string.IsNullOrEmpty(latitude)) @where = @where.And(p => p.latitude.Contains(latitude));//经度 nvarcharvar longitude = Request.Form["longitude"].FirstOrDefault();if (!string.IsNullOrEmpty(longitude)) @where = @where.And(p => p.longitude.Contains(longitude));//创建时间 datetimevar createTime = Request.Form["createTime"].FirstOrDefault();if (!string.IsNullOrEmpty(createTime)){if (createTime.Contains("到")){var dts = createTime.Split("到");var dtStart = dts[0].Trim().ObjectToDate();where = where.And(p => p.createTime > dtStart);var dtEnd = dts[1].Trim().ObjectToDate();where = where.And(p => p.createTime < dtEnd);}else{var dt = createTime.ObjectToDate();where = where.And(p => p.createTime > dt);}}//更新时间 datetimevar updateTime = Request.Form["updateTime"].FirstOrDefault();if (!string.IsNullOrEmpty(updateTime)){if (updateTime.Contains("到")){var dts = updateTime.Split("到");var dtStart = dts[0].Trim().ObjectToDate();where = where.And(p => p.updateTime > dtStart);var dtEnd = dts[1].Trim().ObjectToDate();where = where.And(p => p.updateTime < dtEnd);}else{var dt = updateTime.ObjectToDate();where = where.And(p => p.updateTime > dt);}}//获取数据var list = await _coreCmsStoreServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);//返回数据jm.data = list;jm.code = 0;jm.count = list.TotalCount;jm.msg = "数据调用成功!";return jm;}#endregion

1.2 测试取得所有店铺信息 -WPF端的代码部分

代码如下:
1.定义所需要分析返回json的类

public class StoreInfo
{public int Id { get; set; }public string StoreName { get; set; }public string Mobile { get; set; }public string LinkMan { get; set; }public string LogoImage { get; set; }public int AreaId { get; set; }public string Address { get; set; }public string Coordinate { get; set; }public string Latitude { get; set; }public string Longitude { get; set; }public bool IsDefault { get; set; }public DateTime CreateTime { get; set; }public DateTime UpdateTime { get; set; }public double Distance { get; set; }public object AllAddress { get; set; }public object DistanceStr { get; set; }// 用于下拉框显示的内容public override string ToString(){return StoreName;}
}
public class ApiResponse2
{public int Code { get; set; }public string Msg { get; set; }public List<StoreInfo> Data { get; set; }public object OtherData { get; set; }public int Count { get; set; }
}

2。将返回数据显示到下拉列表框的代码

    /// <summary>/// 登录处理/// </summary>/// <returns></returns>private async Task PerformLogin(){var username = txtUseName.Text.Trim();var password = txtPassword.Password;string url = txtWebhost.Text.Trim();if (string.IsNullOrEmpty(url)){System.Windows.MessageBox.Show("请输入网址", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);return;}Settings.ApiUrl = url; // 设置全局API URL// 创建数据字典Dictionary<string, string> data = new Dictionary<string, string>
{{ "username", username },{ "password", password }
};string loginUrl =  "api/login/getJwtToken";var response = await CoreHelper.PostAsync(loginUrl, data,false);            if (response.Code == HttpStatusCode.OK){             string Content = response.Content;             var result = AnalysisLoginData.Analysis(Content);Properties.Settings.Default[Settings.TokenName] = "Bearer " + result.data.token.token;//过期时间Properties.Settings.Default["TokenExpire"] =DateTime.Now.AddSeconds(result.data.token.expires_in);//截入店铺信息//Api/CoreCmsStore/GetPageListDictionary<string, string> data2 = new Dictionary<string, string>
{{ "page", "1" },{ "limit", "1000" }
};var dianpuInfo = await CoreHelper.PostAsync("Api/CoreCmsStore/GetPageList", data2,true);if (dianpuInfo.Code == HttpStatusCode.OK){//初始化店铺显示InitializeStoreComboBox(dianpuInfo.Content);}}}/// <summary>/// 将返回的json 数据转换为店铺列表/// </summary>/// <param name="json"></param>private void InitializeStoreComboBox(string json){try{var response = JsonConvert.DeserializeObject<ApiResponse2>(json);if (response.Code == 0 && response.Data != null){cmbStore.ItemsSource = response.Data;cmbStore.DisplayMemberPath = "StoreName";cmbStore.SelectedValuePath = "Id";// 设置默认选中项 var defaultStore = response.Data.FirstOrDefault(s => s.IsDefault);if (defaultStore != null){cmbStore.SelectedItem = defaultStore;//将数据绑定到下拉列表框}}}catch (Exception ex){System.Windows.MessageBox.Show("初始化店铺列表失败:" + ex.Message);}}

1.3 改造上面1.1的代码,返回的店铺信息只能是登录者自己有权限操作的店铺

1.3.1 建一个新的函数,将放到菜单,以便授权

在CoreCms.Net.Web.Admin\Controllers\Shop\CoreCmsSettingController.cs中添加一个函数

#region 获取自己的店铺列表============================================================// POST: Api/CoreCmsStore/GetMyPageList/// <summary>///     获取列表/// </summary>/// <returns></returns>[HttpPost][Description("获取列表")][AllowAnonymous]public async Task<AdminUiCallBack> GetMyPageList(){var jm = new AdminUiCallBack();//取得自己的 用户名}

进入管理后台 http://localhost:1987/#/system/sysmenu/
在“后台管理"->"菜单管理”选中店铺管理的添加按钮
菜单如下
在这里插入图片描述

1.3.2 取得当前用户名

获取当前用户名和权限 代码如下:

  //1。取得自己的 用户名// 直接获取用户名(ClaimTypes.Name即user.userName)string userName = User.Identity?.Name;//2。根据 用户名查询店铺//2.1 如如用户超级管理 员,则查询所有店铺var whereUser = PredicateBuilder.True<CoreCmsUser>();whereUser = whereUser.And(p => p.userName == userName);var UserObject = await _coreCmsUserServices.QueryPageAsync(whereUser, null, 1, 1);if (UserObject == null || UserObject.TotalCount == 0) {jm.code = 0;jm.msg="用户不存在";return jm;}//2.2 如如用户不是超级管理员,则查询自己店铺int userid = UserObject[0].id;var userRole = await _sysUserRoleServices.QueryPageAsync(p => p.userId == userid && p.roleId ==1);if(userRole == null || userRole.Count ==0 ) //不是管理员{//判断当前用户ID 之下是否有店铺      }

1.3.3 根据用户信息找到自己的店铺

关键代码如下:

    //根据用户信息找到自己的店铺string storeIDs = UserObject[0].storeIds;if (string.IsNullOrEmpty(storeIDs)){jm.code = 0;jm.msg = "用户没有店铺";return jm;}//取得店铺ID的列表 string[] storeIds = storeIDs.Split(',');//将上面店铺ID的列表转成整型的System.Collections.Generic.List<int> storeIdList = new System.Collections.Generic.List<int>();// List<int>();foreach (string storeId in storeIds){storeIdList.Add(Convert.ToInt32(storeId));}//查询 店铺主键id在 storeIdList中的值 list = await _coreCmsStoreServices.QueryPageAsync(p => storeIdList.Contains(p.id));

总结上面的全部代码如下:

 // POST: Api/CoreCmsStore/GetMyPageList/// <summary>///     获取自己的店铺列表/// </summary>/// <returns></returns>[HttpPost][Description("获取自己的店铺列表")][AllowAnonymous]public async Task<AdminUiCallBack> GetMyPageList(){var jm = new AdminUiCallBack();//1。取得自己的 用户名// 直接获取用户名(ClaimTypes.Name即user.userName)string userName = User.Identity?.Name;//2。根据 用户名查询店铺//2.1 如如用户超级管理 员,则查询所有店铺var UserObject = await _sysUserServices.QueryPageAsync(p => p.userName == userName);if (UserObject == null || UserObject.TotalCount == 0){jm.code = 0;jm.msg="用户不存在";return jm;}//2.2 如如用户不是超级管理员,则查询自己店铺int userid = UserObject[0].id;var userRole = await _sysUserRoleServices.QueryPageAsync(p => p.userId == userid && p.roleId ==1);IPageList<CoreCmsStore> list;if (userRole == null){jm.code = 0;jm.msg = "读取用权限 role调用失败!";return jm;}else if (userRole.Count == 0) //不是管理员{//根据用户信息找到自己的店铺string storeIDs = UserObject[0].storeIds;if (string.IsNullOrEmpty(storeIDs)){jm.code = 0;jm.msg = "用户没有店铺";return jm;}//取得店铺ID的列表 string[] storeIds = storeIDs.Split(',');//将上面店铺ID的列表转成整型的System.Collections.Generic.List<int> storeIdList = new System.Collections.Generic.List<int>();// List<int>();foreach (string storeId in storeIds){storeIdList.Add(Convert.ToInt32(storeId));}//查询 店铺主键id在 storeIdList中的值 list = await _coreCmsStoreServices.QueryPageAsync(p => storeIdList.Contains(p.id));//返回数据jm.data = list;jm.code = 0;jm.count = list.TotalCount;jm.msg = "数据调用成功!";return jm;}else if (userRole.Count > 0) //不是管理员{list = await _coreCmsStoreServices.QueryPageAsync(p => true);jm.data = list;jm.code = 0;jm.count = list.TotalCount;jm.msg = "数据调用成功!";return jm;}else{jm.code = 0;jm.msg = "函数调用失败!";return jm;}            }

2. WPF客户端将收到的店铺信息显示到界面上

代码如下:

    /// <summary>/// 登录处理/// </summary>/// <returns></returns>private async Task PerformLogin(){var username = txtUseName.Text.Trim();var password = txtPassword.Password;string url = txtWebhost.Text.Trim();if (string.IsNullOrEmpty(url)){System.Windows.MessageBox.Show("请输入网址", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);return;}Settings.ApiUrl = url; // 设置全局API URL// 创建数据字典Dictionary<string, string> data = new Dictionary<string, string>
{{ "username", username },{ "password", password }
};string loginUrl =  "api/login/getJwtToken";var response = await CoreHelper.PostAsync(loginUrl, data,false);            if (response.Code == HttpStatusCode.OK){             string Content = response.Content;             var result = AnalysisLoginData.Analysis(Content);Properties.Settings.Default[Settings.TokenName] = "Bearer " + result.data.token.token;//过期时间Properties.Settings.Default["TokenExpire"] =DateTime.Now.AddSeconds(result.data.token.expires_in);//截入店铺信息//Api/CoreCmsStore/GetPageListDictionary<string, string> data2 = new Dictionary<string, string>
{{ "page", "1" },{ "limit", "1000" }
};var dianpuInfo = await CoreHelper.PostAsync("Api/CoreCmsStore/GetMyPageList", data2,true);if (dianpuInfo.Code == HttpStatusCode.OK){//初始化店铺显示InitializeStoreComboBox(dianpuInfo.Content);}}}/// <summary>/// 将返回的json 数据转换为店铺列表/// </summary>/// <param name="json"></param>private void InitializeStoreComboBox(string json){try{var response = JsonConvert.DeserializeObject<ApiResponse2>(json);if (response.Code == 0 && response.Data != null){cmbStore.ItemsSource = response.Data;cmbStore.DisplayMemberPath = "StoreName";cmbStore.SelectedValuePath = "Id";// 设置默认选中项 var defaultStore = response.Data.FirstOrDefault(s => s.IsDefault);if (defaultStore != null){cmbStore.SelectedItem = defaultStore;//将数据绑定到下拉列表框}}}catch (Exception ex){System.Windows.MessageBox.Show("初始化店铺列表失败:" + ex.Message);}}
http://www.dtcms.com/a/574241.html

相关文章:

  • 系列文章<十>(从LED显示屏的低灰跳灰(线性度不好)问题问题问题到手机影像):从LED冬奥会、奥运会及春晚等大屏,到手机小屏,快来挖一挖里面都有什么
  • 自动化测试-pytest框架-进阶
  • 学习做网站的网站wordpress 教程 插件
  • (2)pytest+Selenium自动化测试-环境准备
  • 【项目】小型支付商城 MVC/DDD
  • uni-app开发app移动端使用ucharts自定义标签栏Tooltip
  • 《uni-app跨平台开发完全指南》- 03 - Vue.js基础入门
  • uniapp中的静态资源文件,如图片等文件,h5端设置本地与生产测试环境的区别,本地不加前缀,生产测试添加前缀,h5端的已进行测试可行,非h5的未进行测试
  • uni-app + Vue3 实现折叠文本(超出省略 + 展开收起)
  • 云南微网站搭建wordpress插件安装不
  • 汽车行业网站设计chrome google
  • 好用的云电脑!手机怎么用UU远程云电脑玩电脑游戏?
  • 网站开发安装网站原型图软件
  • 坑#Spring Cloud Gateway#DataBufferLimitException
  • 15年做哪些网站能致富网页升级访问紧急通知狼
  • ping: baidu.com: 域名解析暂时失败
  • 上海网站设计方法有哪些网站上可以做试卷
  • 网站建设项目立项登记 表自己家的电脑宽带50m做网站服务器
  • 宜宾公司做网站建设一个电子文学网站资金多少
  • 效率提升的声音助手——工业物联网中的智能化变革
  • 普罗宇宙发布大白机器人2.0 及灵巧手,携手京东加速全球化落地
  • Java 集合框架:List 体系与实现类深度解析
  • 阿里云 ip 网站哈尔滨行业网站建设策划
  • 注册了网站怎么建设网站视听内容建设
  • 泉州专业做网站网上做网站怎么防止被骗
  • 使用 ECharts + ECharts-GL 生成 3D 环形图
  • 做电影网站视频放在那里南阳做那个网站好
  • 美德的网站建设局网站建设招标
  • 学校网站的建设论文怎么建网站做推广
  • 第四阶段通讯开发-7:TCPListener和TCPClient