diff --git a/KJD_WebService/BLL/WXXD/WXOrderManage.cs b/KJD_WebService/BLL/WXXD/WXOrderManage.cs index 1327f44..7ea75b0 100644 --- a/KJD_WebService/BLL/WXXD/WXOrderManage.cs +++ b/KJD_WebService/BLL/WXXD/WXOrderManage.cs @@ -451,6 +451,194 @@ namespace KJD_Web.BLL.WXXD } + public string WXAddMdyBuyProdMapSkus(string inputData) + { + if (!string.IsNullOrEmpty(inputData)) + { + if (!WXUserManage.GetSign(inputData)) + return "{\"code\":999,\"msg\":\"校验失败\"}"; + + // 软件用户名 + string spu_code = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "spu_code"))?.Replace("'", "\\'"); + string user_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "main_user_name"))?.Replace("'", "\\'"); + string map_url = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "map_url"))?.Replace("'", "\\'"); + string map_goods_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "map_goods_name"))?.Replace("'", "\\'"); + string map_goods_id = RegexUtils.GetStringQuery(ref inputData, "map_goods_id")?.Replace("'", "\\'"); + string map_skus = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "map_skus"))?.Replace("'", "\\'"); + string map_send_address = RegexUtils.GetStringQuery(ref inputData, "map_send_address")?.Replace("'", "\\'"); + string transit_warehouse_id = RegexUtils.GetStringQuery(ref inputData, "transit_warehouse_id")?.Replace("'", "\\'"); + + if (string.IsNullOrEmpty(spu_code)) + return "{\"code\":500,\"msg\":\"缺少系统商品编号\"}"; + if (string.IsNullOrEmpty(user_name)) + return "{\"code\":500,\"msg\":\"缺少用户名\"}"; + if (string.IsNullOrEmpty(map_url) && string.IsNullOrEmpty(map_goods_id)) + return "{\"code\":500,\"msg\":\"缺少采购商品信息\"}"; + + string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; + MysqlUtils mySql = new MysqlUtils(conn); + + string sql = "SELECT 1 FROM `bxx`.`product_buy_map_skus` where user_name='" + user_name + "' AND spu_code='" + spu_code + "' AND map_goods_id='" + map_goods_id + "'"; + string where = ""; + sql += where; + var exist = mySql.ExecuteFirstInt(sql); + if (!mySql.Message.IsNullOrEmpty()) + { + mySql.Close(); + return "{\"code\":501,\"msg\":\"" + mySql.Message + "\"}"; + } + + if (exist == 0) + { + sql = " INSERT INTO `bxx`.`product_buy_map_skus` (user_name,spu_code,map_url,map_goods_name,map_goods_id,map_skus,map_send_address,transit_warehouse_id)" + + " VALUES (@user_name,@spu_code,@map_url,@map_goods_name,@map_goods_id,@map_skus,@map_send_address,@transit_warehouse_id);"; + } + else + { + sql = "UPDATE `bxx`.`product_buy_map_skus` SET "; + if (map_url != null) + sql += " map_url=@map_url,"; + if (map_goods_name != null) + sql += " map_goods_name=@map_goods_name,"; + if (map_skus != null) + sql += " map_skus=@map_skus,"; + if (map_send_address != null) + sql += " map_send_address=@map_send_address,"; + if (transit_warehouse_id != null) + sql += " transit_warehouse_id=@transit_warehouse_id,"; + sql = sql.TrimEnd(','); + sql += " WHERE user_name=@user_name and spu_code=@spu_code;"; + } + + List paramLst = new List(); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "user_name", Value = user_name, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "spu_code", Value = spu_code, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "map_url", Value = map_url, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "map_goods_name", Value = map_goods_name, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "map_goods_id", Value = map_goods_id, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "map_skus", Value = map_skus, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "map_send_address", Value = map_send_address, }); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "transit_warehouse_id", Value = transit_warehouse_id, }); + var rows = mySql.ExecuteAffectedRows(sql, paramLst.ToArray()); + mySql.Close(); + if (string.IsNullOrEmpty(mySql.Message)) + { + if (rows > 0) + return "{\"code\":200,\"msg\":\"success\"}"; + else + return "{\"code\":200,\"msg\":\"数据操作失败,请重试\"}"; + } + else + { + return "{\"code\":50003,\"msg\":\"" + mySql.Message + "\"}"; + } + } + return "{\"code\":19999,\"msg\":\"输入为空\"}"; + } + + /// + /// 微信获取采购映射商品 + /// + /// + /// + public string WXGetBuyPordMapSkus(string inputData) + { + if (!string.IsNullOrEmpty(inputData)) + { + if (!WXUserManage.GetSign(inputData)) + return "{\"code\":999,\"msg\":\"校验失败\"}"; + var timeCalc = DateTime.Now; + + int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt(); + int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(200); + string spu_codes = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "spu_codes"))?.Replace("'", "\\'"); + string user_name = RegexUtils.GetStringQuery(ref inputData, "main_user_name")?.Replace("'", "\\'"); + string not_count = RegexUtils.GetStringQuery(ref inputData, "not_count")?.Replace("'", "\\'"); + if (string.IsNullOrEmpty(spu_codes)) + return "{\"code\":500,\"msg\":\"商品编码不能为空\"}"; + if (string.IsNullOrEmpty(user_name)) + return "{\"code\":500,\"msg\":\"用户名不能为空\"}"; + + string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; + MysqlUtils mySql = new MysqlUtils(conn); + + string sql = ""; + var count = -1; + + sql = "SELECT COUNT(*) FROM `bxx`.`product_buy_map_skus` WHERE 1=1"; + string where = ""; + if (spu_codes != null) + where += " and spu_code IN ('" + spu_codes.Replace(",", "','") + "')"; + if (user_name != null) + where += " and user_name='" + user_name + "'"; + sql += where; + sql += ";"; + + if (not_count == "false") + count = mySql.ExecuteRowCount(sql); + + DataTable dt; + if (count == 0) + { + dt = new DataTable(); + } + else + { + //sql = "SELECT * FROM `bxx`.`product_buy_map_skus` WHERE 1=1"; + //sql += where; + //sql += " order by id desc limit " + Math.Max(0, page - 1) * page_size + "," + page_size + ";"; + //dt = mySql.ExecuteDataTable(sql); + + sql = @" + SELECT * + FROM( + SELECT t.*,ROW_NUMBER() OVER (PARTITION BY spu_code ORDER BY mdy_time DESC) AS rn + FROM `bxx`.`product_buy_map_skus` t + ) AS ranked + WHERE rn <= 5" + where; + dt = mySql.ExecuteDataTable(sql); + } + mySql.Close(); + + if (dt != null) + { + try + { + List WXBuyMapInfoLst = new List(); + foreach (DataRow row in dt.Rows) + { + WXBuyMapInfoLst.Add(new WXBuyMapSkusInfo() + { + id = row["id"].ParseToInt(), + user_name = row["user_name"].ParseToNullableString(), + spu_code = row["spu_code"].ParseToNullableString(), + map_url = row["map_url"].ParseToNullableString(), + map_goods_name = row["map_goods_name"].ParseToNullableString(), + map_goods_id = row["map_goods_id"].ParseToNullableString(), + map_skus = row["map_skus"].ParseToNullableString(), + map_send_address = row["map_send_address"].ParseToNullableString(), + transit_warehouse_id = row["transit_warehouse_id"].ParseToNullableString(), + add_time = Convert.ToDateTime(row["add_time"]), + mdy_time = Convert.ToDateTime(row["mdy_time"]), + }); + } + JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }; + var data = JsonUtils.SerializeObjectToString(WXBuyMapInfoLst, jsonSetting); + var seconds = (DateTime.Now - timeCalc).TotalSeconds.ToString("0.000"); + return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"count\":" + count + ",\"seconds\":" + seconds + "}"; + } + catch (Exception ex) + { + return "{\"code\":500,\"msg\":\"" + ex.Message + "\",\"data\":[],\"count\":" + 0 + "}"; + } + } + else + { + return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"data\":[],\"count\":" + 0 + "}"; + } + } + return "{\"code\":19999,\"msg\":\"输入为空\"}"; + } /// @@ -476,7 +664,6 @@ namespace KJD_Web.BLL.WXXD string map_sku_id = RegexUtils.GetStringQuery(ref inputData, "map_sku_id")?.Replace("'", "\\'"); string map_send_address = RegexUtils.GetStringQuery(ref inputData, "map_send_address")?.Replace("'", "\\'"); string transit_warehouse_id = RegexUtils.GetStringQuery(ref inputData, "transit_warehouse_id")?.Replace("'", "\\'"); - string map_skus = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "map_skus"))?.Replace("'", "\\'"); if (string.IsNullOrEmpty(spu_code) || string.IsNullOrEmpty(sku_code)) return "{\"code\":500,\"msg\":\"缺少系统商品或SKU编号\"}"; diff --git a/KJD_WebService/Model/WxModel/WXBuyUrlNotesInfo.cs b/KJD_WebService/Model/WxModel/WXBuyUrlNotesInfo.cs index b065ca9..6c83fa8 100644 --- a/KJD_WebService/Model/WxModel/WXBuyUrlNotesInfo.cs +++ b/KJD_WebService/Model/WxModel/WXBuyUrlNotesInfo.cs @@ -37,4 +37,23 @@ namespace KJD_Web.Model.WxModel public DateTime add_time { get; set; } public DateTime mdy_time { get; set; } } + + + public class WXBuyMapSkusInfo + { + public long id { get; set; } + public string user_name { get; set; } + public string spu_code { get; set; } + public string map_url { get; set; } + public string map_goods_name { get; set; } + public string map_goods_id { get; set; } + public string map_skus { get; set; } + /// + /// 发货地(省,市) + /// + public string map_send_address { get; set; } + public string transit_warehouse_id { get; set; } + public DateTime add_time { get; set; } + public DateTime mdy_time { get; set; } + } } \ No newline at end of file diff --git a/KJD_WebService/WXOrderService.asmx.cs b/KJD_WebService/WXOrderService.asmx.cs index e0d495d..6d57967 100644 --- a/KJD_WebService/WXOrderService.asmx.cs +++ b/KJD_WebService/WXOrderService.asmx.cs @@ -319,8 +319,30 @@ namespace KJD_Web Context.Response.End(); } - [WebMethod] + public void wx_add_mdy_buy_prod_map_skus() + { + string jsontext = GetRequestJsonString(); + + var result = jsontext; + result = new WXOrderManage().WXAddMdyBuyProdMapSkus(jsontext); + + Context.Response.Write(result); + Context.Response.End(); + } + [WebMethod] + public void wx_get_buy_pord_map_skus() + { + string jsontext = GetRequestJsonString(); + + var result = jsontext; + result = new WXOrderManage().WXGetBuyPordMapSkus(jsontext); + + Context.Response.Write(result); + Context.Response.End(); + } + + [WebMethod] public void wx_add_mdy_buy_prod_map() { string jsontext = GetRequestJsonString(); @@ -331,6 +353,7 @@ namespace KJD_Web Context.Response.Write(result); Context.Response.End(); } + [WebMethod] public void wx_get_buy_prod_map() {