diff --git a/src/0-core/HuanMeng.MiaoYu.Code/Users/UserAccount/PhoneAccount/PhoneAccountLogin.cs b/src/0-core/HuanMeng.MiaoYu.Code/Users/UserAccount/PhoneAccount/PhoneAccountLogin.cs
index 7614a02..f21d5b7 100644
--- a/src/0-core/HuanMeng.MiaoYu.Code/Users/UserAccount/PhoneAccount/PhoneAccountLogin.cs
+++ b/src/0-core/HuanMeng.MiaoYu.Code/Users/UserAccount/PhoneAccount/PhoneAccountLogin.cs
@@ -81,7 +81,7 @@ namespace HuanMeng.MiaoYu.Code.Users.UserAccount.PhoneAccount
Key = phone,
Remarks = "登录验证码",
VerificationType = 0,
- // TenantId = dao.daoDbMiaoYu.context?.TenantInfo?.TenantId ?? Guid.Empty,
+ // TenantId = dao.daoDbMiaoYu.context?.TenantInfo?.TenantId ?? Guid.Empty,
};
dao.daoDbMiaoYu.Add(t_Verification_Code);
dao.daoDbMiaoYu.context.SaveChanges();
@@ -114,12 +114,12 @@ namespace HuanMeng.MiaoYu.Code.Users.UserAccount.PhoneAccount
throw new ArgumentNullException("验证码已失效");
}
}
- var userlogin = dao.daoDbMiaoYu.context.T_User_Phone_Account.Where(it => it.PhoneNum == phoneLoginParams.PhoneNumber).FirstOrDefault();
+ var userlogin = dao.daoDbMiaoYu.context.T_User_Phone_Account.Where(it => it.PhoneNum == phoneLoginParams.PhoneNumber && !it.IsLogout).FirstOrDefault();
T_User? user = null;
T_User_Data? userData = null;
if (userlogin != null)
{
- user = await dao.daoDbMiaoYu.context.T_User.FirstOrDefaultAsync(it => it.Id == userlogin.UserId);
+ user = await dao.daoDbMiaoYu.context.T_User.FirstOrDefaultAsync(it => it.Id == userlogin.UserId && it.State == 0);
userData = await dao.daoDbMiaoYu.context.T_User_Data.FirstOrDefaultAsync(it => it.UserId == userlogin.UserId);
}
if (user == null)
@@ -137,15 +137,16 @@ namespace HuanMeng.MiaoYu.Code.Users.UserAccount.PhoneAccount
RegisterType = 1,
TenantId = dao.daoDbMiaoYu.context.TenantInfo.TenantId,
UserName = phoneLoginParams.PhoneNumber,
+ State = 0,
};
dao.daoDbMiaoYu.context.T_User.Add(user);
dao.daoDbMiaoYu.context.SaveChanges();
//给用户添加货币
- user.ConsumeMoney(UserCurrencyType.聊天次数, 10, dao,"新用户赠送10次聊天次数");
+ user.ConsumeMoney(UserCurrencyType.聊天次数, 10, dao, "新用户赠送10次聊天次数");
}
-
+
if (userData == null)
{
userData = new T_User_Data()
@@ -174,6 +175,7 @@ namespace HuanMeng.MiaoYu.Code.Users.UserAccount.PhoneAccount
NikeName = user.NickName,
TenantId = dao.daoDbMiaoYu.context.TenantInfo.TenantId,
UpdatedAt = DateTime.Now,
+ IsLogout = false
};
dao.daoDbMiaoYu.context.Add(userlogin);
}
diff --git a/src/0-core/HuanMeng.MiaoYu.Code/Users/UserBLL.cs b/src/0-core/HuanMeng.MiaoYu.Code/Users/UserBLL.cs
index a4509c2..8964810 100644
--- a/src/0-core/HuanMeng.MiaoYu.Code/Users/UserBLL.cs
+++ b/src/0-core/HuanMeng.MiaoYu.Code/Users/UserBLL.cs
@@ -149,5 +149,32 @@ namespace HuanMeng.MiaoYu.Code.Users
}
});
}
+
+ ///
+ /// 账号注销
+ ///
+ ///
+ ///
+ public async Task> Logout()
+ {
+ if (_UserId == 0)
+ {
+ throw new Exception("请先登录");
+ }
+ //
+ var user = await Dao.daoDbMiaoYu.context.T_User.Where(it => it.Id == _UserId).FirstOrDefaultAsync();
+ //
+ var userAccount = await Dao.daoDbMiaoYu.context.T_User_Phone_Account.Where(it => it.UserId == _UserId).FirstOrDefaultAsync();
+ if (user == null || userAccount == null)
+ {
+
+ throw new Exception("账号不存在");
+ }
+ user.State = 1;
+ userAccount.IsLogout = true;
+ Dao.daoDbMiaoYu.context.SaveChanges();
+ return new BaseResponse(ResonseCode.Success, "", true);
+ //userAccount.p
+ }
}
}
diff --git a/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/MiaoYuContext.cs b/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/MiaoYuContext.cs
index 3fabff0..a207f6f 100644
--- a/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/MiaoYuContext.cs
+++ b/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/MiaoYuContext.cs
@@ -707,6 +707,7 @@ public partial class MiaoYuContext : MultiTenantDbContext//DbContext
.IsUnicode(false)
.HasComment("绑定的手机号");
entity.Property(e => e.RegisterType).HasComment("首次注册方式");
+ entity.Property(e => e.State).HasComment("0正常,1注销");
entity.Property(e => e.TenantId).HasComment("租户Id");
entity.Property(e => e.UpdatedAt)
.HasComment("修改时间")
@@ -887,6 +888,7 @@ public partial class MiaoYuContext : MultiTenantDbContext//DbContext
entity.Property(e => e.CreatedAt)
.HasComment("修改时间")
.HasColumnType("datetime");
+ entity.Property(e => e.IsLogout).HasComment("是否注销");
entity.Property(e => e.LastLoginAt)
.HasComment("最后一次登录时间")
.HasColumnType("datetime");
diff --git a/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_User.cs b/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_User.cs
index d04aa66..353a49f 100644
--- a/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_User.cs
+++ b/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_User.cs
@@ -68,4 +68,9 @@ public partial class T_User: MultiTenantEntity
/// Ip地址
///
public virtual string? Ip { get; set; }
+
+ ///
+ /// 0正常,1注销
+ ///
+ public virtual int State { get; set; }
}
diff --git a/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_User_Phone_Account.cs b/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_User_Phone_Account.cs
index 1bcdc1e..9cef9fa 100644
--- a/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_User_Phone_Account.cs
+++ b/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_User_Phone_Account.cs
@@ -48,4 +48,9 @@ public partial class T_User_Phone_Account: MultiTenantEntity
/// 用户昵称
///
public virtual string? NikeName { get; set; }
+
+ ///
+ /// 是否注销
+ ///
+ public virtual bool IsLogout { get; set; }
}
diff --git a/src/2-api/HuanMeng.MiaoYu.WebApi/Controllers/AccountController.cs b/src/2-api/HuanMeng.MiaoYu.WebApi/Controllers/AccountController.cs
index a58a5ca..e43ffc6 100644
--- a/src/2-api/HuanMeng.MiaoYu.WebApi/Controllers/AccountController.cs
+++ b/src/2-api/HuanMeng.MiaoYu.WebApi/Controllers/AccountController.cs
@@ -13,7 +13,9 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
+
using Newtonsoft.Json;
+
using System.Numerics;
using System.Text.RegularExpressions;
@@ -47,7 +49,7 @@ namespace HuanMeng.MiaoYu.WebApi.Controllers
UserBLL userBLL = new UserBLL(ServiceProvider);
return await userBLL.SendPhoneNumber(phone.PhoneNumber);
}
-
+
///
/// 登录- 登录
///
@@ -106,5 +108,16 @@ namespace HuanMeng.MiaoYu.WebApi.Controllers
var obj = JsonConvert.DeserializeObject("{\"Mall\":[{\"PropId\":1,\"PropName\":\"记忆卡1\",\"PropCount\":100,\"PropType\":0,\"Price\":10,\"PriceType\":0,\"ImgUrl\":\"https://cos.shhuanmeng.com/image/20240718110512.png\"},{\"PropId\":2,\"PropName\":\"记忆卡2\",\"PropCount\":100,\"PropType\":0,\"Price\":20,\"PriceType\":0,\"ImgUrl\":\"https://cos.shhuanmeng.com/image/20240718110518.png\"}],\"Purchased\":[{\"PropId\":2,\"PropName\":\"记忆卡2\",\"PropCount\":100,\"PropType\":0,\"Price\":20,\"PriceType\":0,\"ImgUrl\":\"https://cos.shhuanmeng.com/image/20240718110518.png\",\"BuyingTime\":\"2024-07-09 03:33:09.563\"}]}");
return new BaseResponse(ResonseCode.Success, "", obj);
}
+
+ ///
+ /// 注销账号
+ ///
+ ///
+ [HttpPost]
+ public async Task> Logout()
+ {
+ UserBLL userBLL = new UserBLL(ServiceProvider);
+ return await userBLL.Logout();
+ }
}
}