From 3b0f1e37eeb46560462eeade6fe8bbfa7996089c Mon Sep 17 00:00:00 2001
From: Putoo <290555932@qq.com>
Date: Wed, 17 Jun 2026 19:22:35 +0800
Subject: [PATCH] 12121
---
.../logdb/ot/game_broadcast.cs | 13 +
.../model/CheckTowerNeeds.cs | 30 ++
.../model/EquAwaken.cs | 1 -
.../model/EquAwakenData.cs | 36 ++
.../model/TowerNeed.cs | 16 +-
.../model/TowerNeeds.cs | 111 +++++
.../resource/game/game_dic.cs | 27 ++
.../resource/game/game_equ_awaken.cs | 39 ++
.../resource/game/game_equ_up.cs | 39 ++
Service/Application.Domain/Enum/GameEnum.cs | 5 +
.../Application.Domain/Enum/MessageEnum.cs | 8 +
.../Services/Interface/Equ/IGameEquService.cs | 20 +-
.../Services/Interface/Pub/IGameDicService.cs | 6 +
.../Services/Interface/Pub/IMessageService.cs | 7 +
.../Services/Service/Equ/GameEquService.cs | 97 +++++
.../Services/Service/Map/GameMapService.cs | 8 +-
.../Services/Service/Pub/GameDicService.cs | 19 +
.../Services/Service/Pub/MessageService.cs | 58 ++-
.../Application.Domain/Tool/Base/GameBus.cs | 165 ++++++-
.../Controllers/Map/MapController.cs | 4 +-
.../Controllers/Pub/EquController.cs | 403 ++++++++++++++++-
.../Controllers/User/BagController.cs | 14 +
.../Model/RequestParms/Equ/EquUpParms.cs | 7 +
.../RequestParms/User/CheckUserPropParms.cs | 6 +
Web/public/images/broad/award.gif | Bin 0 -> 58343 bytes
Web/public/images/broad/gift.gif | Bin 0 -> 4153 bytes
Web/public/images/broad/hot1.gif | Bin 0 -> 17732 bytes
Web/public/images/broad/promote.gif | Bin 0 -> 4501 bytes
Web/public/images/broad/remind.gif | Bin 0 -> 3657 bytes
Web/public/images/broad/system.gif | Bin 0 -> 2477 bytes
Web/src/components/Base/Aimage.vue | 6 +-
Web/src/components/Business/GameBroadcast.vue | 408 ++++++++++++++++++
.../components/Business/GamePropVerify.vue | 18 +
Web/src/pages/map/index.vue | 7 +-
Web/src/pages/prop/equ.vue | 90 +++-
Web/src/pages/user/bag/index.vue | 2 +-
Web/src/pages/user/equ/awaken.vue | 48 +++
Web/src/pages/user/equ/up.vue | 147 +++++++
Web/src/services/Index/EquService.ts | 35 ++
Web/src/services/user/BagService.ts | 11 +-
40 files changed, 1856 insertions(+), 55 deletions(-)
create mode 100644 Service/Application.Domain.Entity/logdb/ot/game_broadcast.cs
create mode 100644 Service/Application.Domain.Entity/model/CheckTowerNeeds.cs
create mode 100644 Service/Application.Domain.Entity/model/EquAwakenData.cs
create mode 100644 Service/Application.Domain.Entity/model/TowerNeeds.cs
create mode 100644 Service/Application.Domain.Entity/resource/game/game_dic.cs
create mode 100644 Service/Application.Domain.Entity/resource/game/game_equ_awaken.cs
create mode 100644 Service/Application.Domain.Entity/resource/game/game_equ_up.cs
create mode 100644 Service/Application.Domain/Services/Interface/Pub/IGameDicService.cs
create mode 100644 Service/Application.Domain/Services/Service/Pub/GameDicService.cs
create mode 100644 Service/Application.Web/Model/RequestParms/Equ/EquUpParms.cs
create mode 100644 Service/Application.Web/Model/RequestParms/User/CheckUserPropParms.cs
create mode 100644 Web/public/images/broad/award.gif
create mode 100644 Web/public/images/broad/gift.gif
create mode 100644 Web/public/images/broad/hot1.gif
create mode 100644 Web/public/images/broad/promote.gif
create mode 100644 Web/public/images/broad/remind.gif
create mode 100644 Web/public/images/broad/system.gif
create mode 100644 Web/src/components/Business/GameBroadcast.vue
create mode 100644 Web/src/components/Business/GamePropVerify.vue
create mode 100644 Web/src/pages/user/equ/awaken.vue
create mode 100644 Web/src/pages/user/equ/up.vue
diff --git a/Service/Application.Domain.Entity/logdb/ot/game_broadcast.cs b/Service/Application.Domain.Entity/logdb/ot/game_broadcast.cs
new file mode 100644
index 0000000..0ac16cb
--- /dev/null
+++ b/Service/Application.Domain.Entity/logdb/ot/game_broadcast.cs
@@ -0,0 +1,13 @@
+namespace Application.Domain.Entity;
+
+public class game_broadcast
+{
+ public string Id { get; set; }
+ public int area { get; set; }
+ public string code { get; set; }
+ public string userId { get; set; }
+ public string userNo { get; set; }
+ public string nick { get; set; }
+ public string msg { get; set; }
+ public long endTime { get; set; }
+}
\ No newline at end of file
diff --git a/Service/Application.Domain.Entity/model/CheckTowerNeeds.cs b/Service/Application.Domain.Entity/model/CheckTowerNeeds.cs
new file mode 100644
index 0000000..98f08a2
--- /dev/null
+++ b/Service/Application.Domain.Entity/model/CheckTowerNeeds.cs
@@ -0,0 +1,30 @@
+namespace Application.Domain.Entity;
+
+public class CheckTowerNeeds
+{
+ private bool _result;
+
+ public bool result
+ { get { return this._result; } set { this._result = value; } }
+
+ private System.Int32 _isDeal;
+
+ ///
+ /// 0不可交易1可交易
+ ///
+ public System.Int32 isDeal
+ { get { return this._isDeal; } set { this._isDeal = value; } }
+
+ private System.Int32 _isGive;
+
+ ///
+ /// 0不可交易1可交易
+ ///
+ public System.Int32 isGive
+ { get { return this._isGive; } set { this._isGive = value; } }
+
+ private List _Needs;
+
+ public List Needs
+ { get { return this._Needs; } set { this._Needs = value; } }
+}
\ No newline at end of file
diff --git a/Service/Application.Domain.Entity/model/EquAwaken.cs b/Service/Application.Domain.Entity/model/EquAwaken.cs
index f21bf14..352ba9b 100644
--- a/Service/Application.Domain.Entity/model/EquAwaken.cs
+++ b/Service/Application.Domain.Entity/model/EquAwaken.cs
@@ -31,7 +31,6 @@ public class EquAwaken
///
///
///
- [SqlSugar.SugarColumn(ColumnDataType = "varchar(max)", IsJson = true)]
public List awaken
{ get { return this._awaken; } set { this._awaken = value; } }
}
\ No newline at end of file
diff --git a/Service/Application.Domain.Entity/model/EquAwakenData.cs b/Service/Application.Domain.Entity/model/EquAwakenData.cs
new file mode 100644
index 0000000..f9312fa
--- /dev/null
+++ b/Service/Application.Domain.Entity/model/EquAwakenData.cs
@@ -0,0 +1,36 @@
+namespace Application.Domain.Entity;
+
+public class EquAwakenData
+{
+ private System.Int32 _lev;
+
+ ///
+ ///
+ ///
+ public System.Int32 lev
+ { get { return this._lev; } set { this._lev = value; } }
+
+ private System.Int32 _success;
+
+ ///
+ ///
+ ///
+ public System.Int32 success
+ { get { return this._success; } set { this._success = value; } }
+
+ private List _need;
+
+ ///
+ ///
+ ///
+ public List need
+ { get { return this._need; } set { this._need = value; } }
+
+ private List _attr;
+
+ ///
+ ///
+ ///
+ public List attr
+ { get { return this._attr; } set { this._attr = value; } }
+}
\ No newline at end of file
diff --git a/Service/Application.Domain.Entity/model/TowerNeed.cs b/Service/Application.Domain.Entity/model/TowerNeed.cs
index 373d076..f27a720 100644
--- a/Service/Application.Domain.Entity/model/TowerNeed.cs
+++ b/Service/Application.Domain.Entity/model/TowerNeed.cs
@@ -26,20 +26,20 @@ public class TowerNeed
public System.String parameter
{ get { return this._parameter; } set { this._parameter = value; } }
- private System.Int32 _count;
+ private long _count;
///
///
///
- public System.Int32 count
+ public long count
{ get { return this._count; } set { this._count = value; } }
- private System.Int32 _retCount;
+ private long _retCount;
///
///
///
- public System.Int32 retCount
+ public long retCount
{ get { return this._retCount; } set { this._retCount = value; } }
private System.Int32 _isOp;
@@ -57,4 +57,12 @@ public class TowerNeed
///
public System.Int32 isAsk
{ get { return this._isAsk; } set { this._isAsk = value; } }
+
+ private long _onCount;
+
+ ///
+ ///
+ ///
+ public long onCount
+ { get { return this._onCount; } set { this._onCount = value; } }
}
\ No newline at end of file
diff --git a/Service/Application.Domain.Entity/model/TowerNeeds.cs b/Service/Application.Domain.Entity/model/TowerNeeds.cs
new file mode 100644
index 0000000..050df10
--- /dev/null
+++ b/Service/Application.Domain.Entity/model/TowerNeeds.cs
@@ -0,0 +1,111 @@
+namespace Application.Domain.Entity;
+
+public class TowerNeeds
+{
+ private System.Int32 _Id;
+
+ ///
+ ///
+ ///
+ public System.Int32 Id
+ {
+ get { return this._Id; }
+ set { this._Id = value; }
+ }
+
+ private System.String _code;
+
+ ///
+ ///
+ ///
+ public System.String code
+ {
+ get { return this._code; }
+ set { this._code = value; }
+ }
+
+ private System.String _name;
+
+ ///
+ ///
+ ///
+ public System.String name
+ {
+ get { return this._name; }
+ set { this._name = value; }
+ }
+
+ private System.String _parameter;
+
+ ///
+ ///
+ ///
+ public System.String parameter
+ {
+ get { return this._parameter; }
+ set { this._parameter = value; }
+ }
+
+ private long _count;
+
+ ///
+ ///
+ ///
+ public long count
+ {
+ get { return this._count; }
+ set { this._count = value; }
+ }
+
+ private long _retCount;
+
+ ///
+ ///
+ ///
+ public long retCount
+ {
+ get { return this._retCount; }
+ set { this._retCount = value; }
+ }
+
+ private System.Int32 _isOp;
+
+ ///
+ ///
+ ///
+ public System.Int32 isOp
+ {
+ get { return this._isOp; }
+ set { this._isOp = value; }
+ }
+
+ private System.Int32 _isAsk;
+
+ ///
+ ///
+ ///
+ public System.Int32 isAsk
+ {
+ get { return this._isAsk; }
+ set { this._isAsk = value; }
+ }
+
+ private long _onCount;
+
+ ///
+ ///
+ ///
+ public long onCount
+ {
+ get { return this._onCount; }
+ set { this._onCount = value; }
+ }
+
+ private List _NeedItem;
+
+ public List NeedItem
+ {
+ get { return this._NeedItem; }
+ set { this._NeedItem = value; }
+ }
+}
\ No newline at end of file
diff --git a/Service/Application.Domain.Entity/resource/game/game_dic.cs b/Service/Application.Domain.Entity/resource/game/game_dic.cs
new file mode 100644
index 0000000..d4013fb
--- /dev/null
+++ b/Service/Application.Domain.Entity/resource/game/game_dic.cs
@@ -0,0 +1,27 @@
+using SqlSugar;
+using System;
+
+namespace Application.Domain.Entity
+{
+ [Tenant("Kg.SeaTime.Resource")]
+ public class game_dic
+ {
+ ///
+ /// code
+ ///
+ [SugarColumn(Length = 50, IsNullable = true)]
+ public string? code { get; set; }
+
+ ///
+ /// sign
+ ///
+ [SugarColumn(IsNullable = true)]
+ public string? sign { get; set; }
+
+ ///
+ /// remark
+ ///
+ [SugarColumn(Length = 255, IsNullable = true)]
+ public string? remark { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/Service/Application.Domain.Entity/resource/game/game_equ_awaken.cs b/Service/Application.Domain.Entity/resource/game/game_equ_awaken.cs
new file mode 100644
index 0000000..e7b62ff
--- /dev/null
+++ b/Service/Application.Domain.Entity/resource/game/game_equ_awaken.cs
@@ -0,0 +1,39 @@
+using SqlSugar;
+using System;
+
+namespace Application.Domain.Entity
+{
+ [Tenant("Kg.SeaTime.Resource")]
+ public class game_equ_awaken
+ {
+ ///
+ /// 特性表
+ ///
+ [SugarColumn(IsPrimaryKey = true, Length = 50)]
+ public string atId { get; set; }
+
+ ///
+ /// 特性名称
+ ///
+ [SugarColumn(Length = 50, IsNullable = true)]
+ public string? name { get; set; }
+
+ ///
+ /// levAttr
+ ///
+ [SugarColumn(IsNullable = true,IsJson = true)]
+ public List levAttr { get; set; }
+
+ ///
+ /// 权重
+ ///
+ [SugarColumn(IsNullable = true)]
+ public int? random { get; set; }
+
+ ///
+ /// 可觉醒装备
+ ///
+ [SugarColumn(IsNullable = true)]
+ public string? position { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/Service/Application.Domain.Entity/resource/game/game_equ_up.cs b/Service/Application.Domain.Entity/resource/game/game_equ_up.cs
new file mode 100644
index 0000000..c84fcdc
--- /dev/null
+++ b/Service/Application.Domain.Entity/resource/game/game_equ_up.cs
@@ -0,0 +1,39 @@
+using SqlSugar;
+using System;
+
+namespace Application.Domain.Entity
+{
+ [Tenant("Kg.SeaTime.Resource")]
+ public class game_equ_up
+ {
+ ///
+ /// euId
+ ///
+ [SugarColumn(IsPrimaryKey = true)]
+ public int euId { get; set; }
+
+ ///
+ /// onLev
+ ///
+ [SugarColumn(IsNullable = true)]
+ public int? onLev { get; set; }
+
+ ///
+ /// maxLev
+ ///
+ [SugarColumn(IsNullable = true)]
+ public int? maxLev { get; set; }
+
+ ///
+ /// okChance
+ ///
+ [SugarColumn(IsNullable = true)]
+ public int? okChance { get; set; }
+
+ ///
+ /// needData
+ ///
+ [SugarColumn(IsNullable = true,IsJson = true)]
+ public List needData { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/Service/Application.Domain/Enum/GameEnum.cs b/Service/Application.Domain/Enum/GameEnum.cs
index 56434e5..b99b983 100644
--- a/Service/Application.Domain/Enum/GameEnum.cs
+++ b/Service/Application.Domain/Enum/GameEnum.cs
@@ -57,4 +57,9 @@ public static class GameEnum
RetVigour,
MapTo,
}
+
+ public enum DicCode
+ {
+ Awaken,//觉醒配置
+ }
}
\ No newline at end of file
diff --git a/Service/Application.Domain/Enum/MessageEnum.cs b/Service/Application.Domain/Enum/MessageEnum.cs
index c3a18ac..2fd9480 100644
--- a/Service/Application.Domain/Enum/MessageEnum.cs
+++ b/Service/Application.Domain/Enum/MessageEnum.cs
@@ -8,4 +8,12 @@ public static class MessageEnum
Marry,//婚姻消息
Trade,//交易通知
}
+ public enum BroadcastCode
+ {
+ Gift,
+ System,
+ Award,
+ Remind,
+ Promote
+ }
}
\ No newline at end of file
diff --git a/Service/Application.Domain/Services/Interface/Equ/IGameEquService.cs b/Service/Application.Domain/Services/Interface/Equ/IGameEquService.cs
index 3d6876b..937c5c4 100644
--- a/Service/Application.Domain/Services/Interface/Equ/IGameEquService.cs
+++ b/Service/Application.Domain/Services/Interface/Equ/IGameEquService.cs
@@ -6,7 +6,9 @@ public interface IGameEquService
Task GetEquInfo(int equId);
Task GetEuqSuitInfo(string suitCode);
+
#endregion
+
#region 用户装备
Task> GetUserEquData(string userId, int type, string equName, int PageIndex, int PageSize,
@@ -21,6 +23,7 @@ public interface IGameEquService
Task UpdateUserEquInfo(unit_user_equ equData, bool isAddLog = false, string code = "",
string remark = "");
+
Task DeductUserEqu(string userId, List equData, string remark);
Task DeductUserEqu(string userId, int equId, int count, string remark);
@@ -30,12 +33,25 @@ public interface IGameEquService
Task> GetUserOnEqu(string userId);
Task EquOnOrDown(unit_user_equ data, int state);
Task> GetUserEquSuit(string userId);
+
#endregion
- #region 辅助
+ #region 觉醒相关
+
+ Task GetEquAwakenInfo(string atId);
+ Task GetRandomOneAwakenByCode(string code);
+ Task GetEquAwakenInfoByLev(string atId, int lev);
+
+ #endregion
+
+ #region 强化相关
+
+ Task GetUserEquUpData(int lev);
+ #endregion
+
+ #region 辅助
Task GetUserEquWeightSum(string userId);
-
#endregion
}
\ No newline at end of file
diff --git a/Service/Application.Domain/Services/Interface/Pub/IGameDicService.cs b/Service/Application.Domain/Services/Interface/Pub/IGameDicService.cs
new file mode 100644
index 0000000..f7f34d3
--- /dev/null
+++ b/Service/Application.Domain/Services/Interface/Pub/IGameDicService.cs
@@ -0,0 +1,6 @@
+namespace Application.Domain;
+
+public interface IGameDicService
+{
+ Task GetDicInfo(string code);
+}
\ No newline at end of file
diff --git a/Service/Application.Domain/Services/Interface/Pub/IMessageService.cs b/Service/Application.Domain/Services/Interface/Pub/IMessageService.cs
index bf1ca05..07044cc 100644
--- a/Service/Application.Domain/Services/Interface/Pub/IMessageService.cs
+++ b/Service/Application.Domain/Services/Interface/Pub/IMessageService.cs
@@ -43,4 +43,11 @@ public interface IMessageService
List btns = null, int days = 10);
#endregion
+
+ #region 广播消息
+
+ Task> GetBroadcastData(int area);
+ Task SendBroadcast(string userId, string code, string msg);
+
+ #endregion
}
\ No newline at end of file
diff --git a/Service/Application.Domain/Services/Service/Equ/GameEquService.cs b/Service/Application.Domain/Services/Service/Equ/GameEquService.cs
index 343ffcd..5e2e576 100644
--- a/Service/Application.Domain/Services/Service/Equ/GameEquService.cs
+++ b/Service/Application.Domain/Services/Service/Equ/GameEquService.cs
@@ -191,6 +191,11 @@ public class GameEquService(ISqlSugarClient DbClient, IRedisCache redis) : IGame
{
await AddEquLog(equData, code, remark);
}
+
+ if (equData.isOn == 1)
+ {
+ await ClearUserOnEqu(equData.userId);
+ }
}
return result;
@@ -429,6 +434,98 @@ public class GameEquService(ISqlSugarClient DbClient, IRedisCache redis) : IGame
return result;
}
+ #endregion
+
+ #region 觉醒
+
+ public async Task GetEquAwakenInfo(string atId)
+ {
+ string key = string.Format(BaseCache.BaseCacheKeys, "EquData", "AwakenData");
+ var data = await redis.GetHashAsync(key, atId);
+ if (data == null)
+ {
+ var db = DbClient.AsTenant().GetConnectionWithAttr();
+ data = await db.Queryable().Where(i => i.atId == atId).SingleAsync();
+ if (data != null)
+ {
+ await redis.AddHashAsync(key, atId, data);
+ }
+ }
+
+ return data;
+ }
+
+ public async Task GetRandomOneAwakenByCode(string code)
+ {
+ game_equ_awaken attr = new game_equ_awaken();
+ var db = DbClient.AsTenant().GetConnectionWithAttr();
+ var list = await db.Queryable().Where(i => i.position.Contains(code)).ToListAsync();
+ if (list.Count == 0)
+ {
+ return null;
+ }
+
+ List