Browse Source

新增hy数据源,新增qt/jd/类目导出

liangku_skuoptimazation
shanji 1 year ago
parent
commit
71d26b971f
  1. 6
      BBWYB.Server.API/Controllers/DataRepairController.cs
  2. 3
      BBWYB.Server.API/Program.cs
  3. 3
      BBWYB.Server.API/appsettings.json
  4. 41
      BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
  5. 2
      BBWYB.Server.Business/FreeSqlMultiDBManager.cs
  6. 2
      BBWYB.Server.Model/Db/HY/HY重新生成.bat
  7. 47
      BBWYB.Server.Model/Db/HY/Hycats.cs
  8. 67
      BBWYB.Server.Model/Db/HY/__razor.cshtml.txt
  9. 2
      BBWYB.Server.Model/Db/HY/__重新生成.bat

6
BBWYB.Server.API/Controllers/DataRepairController.cs

@ -121,5 +121,11 @@ namespace BBWYB.Server.API.Controllers
{
dataRepairBusiness.RepairPurchaserLocation();
}
[HttpPost]
public void ExportQTSpuAndJDSku()
{
dataRepairBusiness.ExportQTSpuAndJDSku();
}
}
}

3
BBWYB.Server.API/Program.cs

@ -34,11 +34,14 @@ var fsql2 = new FreeSql.FreeSqlBuilder().UseConnectionString(FreeSql.DataType.My
var fsql_bbwyc = new FreeSql.FreeSqlBuilder().UseConnectionString(FreeSql.DataType.MySql, configuration.GetConnectionString("BBWYCDB")).Build();
var fsql_hy = new FreeSql.FreeSqlBuilder().UseConnectionString(FreeSql.DataType.MySql, configuration.GetConnectionString("HYDB")).Build();
services.AddSingleton(new FreeSqlMultiDBManager()
{
BBWYBfsql = fsql,
MDSfsql = fsql2,
BBWYCfsql = fsql_bbwyc,
HYfsql = fsql_hy
});
services.AddSingleton<NLogManager>();

3
BBWYB.Server.API/appsettings.json

@ -11,7 +11,8 @@
//"DB": "data source=rm-bp1508okrh23710yfao.mysql.rds.aliyuncs.com;port=3306;user id=qyroot;password=kaicn1132+-;initial catalog=bbwy;charset=utf8;sslmode=none;"
"DB": "data source=rm-bp1508okrh23710yfao.mysql.rds.aliyuncs.com;port=3306;user id=qyroot;password=kaicn1132+-;initial catalog=bbwyb;charset=utf8;sslmode=none;",
"BBWYCDB": "data source=rm-bp1508okrh23710yfao.mysql.rds.aliyuncs.com;port=3306;user id=qyroot;password=kaicn1132+-;initial catalog=bbwy_test;charset=utf8;sslmode=none;",
"MDSDB": "data source=rm-bp1508okrh23710yfao.mysql.rds.aliyuncs.com;port=3306;user id=qyroot;password=kaicn1132+-;initial catalog=mds;charset=utf8;sslmode=none;"
"MDSDB": "data source=rm-bp1508okrh23710yfao.mysql.rds.aliyuncs.com;port=3306;user id=qyroot;password=kaicn1132+-;initial catalog=mds;charset=utf8;sslmode=none;",
"HYDB": "data source=rm-bp1508okrh23710yfao.mysql.rds.aliyuncs.com;port=3306;user id=qyroot;password=kaicn1132+-;initial catalog=jdhy;charset=utf8;sslmode=none;"
},
"AllowedSwagger": true,
"Secret": "D96BFA5B-F2AF-45BC-9342-5A55C3F9BBB0",

41
BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs

@ -4,6 +4,7 @@ using BBWYB.Common.Log;
using BBWYB.Common.Models;
using BBWYB.Server.Model;
using BBWYB.Server.Model.Db;
using BBWYB.Server.Model.Db.HY;
using BBWYB.Server.Model.Dto;
using FreeSql;
using SDKAdapter;
@ -12,6 +13,7 @@ using SDKAdapter.OperationPlatform.Models;
using SDKAdapter.PurchasePlatform.Client;
using SDKAdapter.PurchasePlatform.Models;
using System.Data;
using System.Reflection;
using System.Text.RegularExpressions;
using Yitter.IdGenerator;
@ -1247,6 +1249,45 @@ namespace BBWYB.Server.Business
//Console.WriteLine(location);
return location;
}
public void ExportQTSpuAndJDSku()
{
var qtlist = fsql.Select<OrderSku>()
.Where(s1 => !string.IsNullOrEmpty(s1.BelongSkuId))
.GroupBy(s1 => s1.ProductId)
.WithTempQuery(g => new { MaxId = g.Max(g.Value.Id) })
.From<OrderSku>()
.InnerJoin((s1, s2) => s1.MaxId == s2.Id)
.ToList((s1, s2) => new { s2.ProductId, s2.BelongSkuId, s2.CreateTime });
var jdSkuIdList = qtlist.Select(x => x.BelongSkuId).Distinct().ToList();
var jdSkuList = freeSqlMultiDBManager.BBWYCfsql.Select<BBWYB.Server.Model.Db.BBWY.ProductSku>(jdSkuIdList).ToList();
var hycatsList = freeSqlMultiDBManager.HYfsql.Select<Model.Db.HY.HyCats>().ToList();
var result = new List<string>();
foreach (var qt in qtlist)
{
HyCats l1category = null;
HyCats l2category = null;
HyCats l3category = null;
var ps = jdSkuList.FirstOrDefault(x => x.Id == qt.BelongSkuId);
if (ps != null && ps.CategoryId != null)
{
l3category = hycatsList.FirstOrDefault(x => x.Id == ps.CategoryId.ToString());
if (l3category != null && !string.IsNullOrEmpty(l3category.ParentId))
{
l2category = hycatsList.FirstOrDefault(x => x.Id == l3category.ParentId);
if (l2category != null && !string.IsNullOrEmpty(l2category.ParentId))
l1category = hycatsList.FirstOrDefault(x => x.Id == l2category.ParentId);
}
}
result.Add($"{qt.ProductId},{qt.BelongSkuId},{l1category?.Id},{l1category?.Name},{l2category?.Id},{l2category?.Name},{l3category?.Id},{l3category?.Name}");
}
result.Insert(0, "拳探spu,京东sku,京东1级类目Id,京东1级类目名称,京东2级类目Id,京东2级类目名称,京东3级类目Id,京东3级类目名称");
var path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "ExportQTSpuAndJDSku.csv");
System.IO.File.WriteAllLines(path, result, System.Text.Encoding.UTF8);
}
}
}

2
BBWYB.Server.Business/FreeSqlMultiDBManager.cs

@ -6,5 +6,7 @@
public IFreeSql MDSfsql { get; set; }
public IFreeSql BBWYCfsql { get; set; }
public IFreeSql HYfsql { get; set; }
}
}

2
BBWYB.Server.Model/Db/HY/HY重新生成.bat

@ -0,0 +1,2 @@
FreeSql.Generator -Razor 1 -NameOptions 1,0,0,0 -NameSpace BBWYB.Server.Model.Db -DB "MySql,data source=rm-bp1508okrh23710yfao.mysql.rds.aliyuncs.com;port=3306;user id=qyroot;password=kaicn1132+-;initial catalog=jdhy;charset=utf8;sslmode=none;" -FileName "{name}.cs"

47
BBWYB.Server.Model/Db/HY/Hycats.cs

@ -0,0 +1,47 @@
using FreeSql.DatabaseModel;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Threading.Tasks;
using Newtonsoft.Json;
using FreeSql.DataAnnotations;
namespace BBWYB.Server.Model.Db.HY
{
[Table(Name = "hycats", DisableSyncStructure = true)]
public partial class HyCats
{
[Column(StringLength = 50, IsPrimary = true, IsNullable = false)]
public string Id { get; set; }
/// <summary>
/// 是否最子级
/// </summary>
[Column(DbType = "tinyint")]
public sbyte IsLeaf { get; set; }
/// <summary>
/// 级别
/// </summary>
[Column(DbType = "int")]
public int Level { get; set; }
/// <summary>
/// 名称
/// </summary>
[Column(IsNullable = false)]
public string Name { get; set; }
/// <summary>
/// 父级ID
/// </summary>
[Column(StringLength = 50)]
public string ParentId { get; set; }
}
}

67
BBWYB.Server.Model/Db/HY/__razor.cshtml.txt

@ -0,0 +1,67 @@
using FreeSql.DatabaseModel;@{
var gen = Model as RazorModel;
Func<string, string> GetAttributeString = attr => {
if (string.IsNullOrEmpty(attr)) return "";
return string.Concat(", ", attr.Trim('[', ']'));
};
Func<string, string> GetDefaultValue = defval => {
if (string.IsNullOrEmpty(defval)) return "";
return " = " + defval + ";";
};
}@{
switch (gen.fsql.Ado.DataType) {
case FreeSql.DataType.PostgreSQL:
@:using System;
@:using System.Collections;
@:using System.Collections.Generic;
@:using System.Linq;
@:using System.Reflection;
@:using System.Threading.Tasks;
@:using Newtonsoft.Json;
@:using FreeSql.DataAnnotations;
@:using System.Net;
@:using Newtonsoft.Json.Linq;
@:using System.Net.NetworkInformation;
@:using NpgsqlTypes;
@:using Npgsql.LegacyPostgis;
break;
case FreeSql.DataType.SqlServer:
case FreeSql.DataType.MySql:
default:
@:using System;
@:using System.Collections;
@:using System.Collections.Generic;
@:using System.Linq;
@:using System.Reflection;
@:using System.Threading.Tasks;
@:using Newtonsoft.Json;
@:using FreeSql.DataAnnotations;
break;
}
}
namespace @gen.NameSpace {
@if (string.IsNullOrEmpty(gen.table.Comment) == false) {
@:/// <summary>
@:/// @gen.table.Comment.Replace("\r\n", "\n").Replace("\n", "\r\n /// ")
@:/// </summary>
}
[JsonObject(MemberSerialization.OptIn)@GetAttributeString(gen.GetTableAttribute())]
public partial class @gen.GetCsName(gen.FullTableName) {
@foreach (var col in gen.columns) {
if (string.IsNullOrEmpty(col.Comment) == false) {
@:/// <summary>
@:/// @col.Comment.Replace("\r\n", "\n").Replace("\n", "\r\n /// ")
@:/// </summary>
}
@:@("[JsonProperty" + GetAttributeString(gen.GetColumnAttribute(col, true)) + "]")
@:public @gen.GetCsType(col) @gen.GetCsName(col.Name) { get; set; }@GetDefaultValue(gen.GetColumnDefaultValue(col, false))
@:
}
}
@gen.GetMySqlEnumSetDefine()
}

2
BBWYB.Server.Model/Db/HY/__重新生成.bat

@ -0,0 +1,2 @@

FreeSql.Generator -Razor "__razor.cshtml.txt" -NameOptions 1,0,0,0 -NameSpace BBWYB.Server.Model.Db -DB "MySql,data source=rm-bp1508okrh23710yfao.mysql.rds.aliyuncs.com;port=3306;user id=qyroot;password=kaicn1132+-;initial catalog=jdhy;charset=utf8;sslmode=none;" -FileName "{name}.cs"
Loading…
Cancel
Save