using StoreHub.KJDWebService.Models; using StoreHub.Framework.Repositorys; using Microsoft.Extensions.Configuration; using StoreHub.KJDWebService.Commons; using NaiBa.Util.Extension; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Net; using System.Reflection; namespace StoreHub.KJDWebService.Services { public class DYUserService : ServiceBase { public DYUserService(SqlRepository sqlRepository, IConfiguration configuration) : base(sqlRepository, configuration) { } public string CheckUserLogin(string inputData) { if (!string.IsNullOrEmpty(inputData)) { var mobile = RegexUtils.GetStringQuery(ref inputData, "mobile")?.Replace("'", "\\'"); var password = RegexUtils.GetStringQuery(ref inputData, "password")?.Replace("'", "\\'"); var version = RegexUtils.GetStringQuery(ref inputData, "version").ParseToInt(); if (version < (System.Configuration.ConfigurationManager.ConnectionStrings["LimitVersion"]?.ConnectionString).ParseToInt()) return "{\"code\":1,\"msg\":\"当前版本过于陈旧,请立即升级新版\"}"; int r2 = 0; int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2); string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); string sql = "select * from dyxd.user where user_name='" + mobile + "' and password='" + password + "'"; var dt = mySql.ExecuteDataTable(sql); mySql.Close(); if (dt != null) { foreach (DataRow row in dt.Rows) { UserLoginResultParam user = new UserLoginResultParam { id = Convert.ToInt32(row["id"]), user_name = row["user_name"].ToString(), nick_name = row["nick_name"].ToString(), mobile = row["user_name"].ToString(), password = row["password"].ToString(), group_id = row["group_id"].ToString(), card_id = row["card_id"].ToString(), company_name = row["company_name"].ToString(), is_sa = row.Table.Columns.Contains("is_sa") ? row["is_sa"].ParseToInt() : 0, sa_level = row.Table.Columns.Contains("sa_level") ? row["sa_level"].ParseToInt() : 0, }; if (string.IsNullOrEmpty(user.company_name)) { user.company_name = "-"; } var data = JsonUtils.SerializeObjectToString(user); return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"c\":\"" + EncrypUtil.Encryption(r2) + "\"}"; } return "{\"code\":1,\"msg\":\"用户名或密码错误\"}"; } } return "{\"code\":19999,\"msg\":\"输入为空\"}"; } public string AddSubUser(string inputData) { if (!string.IsNullOrEmpty(inputData)) { var parent_user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'"); var nick_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "sub_nick_name"))?.Replace("'", "\\'"); var user_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "sub_name"))?.Replace("'", "\\'"); var mobile = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "sub_mobile"))?.Replace("'", "\\'"); var password = RegexUtils.GetStringQuery(ref inputData, "sub_password")?.Replace("'", "\\'"); var group_id = RegexUtils.GetStringQuery(ref inputData, "group_id")?.Replace("'", "\\'"); var card_id = RegexUtils.GetStringQuery(ref inputData, "card_id")?.Replace("'", "\\'"); var company_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "company"))?.Replace("'", "\\'"); var notes = RegexUtils.GetStringQuery(ref inputData, "notes")?.Replace("'", "\\'"); int r2 = 0; int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2); string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); string sql = ""; sql = "select exists (select 1 from dyxd.user where user_name='" + user_name + "')"; var exist = mySql.ExecuteFirstInt(sql); if (exist > 0) { mySql.Close(); return "{\"code\":500,\"msg\":\"用户名已存在\"}"; } sql = "insert into dyxd.user (nick_name,user_name,mobile,password,card_id,group_id,company_name,notes,parent_user_name,add_time,mdy_time) " + "values ('" + nick_name + "','" + user_name + "','" + mobile + "','" + password + "','" + card_id + "','" + group_id + "','" + company_name + "','" + notes + "','" + parent_user_name + "','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "');"; var rst = mySql.ExecuteNonQuery(sql); mySql.Close(); if (!rst) return "{\"code\":501,\"msg\":\""+ mySql.Message + "\"}"; else return "{\"code\":200,\"msg\":\"子账户创建成功!\"}"; } return "{\"code\":19999,\"msg\":\"输入为空\"}"; } public string GetSubUser(string inputData) { if (!string.IsNullOrEmpty(inputData)) { var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name"); var password = RegexUtils.GetStringQuery(ref inputData, "password"); var group = RegexUtils.GetStringQuery(ref inputData, "group"); int r2 = 0; int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2); string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); string sql = "select * from dyxd.user where parent_user_name='" + user_name + "'"; var dt = mySql.ExecuteDataTable(sql); mySql.Close(); if (dt != null) { List userList = new List(); foreach (DataRow row in dt.Rows) { UserLoginResultParam user = new UserLoginResultParam { id = Convert.ToInt32(row["id"]), user_name = row["user_name"].ToString(), nick_name = row["nick_name"].ToString(), mobile = row["mobile"].ToString(), password = row["password"].ToString(), group_id = row["group_id"].ToString(), card_id = row["card_id"].ToString(), parent_user_name = row["parent_user_name"].ToString(), company_name = row["company_name"].ToString(), notes = row["notes"].ToString(), }; if (string.IsNullOrEmpty(user.mobile)) { user.mobile = row["user_name"].ToString(); } userList.Add(user); } var data = JsonUtils.SerializeObjectToString(userList); return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"c\":\"" + EncrypUtil.Encryption(r2) + "\"}"; } } return "{\"code\":19999,\"msg\":\"输入为空\"}"; } public string UpdateSubUser(string inputData) { if (!string.IsNullOrEmpty(inputData)) { var id = RegexUtils.GetStringQuery(ref inputData, "id")?.Replace("'", "\\'"); var parent_user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'"); var nick_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "sub_nick_name"))?.Replace("'", "\\'"); var user_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "sub_name"))?.Replace("'", "\\'"); var mobile = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "sub_mobile"))?.Replace("'", "\\'"); var password = RegexUtils.GetStringQuery(ref inputData, "sub_password")?.Replace("'", "\\'"); var group_id = RegexUtils.GetStringQuery(ref inputData, "group_id")?.Replace("'", "\\'"); var card_id = RegexUtils.GetStringQuery(ref inputData, "card_id")?.Replace("'", "\\'"); var notes = RegexUtils.GetStringQuery(ref inputData, "notes")?.Replace("'", "\\'"); int r2 = 0; int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2); string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); string sql = ""; //sql = "select * from dyxd.user where parent_user_name='" // + user_name + "'"; sql = "update dyxd.user set"; if (!string.IsNullOrEmpty(nick_name)) sql += " nick_name='" + nick_name + "',"; if (!string.IsNullOrEmpty(user_name)) sql += " user_name='" + user_name + "',"; if (!string.IsNullOrEmpty(mobile)) sql += " mobile='" + mobile + "',"; if (!string.IsNullOrEmpty(password)) sql += " password='" + password + "',"; if (!string.IsNullOrEmpty(group_id)) sql += " group_id=" + group_id + ","; if (!string.IsNullOrEmpty(card_id)) sql += " card_id='" + card_id + "',"; if (!string.IsNullOrEmpty(notes)) sql += " notes='" + notes + "',"; sql = sql.TrimEnd(','); sql += " where id=" + id + ""; var rst = mySql.ExecuteNonQuery(sql); mySql.Close(); if (rst) { return "{\"code\":200,\"msg\":\"success\"}"; } } return "{\"code\":19999,\"msg\":\"输入为空\"}"; } public string DelUser(string inputData) { if (!string.IsNullOrEmpty(inputData)) { var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name"); var id = RegexUtils.GetStringQuery(ref inputData, "id"); int r2 = 0; int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2); string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); string sql = "delete from dyxd.user where id='" + id + "'"; var rst = mySql.ExecuteNonQuery(sql); mySql.Close(); if (rst) { return "{\"code\":200,\"msg\":\"success\"}"; } else return "{\"code\":500,\"msg\":\"删除失败,请稍后重试\"}"; } return "{\"code\":19999,\"msg\":\"输入为空\"}"; } public string GetAllUser(string inputData) { if (!string.IsNullOrEmpty(inputData)) { var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'"); var password = RegexUtils.GetStringQuery(ref inputData, "password")?.Replace("'", "\\'"); var group_id = RegexUtils.GetStringQuery(ref inputData, "group_id")?.Replace("'", "\\'"); var search = RegexUtils.GetStringQuery(ref inputData, "search")?.Replace("'", "\\'"); var sa_level = RegexUtils.GetStringQuery(ref inputData, "sa_level")?.Replace("'", "\\'"); int r2 = 0; int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2); string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); //string sql = "select * from dyxd.user where group_id=3"; string sql = "select * from dyxd.user where 1=1"; if (!string.IsNullOrEmpty(group_id)) sql += " and group_id=" + group_id; if (!string.IsNullOrEmpty(sa_level)) sql += " and sa_level=" + sa_level; if (!string.IsNullOrEmpty(search)) sql += " and (user_name like '%" + search + "%' or nick_name like '%" + search + "%' or company_name like '%" + search + "%')"; sql += " order by id desc"; var dt = mySql.ExecuteDataTable(sql); mySql.Close(); if (dt != null) { List userList = new List(); foreach (DataRow row in dt.Rows) { UserLoginResultParam user = new UserLoginResultParam { id = Convert.ToInt32(row["id"]), user_name = row["user_name"].ToString(), nick_name = row["nick_name"].ToString(), mobile = row["mobile"].ToString(), password = row["password"].ToString(), group_id = row["group_id"].ToString(), card_id = row["card_id"].ToString(), parent_user_name = row["parent_user_name"].ToString(), company_name = row["company_name"].ToString(), notes = row["notes"].ToString(), is_sa = row.Table.Columns.Contains("is_sa") ? row["is_sa"].ParseToInt() : 0, sa_level = row.Table.Columns.Contains("sa_level") ? row["sa_level"].ParseToInt() : 0, }; if (string.IsNullOrEmpty(user.mobile)) { user.mobile = row["user_name"].ToString(); } userList.Add(user); } var data = JsonUtils.SerializeObjectToString(userList); return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"c\":\"" + EncrypUtil.Encryption(r2) + "\"}"; } } return "{\"code\":19999,\"msg\":\"输入为空\"}"; } public string AddUser(string inputData) { if (!string.IsNullOrEmpty(inputData)) { var nick_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "add_nick_name"))?.Replace("'", "\\'"); var user_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "add_user_name"))?.Replace("'", "\\'"); var mobile = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "add_mobile"))?.Replace("'", "\\'"); var password = RegexUtils.GetStringQuery(ref inputData, "add_password")?.Replace("'", "\\'"); var company_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "add_company"))?.Replace("'", "\\'"); var group_id = RegexUtils.GetStringQuery(ref inputData, "group_id")?.Replace("'", "\\'"); ; var card_id = RegexUtils.GetStringQuery(ref inputData, "card_id")?.Replace("'", "\\'"); var notes = RegexUtils.GetStringQuery(ref inputData, "notes")?.Replace("'", "\\'"); var sa_level = RegexUtils.GetStringQuery(ref inputData, "sa_level")?.Replace("'", "\\'"); int r2 = 0; int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2); string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); string sql = ""; sql = "select exists (select 1 from dyxd.user where user_name='" + user_name + "')"; var exist = mySql.ExecuteFirstInt(sql); if (exist > 0) { mySql.Close(); return "{\"code\":500,\"msg\":\"用户名已存在\"}"; } sql = "insert into dyxd.user (nick_name,user_name,mobile,password,card_id,group_id,company_name,notes,sa_level,add_time,mdy_time) " + "values ('" + nick_name + "','" + user_name + "','" + mobile + "','" + password + "','" + card_id + "','" + group_id + "','" + company_name + "','" + notes + "'," + sa_level + ",'" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "');"; var rst = mySql.ExecuteNonQuery(sql); mySql.Close(); if (!rst) return "{\"code\":501,\"msg\":\"" + mySql.Message + "\"}"; else return "{\"code\":200,\"msg\":\"success\"}"; } return "{\"code\":19999,\"msg\":\"输入为空\"}"; } public string UpdateUser(string inputData) { if (!string.IsNullOrEmpty(inputData)) { var id = RegexUtils.GetStringQuery(ref inputData, "id")?.Replace("'", "\\'"); var nick_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "add_nick_name"))?.Replace("'", "\\'"); var user_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "add_user_name"))?.Replace("'", "\\'"); var mobile = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "add_mobile"))?.Replace("'", "\\'"); var company_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "add_company"))?.Replace("'", "\\'"); var password = RegexUtils.GetStringQuery(ref inputData, "add_password")?.Replace("'", "\\'"); var group_id = RegexUtils.GetStringQuery(ref inputData, "group_id")?.Replace("'", "\\'"); var card_id = RegexUtils.GetStringQuery(ref inputData, "card_id")?.Replace("'", "\\'"); var notes = RegexUtils.GetStringQuery(ref inputData, "notes")?.Replace("'", "\\'"); var sa_level = RegexUtils.GetStringQuery(ref inputData, "sa_level")?.Replace("'", "\\'"); int r2 = 0; int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2); string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); string sql = ""; //sql = "select * from dyxd.user where parent_user_name='" // + user_name + "'"; sql = "update dyxd.user set"; if (!string.IsNullOrEmpty(nick_name)) sql += " nick_name='" + nick_name + "',"; if (!string.IsNullOrEmpty(user_name)) sql += " user_name='" + user_name + "',"; if (!string.IsNullOrEmpty(mobile)) sql += " mobile='" + mobile + "',"; if (!string.IsNullOrEmpty(company_name)) sql += " company_name='" + company_name + "',"; if (!string.IsNullOrEmpty(password)) sql += " password='" + password + "',"; if (!string.IsNullOrEmpty(group_id)) sql += " group_id=" + group_id + ","; if (!string.IsNullOrEmpty(card_id)) sql += " card_id='" + card_id + "',"; if (!string.IsNullOrEmpty(notes)) sql += " notes='" + notes + "',"; if (!string.IsNullOrEmpty(sa_level)) sql += " sa_level=" + sa_level + ","; sql = sql.TrimEnd(','); sql += " where id=" + id + ""; var rst = mySql.ExecuteNonQuery(sql); mySql.Close(); if (rst) { return "{\"code\":200,\"msg\":\"success\"}"; } else { return "{\"code\":500,\"msg\":\"" + mySql.Message + "\"}"; } } return "{\"code\":19999,\"msg\":\"输入为空\"}"; } public string ChangePassword(string inputData) { var userName = RegexUtils.GetStringJson(ref inputData, "user_name")?.Replace("'", "\\'"); var password = RegexUtils.GetStringJson(ref inputData, "password")?.Replace("'", "\\'"); var newPassword = RegexUtils.GetStringJson(ref inputData, "new_password")?.Replace("'", "\\'"); string conn = "Conn"; MysqlUtils mySql = new MysqlUtils(conn); string sql = "select user_id,password from pepdtp.user where user_id='" + userName + "' and password='" + password + "'"; var dw = mySql.ExecuteDataTableRow(sql); if (dw != null) { UserLoginResultParam user = new UserLoginResultParam { user_name = dw["user_id"].ToString(), password = dw["password"].ToString(), }; sql = "update pepdtp.user set password = '" + newPassword + "' where user_id='" + userName + "'"; var result = mySql.ExecuteNonQuery(sql); mySql.Close(); if (result) { return "{\"code\":0,\"msg\":\"密码修改成功!\"}"; } else return "{\"code\":19999,\"msg\":\"密码修改失败!请稍后再试。\"}"; } else { mySql.Close(); return "{\"code\":1,\"msg\":\"原密码错误。\"}"; } } public string return_package_secret_key { get; set; } = "aaMETt2bPe6YHzZ1ojbC+6wOvgtwehqc6A+/Rz+pCUU="; public string GetPackageSign(string inputData) { if (!string.IsNullOrEmpty(inputData)) { var mobile = RegexUtils.GetStringQuery(ref inputData, "mobile")?.Replace("'", "\\'"); var password = RegexUtils.GetStringQuery(ref inputData, "password")?.Replace("'", "\\'"); var timestamp = RegexUtils.GetStringQuery(ref inputData, "timestamp")?.Replace("'", "\\'"); var mallId = RegexUtils.GetStringQuery(ref inputData, "mallId")?.Replace("'", "\\'"); var returnPackageNo = RegexUtils.GetStringQuery(ref inputData, "returnPackageNo")?.Replace("'", "\\'"); int r2 = RegexUtils.GetStringQuery(ref inputData, "r2").ParseToInt(); string c2 = RegexUtils.GetStringQuery(ref inputData, "c2"); if (EncrypUtil.Encryption(r2) != c2) return "{\"code\":2,\"msg\":\"不合法的输入内容\"}"; string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); string sql = "select * from dyxd.user where user_name='" + mobile + "' and password='" + password + "'"; sql = "select * from dyxd.user where user_name='" + mobile + "'"; var dt = mySql.ExecuteDataTable(sql); mySql.Close(); if (dt == null || dt.Rows.Count <=0) { return "{\"code\":1,\"msg\":\"用户不存在\"}"; } string sign = EncrypUtil.GetMd5(timestamp + return_package_secret_key + mallId + returnPackageNo).ToLower(); return "{\"code\":200, \"sign\":\"" + sign + "\", \"msg\":\"\"}"; } return "{\"code\":19999,\"msg\":\"输入为空\"}"; } } }