using StoreHub.KJDWebService.Models; using StoreHub.Framework.Repositorys; using Microsoft.Extensions.Configuration; using StoreHub.KJDWebService.Models.ShopModel; using StoreHub.KJDWebService.Commons; using NaiBa.Util.Extension; using System; using System.Collections.Generic; using System.Data; using System.Drawing; using System.Linq; using System.Text; namespace StoreHub.KJDWebService.Services { public class ShopService : ServiceBase { public ShopService(SqlRepository sqlRepository, IConfiguration configuration) : base(sqlRepository, configuration) { } public string GetShop(string inputData, bool isAdmin = false) { if (!string.IsNullOrEmpty(inputData)) { var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name"); var password = RegexUtils.GetStringQuery(ref inputData, "password"); var search_id = RegexUtils.GetStringQuery(ref inputData, "search_id"); var search_user_name = RegexUtils.GetStringQuery(ref inputData, "search_user_name"); var search_login_name = RegexUtils.GetStringQuery(ref inputData, "search_login_name"); var search_notes = RegexUtils.GetStringQuery(ref inputData, "search_notes"); var search_name = RegexUtils.GetStringQuery(ref inputData, "search_name"); var operate_sub_sa_name = RegexUtils.GetStringQuery(ref inputData, "operate_sub_sa_name")?.Replace("'", "\\'"); var shop_ids = RegexUtils.GetStringQuery(ref inputData, "shop_ids")?.Replace("'", ""); if (!string.IsNullOrWhiteSpace(shop_ids)) { List shopIdLst = shop_ids.Split(',').ToList(); shop_ids = "'" + string.Join("','", shopIdLst) + "'"; } var shop_names = RegexUtils.GetStringQuery(ref inputData, "shop_names"); if (!string.IsNullOrWhiteSpace(shop_names)) { List shopNameLst = shop_names.Split(',').ToList(); shop_names = "'" + string.Join("','", shopNameLst) + "'"; } var shop_notes = RegexUtils.GetStringQuery(ref inputData, "shop_notes"); if (!string.IsNullOrWhiteSpace(shop_notes)) { List shopNotesLst = shop_notes.Split(',').ToList(); shop_notes = "'" + string.Join("','", shopNotesLst) + "'"; } var page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt(); var page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(); if (page_size == 0) page_size = 50; int r2 = 0; int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2); string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); string sql = "SELECT COUNT(s.id) FROM kjd.shop s WHERE 1=1"; //where子句 string where = ""; if (isAdmin) where += " and (s.cookie='' or s.shop_id!='')"; if (!isAdmin) where += " and (s.user_name='" + user_name + "' or s.sub_user_name like '%" + user_name + "%')"; if (!string.IsNullOrWhiteSpace(operate_sub_sa_name)) where += " and s.operate_sub_sa_name='" + operate_sub_sa_name + "'"; if (!string.IsNullOrWhiteSpace(search_user_name)) where += " and s.user_name like '%" + search_user_name + "%'"; if (!string.IsNullOrWhiteSpace(search_login_name)) where += " and s.login_name like '%" + search_login_name + "%'"; if (!string.IsNullOrWhiteSpace(search_notes)) where += " and s.notes like '%" + search_notes + "%'"; if (!string.IsNullOrWhiteSpace(search_id)) where += " and s.shop_id like '%" + search_id + "%'"; if (!string.IsNullOrWhiteSpace(search_name)) where += " and s.shop_account like '%" + search_name + "%'"; if (!string.IsNullOrWhiteSpace(shop_ids)) where += " and s.shop_id in (" + shop_ids + ")"; if (!string.IsNullOrWhiteSpace(shop_names)) where += " and s.shop_account in (" + shop_names + ")"; if (!string.IsNullOrWhiteSpace(shop_notes)) where += " and s.notes in (" + shop_notes + ")"; sql += where; var count = mySql.ExecuteRowCount(sql); DataTable dt; if (count == 0) { dt = new DataTable(); } else { sql = "SELECT s.*, c.add_product_remaining add_remaining, c.add_product_month add_month, cc.jit_expire_time FROM kjd.shop s" + /*, u.sub_nick_name*/ //" LEFT JOIN (SELECT parent_user_name, GROUP_CONCAT(nick_name) as sub_nick_name FROM kjd.user WHERE user_name in(s.sub_user_name) GROUP BY parent_user_name) u ON s.shop_id=u.parent_user_name" + " LEFT JOIN kjd.shop_add_prod_count c ON s.shop_id=c.shop_id" + " LEFT JOIN (SELECT shop_id, MAX(expire_time) as jit_expire_time FROM kjd.jit_card_code GROUP BY shop_id) cc ON s.shop_id=cc.shop_id" + " WHERE 1=1"; sql += where; // where 子句 sql += " ORDER BY s.id DESC"; sql += " LIMIT " + Math.Max(page - 1, 0) * page_size + "," + page_size; dt = mySql.ExecuteDataTable(sql); } mySql.Close(); if (dt != null) { List shopList=new List(); foreach (DataRow row in dt.Rows) { ShopParam shop = new ShopParam { id = Convert.ToInt32(row["id"]), login_name = row["login_name"].ToString(), login_pass = row["login_pass"].ToString(), cookie = row["cookie"].ToString(), cookie2 = row["cookie2"].ToString(), shop_id = row["shop_id"].ToString(), shop_account = row["shop_account"].ToString(), sub_user_name = row["sub_user_name"].ToString(), //sub_nick_name = row["sub_nick_name"].ToString(), user_name = row["user_name"].ToString(), company_name = row["company_name"].ToString(), notes = row["notes"].ToString(), login_status = row["login_status"].ToString(), login_status2 = row["login_status2"].ToString(), add_product_remaining = Math.Max(0, row["add_remaining"].ParseToInt()), add_product_month = row["add_month"].ParseToInt(), operate_sub_sa_name = row["operate_sub_sa_name"].ParseToString(), ad_cookie = row["ad_cookie"].ParseToString(), ad_login_status = row["ad_login_status"].ParseToString(), ad_seller_unique_id = row["ad_seller_unique_id"].ParseToString(), ad_url = row["ad_url"].ParseToString(), jit_expire_time = row["jit_expire_time"].IsNullOrEmpty() ? new DateTime?() : Convert.ToDateTime(row["jit_expire_time"]), }; shopList.Add(shop); } //sql = "\r\nINSERT INTO kjd.shop_add_prod_count(shop_id,shop_account,add_product_remaining,add_product_month) VALUES "; //foreach (var shop in shopList) //{ // sql += "\r\n('" + shop.shop_id + "','" + shop.shop_account + "'," + shop.add_product_remaining + "," + shop.add_product_month + "),"; //} //sql = sql.TrimEnd(',') + " \r\n"; //sql += "ON DUPLICATE KEY UPDATE " + // "shop_account=VALUES(shop_account)," + // "add_product_remaining=VALUES(add_product_remaining)," + // "add_product_month=VALUES(add_product_month);"; //var result = mySql.ExecuteNonQuery(sql); //mySql.Close(); int month = DateTime.Now.Month; var shopMonthList = shopList.Where(s => s.add_product_month != month); if (shopMonthList.Count() > 0) { int remainCount = 300; var shopMonthIdList = shopMonthList.Select(s => s.id); mySql = new MysqlUtils(conn); string ids = string.Join(",", shopMonthIdList); sql = ""; sql += "update kjd.shop set add_product_remaining=" + remainCount + ", add_product_month=" + month + " where 1=1 and id in (" + ids + ");"; sql += "\r\nINSERT INTO kjd.shop_add_prod_count(shop_id,shop_account,add_product_remaining,add_product_month) VALUES "; foreach (var shop in shopMonthList) { sql+= "\r\n('" + shop.shop_id + "','" + shop.shop_account + "'," + remainCount + "," + month + "),"; } sql = sql.TrimEnd(',') + " \r\n"; sql += "ON DUPLICATE KEY UPDATE " + "shop_account=VALUES(shop_account)," + "add_product_remaining=VALUES(add_product_remaining)," + "add_product_month=VALUES(add_product_month);"; var rst = mySql.ExecuteNonQuery(sql); mySql.Close(); if (rst) { foreach (var shop in shopMonthList) { shop.add_product_month = month; shop.add_product_remaining = remainCount; } } } var data = JsonUtils.SerializeObjectToString(shopList); //return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"c\":\"" + EncrypUtil.Encryption(r2) + "\"}"; return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"count\":" + count + "}"; } } return "{\"code\":19999,\"msg\":\"未知错误\"}"; } public string SubSaGetSelectProdShop(string inputData) // 废弃 { if (!string.IsNullOrEmpty(inputData)) { var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name"); var password = RegexUtils.GetStringQuery(ref inputData, "password"); var search_id = RegexUtils.GetStringQuery(ref inputData, "search_id"); var search_user_name = RegexUtils.GetStringQuery(ref inputData, "search_user_name"); var search_login_name = RegexUtils.GetStringQuery(ref inputData, "search_login_name"); var search_notes = RegexUtils.GetStringQuery(ref inputData, "search_notes"); var search_name = RegexUtils.GetStringQuery(ref inputData, "search_name"); var operate_sub_sa_name = RegexUtils.GetStringQuery(ref inputData, "operate_sub_sa_name")?.Replace("'", "\\'"); var shop_ids = RegexUtils.GetStringQuery(ref inputData, "shop_ids")?.Replace("'", ""); if (!string.IsNullOrWhiteSpace(shop_ids)) { List shopIdLst = shop_ids.Split(',').ToList(); shop_ids = "'" + string.Join("','", shopIdLst) + "'"; } var shop_names = RegexUtils.GetStringQuery(ref inputData, "shop_names"); if (!string.IsNullOrWhiteSpace(shop_names)) { List shopNameLst = shop_names.Split(',').ToList(); shop_names = "'" + string.Join("','", shopNameLst) + "'"; } var shop_notes = RegexUtils.GetStringQuery(ref inputData, "shop_notes"); if (!string.IsNullOrWhiteSpace(shop_notes)) { List shopNotesLst = shop_notes.Split(',').ToList(); shop_notes = "'" + string.Join("','", shopNotesLst) + "'"; } var page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt(); var page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(); if (page_size == 0) page_size = 50; int r2 = 0; int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2); string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); string sql = "SELECT COUNT(s.id) FROM kjd.shop s WHERE 1=1"; //where子句 string where = ""; if (!string.IsNullOrWhiteSpace(operate_sub_sa_name)) where += " and (s.shop_id in (SELECT DISTINCT shop_id From kjd.product_select WHERE operate_sub_sa_name='" + operate_sub_sa_name + "') or " + "s.shop_id in (SELECT DISTINCT shop_id From kjd.third_product_select WHERE operate_sub_sa_name='" + operate_sub_sa_name + "'))"; where += " and (s.cookie='' or s.shop_id!='')"; //if (!string.IsNullOrWhiteSpace(operate_sub_sa_name)) // where += " and s.operate_sub_sa_name='" + operate_sub_sa_name + "'"; if (!string.IsNullOrWhiteSpace(search_user_name)) where += " and s.user_name like '%" + search_user_name + "%'"; if (!string.IsNullOrWhiteSpace(search_login_name)) where += " and s.login_name like '%" + search_login_name + "%'"; if (!string.IsNullOrWhiteSpace(search_notes)) where += " and s.notes like '%" + search_notes + "%'"; if (!string.IsNullOrWhiteSpace(search_id)) where += " and s.shop_id like '%" + search_id + "%'"; if (!string.IsNullOrWhiteSpace(search_name)) where += " and s.shop_account like '%" + search_name + "%'"; if (!string.IsNullOrWhiteSpace(shop_ids)) where += " and s.shop_id in (" + shop_ids + ")"; if (!string.IsNullOrWhiteSpace(shop_names)) where += " and s.shop_account in (" + shop_names + ")"; if (!string.IsNullOrWhiteSpace(shop_notes)) where += " and s.notes in (" + shop_notes + ")"; sql += where; var count = mySql.ExecuteRowCount(sql); DataTable dt; if (count == 0) { dt = new DataTable(); } else { sql = "SELECT s.*,c.add_product_remaining add_remaining,c.add_product_month add_month FROM kjd.shop s LEFT JOIN kjd.shop_add_prod_count c ON s.shop_id=c.shop_id WHERE 1=1"; sql += where; // where 子句 sql += " ORDER BY s.id DESC"; sql += " LIMIT " + Math.Max(page - 1, 0) * page_size + "," + page_size; dt = mySql.ExecuteDataTable(sql); } mySql.Close(); if (dt != null) { List shopList = new List(); foreach (DataRow row in dt.Rows) { ShopParam shop = new ShopParam { id = Convert.ToInt32(row["id"]), login_name = row["login_name"].ToString(), login_pass = row["login_pass"].ToString(), cookie = row["cookie"].ToString(), cookie2 = row["cookie2"].ToString(), shop_id = row["shop_id"].ToString(), shop_account = row["shop_account"].ToString(), sub_user_name = row["sub_user_name"].ToString(), user_name = row["user_name"].ToString(), company_name = row["company_name"].ToString(), notes = row["notes"].ToString(), login_status = row["login_status"].ToString(), login_status2 = row["login_status2"].ToString(), add_product_remaining = Math.Max(0, row["add_remaining"].ParseToInt()), add_product_month = row["add_month"].ParseToInt(), operate_sub_sa_name = row["operate_sub_sa_name"].ParseToString(), ad_cookie = row["ad_cookie"].ParseToString(), ad_login_status = row["ad_login_status"].ParseToString(), ad_seller_unique_id = row["ad_seller_unique_id"].ParseToString(), ad_url = row["ad_url"].ParseToString(), }; shopList.Add(shop); } //sql = "\r\nINSERT INTO kjd.shop_add_prod_count(shop_id,shop_account,add_product_remaining,add_product_month) VALUES "; //foreach (var shop in shopList) //{ // sql += "\r\n('" + shop.shop_id + "','" + shop.shop_account + "'," + shop.add_product_remaining + "," + shop.add_product_month + "),"; //} //sql = sql.TrimEnd(',') + " \r\n"; //sql += "ON DUPLICATE KEY UPDATE " + // "shop_account=VALUES(shop_account)," + // "add_product_remaining=VALUES(add_product_remaining)," + // "add_product_month=VALUES(add_product_month);"; //var result = mySql.ExecuteNonQuery(sql); //mySql.Close(); int month = DateTime.Now.Month; var shopMonthList = shopList.Where(s => s.add_product_month != month); if (shopMonthList.Count() > 0) { int remainCount = 300; var shopMonthIdList = shopMonthList.Select(s => s.id); mySql = new MysqlUtils(conn); string ids = string.Join(",", shopMonthIdList); sql = ""; sql += "update kjd.shop set add_product_remaining=" + remainCount + ", add_product_month=" + month + " where 1=1 and id in (" + ids + ");"; sql += "\r\nINSERT INTO kjd.shop_add_prod_count(shop_id,shop_account,add_product_remaining,add_product_month) VALUES "; foreach (var shop in shopMonthList) { sql += "\r\n('" + shop.shop_id + "','" + shop.shop_account + "'," + remainCount + "," + month + "),"; } sql = sql.TrimEnd(',') + " \r\n"; sql += "ON DUPLICATE KEY UPDATE " + "shop_account=VALUES(shop_account)," + "add_product_remaining=VALUES(add_product_remaining)," + "add_product_month=VALUES(add_product_month);"; var rst = mySql.ExecuteNonQuery(sql); mySql.Close(); if (rst) { foreach (var shop in shopMonthList) { shop.add_product_month = month; shop.add_product_remaining = remainCount; } } } var data = JsonUtils.SerializeObjectToString(shopList); //return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"c\":\"" + EncrypUtil.Encryption(r2) + "\"}"; return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"count\":" + count + "}"; } } return "{\"code\":19999,\"msg\":\"未知错误\"}"; } public string UpdateAddProdRemaining(string inputData) { if (!string.IsNullOrEmpty(inputData)) { var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt(); string time1 = RegexUtils.GetStringQuery(ref inputData, "code"); if (time1 != EncrypUtil.Encryption(time)) return "{\"code\":50000,\"msg\":\"校验失败\"}"; var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name"); var password = RegexUtils.GetStringQuery(ref inputData, "password"); var remainCount = RegexUtils.GetStringQuery(ref inputData, "remain_count"); var shop_ids = RegexUtils.GetStringQuery(ref inputData, "shop_ids")?.Replace("'", ""); if (!string.IsNullOrWhiteSpace(shop_ids)) { List shopIdLst = shop_ids.Split(',').ToList(); shop_ids = "'" + string.Join("','", shopIdLst) + "'"; } string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); string sql = ""; sql += "update kjd.shop_add_prod_count set add_product_remaining=" + remainCount + " where 1=1 and shop_id in (" + shop_ids + ");"; var rst = mySql.ExecuteNonQuery(sql); var msg = mySql.Message; mySql.Close(); if (rst) return "{\"code\":200,\"msg\":\"success\"}"; else return "{\"code\":50000,\"msg\":\"" + msg + "\"}"; } else { return "{\"code\":19999,\"msg\":\"输入为空\"}"; } } //获取一个手机登录号码下的所有店铺(以便有则更新,无则新增) public string GetOneLoginNameShop(string inputData) { if (!string.IsNullOrEmpty(inputData)) { var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name"); var login_name = RegexUtils.GetStringQuery(ref inputData, "login_name"); var password = RegexUtils.GetStringQuery(ref inputData, "password"); int r2 = 0; int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2); string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); string sql = "select id,login_name,login_pass,cookie,cookie2,shop_id,shop_account,sub_user_name,user_name from kjd.shop where user_name='" + user_name + "' and login_name='" + login_name + "'"; var dt = mySql.ExecuteDataTable(sql); mySql.Close(); if (dt != null) { List shopList = new List(); foreach (DataRow row in dt.Rows) { ShopParam shop = new ShopParam { id = Convert.ToInt32(row["id"]), login_name = row["login_name"].ToString(), login_pass = row["login_pass"].ToString(), cookie = row["cookie"].ToString(), cookie2 = row["cookie2"].ToString(), shop_id = row["shop_id"].ToString(), shop_account = row["shop_account"].ToString(), sub_user_name = row["sub_user_name"].ToString(), user_name = row["user_name"].ToString(), company_name = row["company_name"].ToString(), notes = row["notes"].ToString(), login_status = row["login_status"].ToString(), }; shopList.Add(shop); } var data = JsonUtils.SerializeObjectToString(shopList); return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"c\":\"" + EncrypUtil.Encryption(r2) + "\"}"; } } return "{\"code\":19999,\"msg\":\"未知错误\"}"; } //获取一个手机登录号码下特定ID的店铺 public string GetOneIdShop(string inputData) { if (!string.IsNullOrEmpty(inputData)) { var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name"); var login_name = RegexUtils.GetStringQuery(ref inputData, "login_name"); var shop_id = RegexUtils.GetStringQuery(ref inputData, "shop_id"); var password = RegexUtils.GetStringQuery(ref inputData, "password"); int r2 = 0; int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2); string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); string sql = "select id,login_name,login_pass,cookie,cookie2,shop_id,shop_account,sub_user_name,user_name from kjd.shop where user_name='" + user_name + "' and login_name='" + login_name + "' and shop_id='" + shop_id + "'"; var dt = mySql.ExecuteDataTable(sql); mySql.Close(); if (dt != null) { List shopList = new List(); foreach (DataRow row in dt.Rows) { ShopParam shop = new ShopParam { id = Convert.ToInt32(row["id"]), login_name = row["login_name"].ToString(), login_pass = row["login_pass"].ToString(), cookie = row["cookie"].ToString(), cookie2 = row["cookie2"].ToString(), shop_id = row["shop_id"].ToString(), shop_account = row["shop_account"].ToString(), sub_user_name = row["sub_user_name"].ToString(), user_name = row["user_name"].ToString(), company_name = row["company_name"].ToString(), notes = row["notes"].ToString(), login_status = row["login_status"].ToString(), }; shopList.Add(shop); } var data = JsonUtils.SerializeObjectToString(shopList); return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"c\":\"" + EncrypUtil.Encryption(r2) + "\"}"; } } return "{\"code\":19999,\"msg\":\"未知错误\"}"; } public string AddShop(string inputData, bool isAdmin=false) { if (!string.IsNullOrEmpty(inputData)) { string user_name = RegexUtils.GetStringQuery(ref inputData, "user_name"); if (isAdmin) user_name = RegexUtils.GetStringQuery(ref inputData, "shop_user_name"); string login_name = RegexUtils.GetStringQuery(ref inputData, "login_name"); string login_pass = RegexUtils.GetStringQuery(ref inputData, "login_pass"); string sub_user_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "sub_user_name")); string cookie = RegexUtils.GetStringQuery(ref inputData, "cookie"); string cookie2 = RegexUtils.GetStringQuery(ref inputData, "cookie2"); string shop_id = RegexUtils.GetStringQuery(ref inputData, "shop_id"); string shop_account = RegexUtils.GetStringQuery(ref inputData, "shop_account"); string group_name = RegexUtils.GetStringQuery(ref inputData, "group_name"); string notes = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "notes")); int r2 = 0; int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2); if (string.IsNullOrEmpty(user_name)) { return "{\"code\":500,\"msg\":\"没有用户名\"}"; } if (string.IsNullOrEmpty(login_name)) { return "{\"code\":501,\"msg\":\"没有店铺登录名\"}"; } string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); string sql = ""; if (string.IsNullOrEmpty(shop_id)) sql = "select exists (select 1 from kjd.shop where login_name='" + login_name + "' and user_name='" + user_name + "')"; else sql = "select exists (select 1 from kjd.shop where login_name='" + login_name + "' and user_name='" + user_name + "' and shop_id='" + shop_id + "')"; var exist = mySql.ExecuteFirstInt(sql); if (exist>0) { mySql.Close(); return "{\"code\":500,\"msg\":\"店铺" + login_name +" " + shop_account + "已存在\"}"; } sql = "insert into kjd.shop (login_name,login_pass,cookie,cookie2,shop_account,shop_id,sub_user_name,user_name,group_name,notes,add_time,mdy_time) " + "values ('" + login_name + "','" + login_pass + "','" + cookie + "','" + cookie2 + "','" + shop_account + "','" + shop_id + "','" + sub_user_name + "','" + user_name + "','" + group_name + "','" + notes + "','" + 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\":200,\"msg\":\"success\"}"; } } return "{\"code\":19999,\"msg\":\"未知错误\"}"; } public string MdyShop(string inputData, bool isAdmin=false) { if (!string.IsNullOrEmpty(inputData)) { string user_name = RegexUtils.GetStringQuery(ref inputData, "user_name"); if (isAdmin) user_name = RegexUtils.GetStringQuery(ref inputData, "shop_user_name"); string login_name = RegexUtils.GetStringQuery(ref inputData, "login_name"); string login_pass = RegexUtils.GetStringQuery(ref inputData, "login_pass"); string sub_user_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "sub_user_name")); string cookie = RegexUtils.GetStringQuery(ref inputData, "cookie"); string cookie2 = RegexUtils.GetStringQuery(ref inputData, "cookie2"); string new_shop_id = RegexUtils.GetStringQuery(ref inputData, "new_shop_id"); string old_shop_id = RegexUtils.GetStringQuery(ref inputData, "shop_id"); string shop_account = RegexUtils.GetStringQuery(ref inputData, "shop_account"); string group_name = RegexUtils.GetStringQuery(ref inputData, "group_name"); string notes = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "notes")); string login_status = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "login_status")); int r2 = 0; int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2); if (string.IsNullOrEmpty(user_name)) { return "{\"code\":500,\"msg\":\"没有用户名\"}"; } if (string.IsNullOrEmpty(login_name)) { return "{\"code\":501,\"msg\":\"没有店铺登录名\"}"; } string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); string sql = "update kjd.shop set"; if (login_pass != null) sql += " login_pass='" + login_pass + "',"; if (cookie != null) sql += " cookie='" + cookie + "',"; if (cookie2 != null) sql += " cookie2='" + cookie2 + "',"; if (new_shop_id != null) sql += " shop_id='" + new_shop_id + "',"; if (shop_account != null) sql += " shop_account='" + shop_account + "',"; if (sub_user_name != null) sql += " sub_user_name='" + sub_user_name + "',"; if (group_name != null) sql += " group_name='" + group_name + "',"; if (notes != null) sql += " notes='" + notes + "',"; if (login_status != null) sql += " login_status='" + login_status + "',"; sql = sql.TrimEnd(','); sql += " where login_name='" + login_name + "' and (user_name='" + user_name + "' or sub_user_name like '%" + user_name + "%')"; if (!string.IsNullOrEmpty(old_shop_id)) sql += " and shop_id='" + old_shop_id + "'"; var rst = mySql.ExecuteNonQuery(sql); mySql.Close(); if (rst) { return "{\"code\":200,\"msg\":\"success\"}"; } } return "{\"code\":19999,\"msg\":\"未知错误\"}"; } public string MdyCookieAndLoginStatus(string inputData) { if (!string.IsNullOrEmpty(inputData)) { string login_name = RegexUtils.GetStringQuery(ref inputData, "login_name"); string cookie = RegexUtils.GetStringQuery(ref inputData, "cookie"); string cookie2 = RegexUtils.GetStringQuery(ref inputData, "cookie2"); string login_status = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "login_status")); string login_status2 = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "login_status2")); int r2 = 0; int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2); if (string.IsNullOrEmpty(login_name)) { return "{\"code\":500,\"msg\":\"店铺没有登录名\"}"; } string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); string sql = "update kjd.shop set"; if (cookie != null) sql += " cookie='" + cookie + "',"; if (cookie2 != null) sql += " cookie2='" + cookie2 + "',"; if (login_status != null) sql += " login_status='" + login_status + "',"; if (login_status2 != null) sql += " login_status2='" + login_status2 + "',"; sql = sql.TrimEnd(','); sql += " where login_name='" + login_name + "'"; var rst = mySql.ExecuteNonQuery(sql); mySql.Close(); if (rst) { return "{\"code\":200,\"msg\":\"success\"}"; } } return "{\"code\":19999,\"msg\":\"未知错误\"}"; } public string MdyAdsCookieAndLoginStatus(string inputData) { if (!string.IsNullOrEmpty(inputData)) { string shop_id = RegexUtils.GetStringQuery(ref inputData, "shop_id"); string ad_url = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "ad_url")); string ad_seller_unique_id = RegexUtils.GetStringQuery(ref inputData, "ad_seller_unique_id"); string ad_login_status = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "ad_login_status")); string ad_cookie = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "ad_cookie")); int r2 = 0; int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2); if (string.IsNullOrEmpty(shop_id)) { return "{\"code\":500,\"msg\":\"店铺没有登录名\"}"; } string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); string sql = "update kjd.shop set"; if (ad_url != null) sql += " ad_url='" + ad_url + "',"; if (ad_seller_unique_id != null) sql += " ad_seller_unique_id='" + ad_seller_unique_id + "',"; if (ad_login_status != null) sql += " ad_login_status='" + ad_login_status + "',"; if (ad_cookie != null) sql += " ad_cookie='" + ad_cookie + "',"; sql = sql.TrimEnd(','); sql += " where shop_id='" + shop_id + "'"; var rst = mySql.ExecuteNonQuery(sql); mySql.Close(); if (rst) { return "{\"code\":200,\"msg\":\"success\"}"; } } return "{\"code\":19999,\"msg\":\"未知错误\"}"; } public string DelShop(string inputData, bool isAdmin=false) { if (!string.IsNullOrEmpty(inputData)) { var login_name = RegexUtils.GetStringQuery(ref inputData, "login_name"); var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name"); if (isAdmin) user_name = RegexUtils.GetStringQuery(ref inputData, "shop_user_name"); var shop_id = RegexUtils.GetStringQuery(ref inputData, "shop_id"); var password = RegexUtils.GetStringQuery(ref inputData, "password"); int r2 = 0; int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2); if (string.IsNullOrEmpty(user_name)) { return "{\"code\":500,\"msg\":\"没有用户名\"}"; } if (string.IsNullOrEmpty(login_name)) { return "{\"code\":501,\"msg\":\"没有店铺登录名\"}"; } string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); string sql = "delete from kjd.shop where user_name='" + user_name + "' and login_name='" + login_name + "'"; if (!string.IsNullOrEmpty(shop_id)) sql += " and shop_id='" + shop_id + "'"; var rst = mySql.ExecuteNonQuery(sql); mySql.Close(); if (rst) { return "{\"code\":200,\"msg\":\"success\"}"; } } return "{\"code\":19999,\"msg\":\"未知错误\"}"; } /// /// 设置店铺的二级超管 /// /// public string SetShopSubSa(string inputData) { if (!string.IsNullOrEmpty(inputData)) { var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt(); string time1 = RegexUtils.GetStringQuery(ref inputData, "code"); if (time1 != EncrypUtil.Encryption(time)) return "{\"code\":50000,\"msg\":\"校验失败\"}"; var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'"); if (string.IsNullOrEmpty(user_name)) { return "{\"code\":50001,\"msg\":\"没有用户名\"}"; } var id = RegexUtils.GetStringQuery(ref inputData, "db_id")?.Replace("'", "\\'"); var login_name = RegexUtils.GetStringQuery(ref inputData, "shop_login_name")?.Replace("'", "\\'"); var operate_sub_sa_name = RegexUtils.GetStringQuery(ref inputData, "operate_sub_sa_name")?.Replace("'", "\\'"); if (string.IsNullOrEmpty(id) && string.IsNullOrEmpty(login_name)) { return "{\"code\":50002,\"msg\":\"未选择任何待上传\"}"; } string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); string sql = "update kjd.shop set"; if (operate_sub_sa_name != null) sql += " operate_sub_sa_name='" + operate_sub_sa_name + "',"; sql += " add_sub_sa_time='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',"; sql = sql.TrimEnd(','); if (!string.IsNullOrEmpty(id)) sql += " where id in (" + id + ")"; else if (!string.IsNullOrEmpty(login_name)) sql += " where login_name in ('" + login_name.Replace(",", "','") + "')"; else sql += " where 1=2"; 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 GetShopCardCodeList(string inputData) { if (!string.IsNullOrEmpty(inputData)) { var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name"); var password = RegexUtils.GetStringQuery(ref inputData, "password"); var search_card_code_id = RegexUtils.GetStringQuery(ref inputData, "search_card_code_id"); var search_shop_id = RegexUtils.GetStringQuery(ref inputData, "search_shop_id"); var search_shop_name = RegexUtils.GetStringQuery(ref inputData, "search_shop_name"); var search_notes = RegexUtils.GetStringQuery(ref inputData, "search_notes"); var card_code_ids = RegexUtils.GetStringQuery(ref inputData, "card_code_ids")?.Replace("'", ""); var sort_field = RegexUtils.GetStringQuery(ref inputData, "sort_field")?.Replace("'", ""); if (!string.IsNullOrWhiteSpace(card_code_ids)) { List shopIdLst = card_code_ids.Split(',').ToList(); card_code_ids = "'" + string.Join("','", shopIdLst) + "'"; } var shop_ids = RegexUtils.GetStringQuery(ref inputData, "shop_ids")?.Replace("'", ""); if (!string.IsNullOrWhiteSpace(shop_ids)) { List shopIdLst = shop_ids.Split(',').ToList(); shop_ids = "'" + string.Join("','", shopIdLst) + "'"; } var shop_names = RegexUtils.GetStringQuery(ref inputData, "shop_names"); if (!string.IsNullOrWhiteSpace(shop_names)) { List shopNameLst = shop_names.Split(',').ToList(); shop_names = "'" + string.Join("','", shopNameLst) + "'"; } var list_notes = RegexUtils.GetStringQuery(ref inputData, "list_notes"); if (!string.IsNullOrWhiteSpace(list_notes)) { List notesLst = list_notes.Split(',').ToList(); list_notes = "'" + string.Join("','", notesLst) + "'"; } var page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt(); var page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(); if (page_size == 0) page_size = 50; int r2 = 0; int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2); string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); string sql = "SELECT COUNT(s.id) FROM kjd.jit_card_code s WHERE 1=1"; //where子句 string where = ""; if (!string.IsNullOrWhiteSpace(search_card_code_id)) where += " and s.card_code_id like '%" + search_card_code_id + "%'"; if (!string.IsNullOrWhiteSpace(search_shop_id)) where += " and s.shop_id like '%" + search_shop_id + "%'"; if (!string.IsNullOrWhiteSpace(search_shop_name)) where += " and s.shop_account like '%" + search_shop_name + "%'"; if (!string.IsNullOrWhiteSpace(search_notes)) where += " and s.notes like '%" + search_notes + "%'"; if (!string.IsNullOrWhiteSpace(card_code_ids)) where += " and s.card_code_id in (" + card_code_ids + ")"; if (!string.IsNullOrWhiteSpace(shop_ids)) where += " and s.shop_id in (" + shop_ids + ")"; if (!string.IsNullOrWhiteSpace(shop_names)) where += " and s.shop_account in (" + shop_names + ")"; if (!string.IsNullOrWhiteSpace(list_notes)) where += " and s.notes in (" + list_notes + ")"; sql += where; var count = mySql.ExecuteRowCount(sql); DataTable dt; if (count == 0) { dt = new DataTable(); } else { sql = "SELECT s.* FROM kjd.jit_card_code s WHERE 1=1"; sql += where; // where 子句 // 排序 if (sort_field == "expire_time") sql += " ORDER BY s.expire_time DESC"; else sql += " ORDER BY s.id DESC"; sql += " LIMIT " + Math.Max(page - 1, 0) * page_size + "," + page_size; dt = mySql.ExecuteDataTable(sql); } mySql.Close(); if (dt != null) { List cardCodeList = new List(); foreach (DataRow row in dt.Rows) { JitCardCodeParam cardCode = new JitCardCodeParam { id = Convert.ToInt32(row["id"]), shop_id = row["shop_id"].ToString(), shop_account = row["shop_account"].ToString(), add_time = (DateTime)row["add_time"], active_time = row["active_time"].IsNullOrEmpty() ? new DateTime?() : Convert.ToDateTime(row["active_time"]), expire_time = row["expire_time"].IsNullOrEmpty() ? new DateTime?() : Convert.ToDateTime(row["expire_time"]), card_code_id = row["card_code_id"].ToString(), notes = row["notes"].ToString(), }; cardCodeList.Add(cardCode); } var data = JsonUtils.SerializeObjectToString(cardCodeList); return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"count\":" + count + "}"; } } return "{\"code\":19999,\"msg\":\"未知错误\"}"; } public string CreateShopCardCode(string inputData) { if (!string.IsNullOrEmpty(inputData)) { var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt(); string time1 = RegexUtils.GetStringQuery(ref inputData, "code"); if (time1 != EncrypUtil.Encryption(time)) return "{\"code\":50000,\"msg\":\"校验失败\"}"; var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'"); if (string.IsNullOrEmpty(user_name)) { return "{\"code\":50001,\"msg\":\"没有用户名\"}"; } var create_count = RegexUtils.GetStringQuery(ref inputData, "create_count")?.Replace("'", "\\'"); if (string.IsNullOrEmpty(create_count)) { return "{\"code\":50002,\"msg\":\"未选择生成数量\"}"; } string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); string sql = "insert into kjd.jit_card_code (card_code_id) values "; Random random = new Random(Guid.NewGuid().GetHashCode()); for (int i = 0; i < create_count.ParseToInt(); i++) { sql += "('" + GenerateCardCode(random, 16) + "'),"; } sql = sql.TrimEnd(',') + ";"; 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 DelShopCardCode(string inputData) { if (!string.IsNullOrEmpty(inputData)) { var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt(); string time1 = RegexUtils.GetStringQuery(ref inputData, "code"); if (time1 != EncrypUtil.Encryption(time)) return "{\"code\":50000,\"msg\":\"校验失败\"}"; var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'"); if (string.IsNullOrEmpty(user_name)) { return "{\"code\":50001,\"msg\":\"没有用户名\"}"; } var del_ids = RegexUtils.GetStringQuery(ref inputData, "del_ids")?.Replace("'", "\\'"); if (string.IsNullOrEmpty(del_ids)) { return "{\"code\":50002,\"msg\":\"未选择删除数据\"}"; } string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); string sql = "delete from kjd.jit_card_code where id in (" + del_ids + ");"; 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 ActiveJitCardCode(string inputData) { if (!string.IsNullOrEmpty(inputData)) { var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt(); string time1 = RegexUtils.GetStringQuery(ref inputData, "code"); if (time1 != EncrypUtil.Encryption(time)) return "{\"code\":50000,\"msg\":\"校验失败\"}"; var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'"); if (string.IsNullOrEmpty(user_name)) { return "{\"code\":50001,\"msg\":\"没有用户名\"}"; } var shop_id = RegexUtils.GetStringQuery(ref inputData, "shop_id")?.Replace("'", "\\'"); var card_code_id = RegexUtils.GetStringQuery(ref inputData, "card_code_id")?.Replace("'", "\\'"); var shop_account = RegexUtils.GetStringQuery(ref inputData, "shop_account")?.Replace("'", "\\'"); if (string.IsNullOrEmpty(shop_id)) { return "{\"code\":50002,\"msg\":\"未输入店铺\"}"; } if (string.IsNullOrEmpty(card_code_id)) { return "{\"code\":50002,\"msg\":\"未输入卡密\"}"; } string conn = "ConnKJD"; MysqlUtils mySql = new MysqlUtils(conn); string sql = "select card_code_id from kjd.jit_card_code where card_code_id = \'" + card_code_id + "\' and active_time is null;"; var rst = mySql.ExecuteExists(sql); if (!rst) { mySql.Close(); if (string.IsNullOrEmpty(mySql.Message)) { return "{\"code\":500,\"msg\":\"JIT卡密不存在或已激活\"}"; } else { return "{\"code\":500,\"msg\":\"" + mySql.Message + "\"}"; } } sql = "select s.shop_id,cc.jit_expire_time from kjd.shop s" + " LEFT JOIN (SELECT shop_id, MAX(expire_time) as jit_expire_time FROM kjd.jit_card_code GROUP BY shop_id) cc ON s.shop_id=cc.shop_id" + " where s.shop_id = '" + shop_id + "';"; var dt = mySql.ExecuteDataTable(sql); if (dt == null || !mySql.Message.IsNullOrEmpty()) { mySql.Close(); return "{\"code\":500,\"msg\":\"" + mySql.Message + "\"}"; } else if (dt.Rows.Count == 0) { mySql.Close(); return "{\"code\":500,\"msg\":\"店铺不存在\"}"; } var row = dt.Rows[0]; ShopParam shop = new ShopParam { shop_id = row["shop_id"].ToString(), jit_expire_time = row["jit_expire_time"].IsNullOrEmpty() ? new DateTime?() : Convert.ToDateTime(row["jit_expire_time"]), }; DateTime activeTime = DateTime.Now; DateTime expireTime = DateTime.Now.Date.AddMonths(1); if (shop.jit_expire_time != null && shop.jit_expire_time.Value.Date > DateTime.Now.Date) expireTime = shop.jit_expire_time.Value.Date.AddMonths(1); shop.jit_expire_time = expireTime; sql = "update kjd.jit_card_code set active_time='" + activeTime.ToString("yyyy/MM/dd HH:mm:ss") + "'," + "expire_time='" + expireTime.ToString("yyyy/MM/dd HH:mm:ss") + "'," + "shop_id='" + shop_id + "',shop_account='" + shop_account + "'" + " where card_code_id='" + card_code_id + "';"; rst = mySql.ExecuteNonQuery(sql); mySql.Close(); if (rst) { return "{\"code\":200,\"expire_time\":\"" + expireTime + "\",\"msg\":\"success\"}"; } else { return "{\"code\":500,\"msg\":\"" + mySql.Message + "\"}"; } } return "{\"code\":19999,\"msg\":\"输入为空\"}"; } private static readonly char[] chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".ToCharArray(); // 增加特殊字符 public static string GenerateCardCode(Random random, int length) { StringBuilder result = new StringBuilder(length); for (int i = 0; i < length; i++) { result.Append(chars[random.Next(chars.Length)]); } return result.ToString(); } } }