调整同步数据接口
parent
25cc1b091e
commit
21b51214e1
|
|
@ -95,7 +95,7 @@ namespace New_College.Api.Controllers.Front
|
|||
var single = singlelist.FirstOrDefault();
|
||||
if (single != null)
|
||||
{
|
||||
updatesync(single.Phone);
|
||||
// updatesync(single.Phone);
|
||||
//var custome = new CustomerUpdateQuery()
|
||||
//{
|
||||
// StudentId = single.Id,
|
||||
|
|
@ -179,14 +179,18 @@ namespace New_College.Api.Controllers.Front
|
|||
var result = _services.AuthCode2Session(login.code);
|
||||
if (result.openid != "" && result.openid != null)
|
||||
{
|
||||
var loginstatus = _services.Logined(new LoginQuery() { openId = result.openid }).Result;
|
||||
var loginstatus = _services.Logined(new LoginQuery() { openId = result.openid, unionId = result.unionid }).Result;
|
||||
if (loginstatus.Item1)
|
||||
{
|
||||
response = loginstatus.Item2;
|
||||
}
|
||||
else
|
||||
{
|
||||
var save = _services.CustomerSave(new DecryptUserInfoRequest() { openid = result.openid }).Result;
|
||||
var save = _services.CustomerSave(new DecryptUserInfoRequest()
|
||||
{
|
||||
openid = result.openid,
|
||||
UnionId = result.unionid
|
||||
}).Result;
|
||||
response.OpenId = result.openid;
|
||||
response.Id = save;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,48 +29,6 @@ namespace New_College.Controllers
|
|||
_CustomerInfoServices = v_CustomerInfoServices;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
///三方登录
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
//[Route("login")]
|
||||
//public async Task<MessageModel<string>> Login([FromQuery] ThridLoginRequestDto dto)
|
||||
//{
|
||||
// string token = string.Empty;
|
||||
// if (dto == null)
|
||||
// {
|
||||
// return new MessageModel<string>()
|
||||
// {
|
||||
// success = false,
|
||||
// msg = "参数错误",
|
||||
|
||||
// };
|
||||
// }
|
||||
// if (ThridConfig.secretKey != dto.secretKey)
|
||||
// {
|
||||
// return new MessageModel<string>()
|
||||
// {
|
||||
// success = false,
|
||||
// msg = "密钥错误",
|
||||
// };
|
||||
// }
|
||||
// //首先判断是否存在账户|
|
||||
// //不存在则创建新的账户|
|
||||
// //存在则直接登录|
|
||||
|
||||
|
||||
|
||||
// return new MessageModel<string>()
|
||||
// {
|
||||
// msg = "ok",
|
||||
// success = true,
|
||||
// response = token
|
||||
// };
|
||||
//}
|
||||
|
||||
/// <summary>
|
||||
/// Oauth2验证回调
|
||||
/// </summary>
|
||||
|
|
@ -85,92 +43,52 @@ namespace New_College.Controllers
|
|||
var response = new CasDoorToken();
|
||||
string jwtStr = string.Empty;
|
||||
bool suc = false;
|
||||
var getaccesstoken = CasdoorHttpHelper.Http_Post<CasdoorGetTokenResponse>("api/login/oauth/access_token", null, new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(new CasdoorRequest() { code = code, grant_type = "authorization_code", client_id = CasdoorConfig.ClientId, client_secret = CasdoorConfig.ClientSecret }), Encoding.UTF8, "application/json"));//获取access_token
|
||||
var headers = new System.Collections.Generic.Dictionary<string, string>
|
||||
{
|
||||
{ "Authorization", string.Format("Bearer {0}", getaccesstoken.access_token) }
|
||||
};
|
||||
if (getaccesstoken.access_token == null)
|
||||
{
|
||||
return new MessageModel<CasDoorToken>()
|
||||
{
|
||||
msg = "code已失效",
|
||||
success = false,
|
||||
status = 401,
|
||||
};
|
||||
}
|
||||
response.servicetoken = getaccesstoken.access_token;
|
||||
var userinfo = CasdoorHttpHelper.Http_Get<CasdoorUserInfoDto>("/api/userinfo", headers, new Dictionary<string, string>());
|
||||
var user = (await _CustomerInfoServices.Query(q => q.UUID == userinfo.sub)).FirstOrDefault();
|
||||
if (user == null)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(userinfo.phone))
|
||||
{
|
||||
var baseuser = (await _CustomerInfoServices.Query(q => q.Phone == userinfo.phone)).FirstOrDefault();
|
||||
|
||||
if (baseuser != null)
|
||||
var userinfo = CasdoorHttpHelper.Http_Post<JWTSSOResult<MinProWxOutPut>>("/api/syswechat/user_info", null,
|
||||
new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(
|
||||
new CasdoorRequest()
|
||||
{
|
||||
if (string.IsNullOrEmpty(baseuser.NickName))
|
||||
{
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(baseuser.Phone))
|
||||
{
|
||||
baseuser.NickName = baseuser.Phone;
|
||||
}
|
||||
}
|
||||
baseuser.UUID = userinfo.sub;
|
||||
user = baseuser;
|
||||
await _CustomerInfoServices.Update(baseuser);
|
||||
}
|
||||
else
|
||||
code = code,
|
||||
client_id = CasdoorConfig.ClientId,
|
||||
client_secret = CasdoorConfig.ClientSecret
|
||||
}),
|
||||
Encoding.UTF8, "application/json"));//
|
||||
if (userinfo.code == 200 && userinfo.type == "success")
|
||||
{
|
||||
var user = (await _CustomerInfoServices.Query(q => q.UUID == userinfo.result.UnionId)).FirstOrDefault();
|
||||
if (user != null)
|
||||
{
|
||||
//没有用户则注册一个新用户
|
||||
user = new Model.Models.V_CustomerInfo()
|
||||
{
|
||||
//没有用户则注册一个新用户
|
||||
|
||||
user = new Model.Models.V_CustomerInfo()
|
||||
{
|
||||
IsDelete = false,
|
||||
UUID = userinfo.sub,
|
||||
Phone = userinfo.phone,
|
||||
OpenId = userinfo.aud,
|
||||
CreateTime = DateTime.UtcNow,
|
||||
IsVIP = false,
|
||||
Gender = 0,
|
||||
Subject = 1
|
||||
};
|
||||
user.Id = await _CustomerInfoServices.Add(user);
|
||||
|
||||
}
|
||||
IsDelete = false,
|
||||
UUID = userinfo.result.UnionId,
|
||||
Phone = userinfo.result.Mobile,
|
||||
GZOpenId = userinfo.result.OpenId,
|
||||
CreateTime = DateTime.UtcNow,
|
||||
IsVIP = false,
|
||||
Gender = 0,
|
||||
Subject = 1,
|
||||
NickName = userinfo.result.NickName,
|
||||
ModifyTime = DateTime.UtcNow,
|
||||
TenantId = userinfo.result.TenantId,
|
||||
AvatarUrl = userinfo.result.Avatar,
|
||||
CustomerType = CustomerTypeEnum.General
|
||||
};
|
||||
user.Id = await _CustomerInfoServices.Add(user);
|
||||
}
|
||||
else
|
||||
{
|
||||
return new MessageModel<CasDoorToken>()
|
||||
{
|
||||
success = false,
|
||||
msg = "该账户不存在或已注销"
|
||||
};
|
||||
user.GZOpenId = userinfo.result.OpenId;
|
||||
user.ModifyTime = DateTime.UtcNow;
|
||||
await _CustomerInfoServices.Update(user);
|
||||
}
|
||||
var tokenModel = new SSOTokenModelJwt { UserId = user.Id.ToString(), NickName = user.NickName, LoginMode = LoginModeEnum.APP.ToString() };
|
||||
jwtStr = JwtHelper.ssoIssueJwt(tokenModel);
|
||||
response.token = jwtStr;
|
||||
response.Id = user.Id;
|
||||
suc = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (string.IsNullOrEmpty(user.NickName))
|
||||
{
|
||||
var single = await _CustomerInfoServices.QueryById(user.Id);
|
||||
if (!string.IsNullOrWhiteSpace(user.Phone))
|
||||
{
|
||||
single.NickName = user.Phone;
|
||||
}
|
||||
if (!string.IsNullOrWhiteSpace(user.UserCode))
|
||||
{
|
||||
single.NickName = user.UserCode;
|
||||
}
|
||||
await _CustomerInfoServices.Update(single);
|
||||
}
|
||||
}
|
||||
TokenModelJwt tokenModel = new TokenModelJwt { Uid = user.Id, Role = "users" };
|
||||
jwtStr = JwtHelper.IssueJwt(tokenModel);
|
||||
response.token = jwtStr;
|
||||
response.Id = user.Id;
|
||||
suc = true;
|
||||
|
||||
return new MessageModel<CasDoorToken>()
|
||||
{
|
||||
success = suc,
|
||||
|
|
|
|||
|
|
@ -3147,6 +3147,11 @@
|
|||
小程序openid
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.Models.V_CustomerInfo.GZOpenId">
|
||||
<summary>
|
||||
公众号openid
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.Models.V_CustomerInfo.NickName">
|
||||
<summary>
|
||||
用户名
|
||||
|
|
@ -3249,7 +3254,7 @@
|
|||
</member>
|
||||
<member name="P:New_College.Model.Models.V_CustomerInfo.UUID">
|
||||
<summary>
|
||||
CasdoorId
|
||||
UnionId
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.Models.V_ExaminationPolicy.AreaId">
|
||||
|
|
@ -3529,6 +3534,36 @@
|
|||
找不到指定资源
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:New_College.Model.PlatformTypeEnum.微信公众号">
|
||||
<summary>
|
||||
微信公众号
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:New_College.Model.PlatformTypeEnum.微信小程序">
|
||||
<summary>
|
||||
微信小程序
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:New_College.Model.PlatformTypeEnum.QQ">
|
||||
<summary>
|
||||
QQ
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:New_College.Model.PlatformTypeEnum.Alipay">
|
||||
<summary>
|
||||
支付宝
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:New_College.Model.LoginModeEnum.PC">
|
||||
<summary>
|
||||
PC模式
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:New_College.Model.LoginModeEnum.APP">
|
||||
<summary>
|
||||
APP
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:New_College.Model.Seed.DBSeed.SeedAsync(New_College.Model.Seed.MyContext,System.String)">
|
||||
<summary>
|
||||
异步添加种子数据
|
||||
|
|
@ -5760,6 +5795,71 @@
|
|||
选项标签
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.ViewModels.MinProWxOutPut.Id">
|
||||
<summary>
|
||||
系统用户Id
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.ViewModels.MinProWxOutPut.PlatformType">
|
||||
<summary>
|
||||
平台类型
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.ViewModels.MinProWxOutPut.OpenId">
|
||||
<summary>
|
||||
OpenId
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.ViewModels.MinProWxOutPut.UnionId">
|
||||
<summary>
|
||||
UnionId
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.ViewModels.MinProWxOutPut.NickName">
|
||||
<summary>
|
||||
昵称
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.ViewModels.MinProWxOutPut.Avatar">
|
||||
<summary>
|
||||
头像
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.ViewModels.MinProWxOutPut.Mobile">
|
||||
<summary>
|
||||
手机号码
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.ViewModels.MinProWxOutPut.Sex">
|
||||
<summary>
|
||||
性别
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.ViewModels.MinProWxOutPut.Language">
|
||||
<summary>
|
||||
语言
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.ViewModels.MinProWxOutPut.City">
|
||||
<summary>
|
||||
城市
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.ViewModels.MinProWxOutPut.Province">
|
||||
<summary>
|
||||
省
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.ViewModels.MinProWxOutPut.Country">
|
||||
<summary>
|
||||
国家
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.ViewModels.MinProWxOutPut.TenantId">
|
||||
<summary>
|
||||
租户Id
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.ViewModels.CategoryStatusResult.TestNum">
|
||||
<summary>
|
||||
测试次数
|
||||
|
|
|
|||
|
|
@ -116,10 +116,10 @@
|
|||
}
|
||||
],
|
||||
"Audience": {
|
||||
"Secret": "sdfsdfsrty25634kkhllghtdgdfss345t678fs", //不要太短,16位+
|
||||
"Secret": "9c1cbc3f546eda35168c3aa3cb91780fbe703f0996c6d123ea96dc85c70bbc0a", //不要太短,16位+
|
||||
"SecretFile": "", //安全。内容就是Secret
|
||||
"Issuer": "New_College",
|
||||
"Audience": "wr"
|
||||
"Issuer": "YCYMEDUCENTER",
|
||||
"Audience": "YCYMEDUCENTER"
|
||||
},
|
||||
"Startup": {
|
||||
"Cors": {
|
||||
|
|
@ -215,12 +215,12 @@
|
|||
"endpoint": "https://oss-cn-shanghai.aliyuncs.com"
|
||||
},
|
||||
"Casdoor": {
|
||||
"Endpoint": "http://192.168.104.107:8000",
|
||||
"Endpoint": "https://api.sso.ycymedu.com",
|
||||
"OrganizationName": "六纬生涯",
|
||||
"ApplicationName": "六纬生涯",
|
||||
"ApplicationType": "webapi",
|
||||
"ClientId": "776d639918192c449537",
|
||||
"ClientSecret": "d556f0692052a2df56614282dd86895b04783262",
|
||||
"ClientId": "18592781518917",
|
||||
"ClientSecret": "9c1cbc3f546eda35168c3aa3cb91780fbe703f0996c6d123ea96dc85c70bbc0a",
|
||||
"CallbackPath": "http://test.sso.ycymedu.com/login/oauth/authorize?client_id=776d639918192c449537&response_type=code&redirect_uri=http://192.168.100.106:8080/Home/FirstPage&scope=read&state=casdoor",
|
||||
"RequireHttpsMetadata": false
|
||||
},
|
||||
|
|
|
|||
|
|
@ -94,6 +94,61 @@ namespace New_College.AuthHelper.OverWrite
|
|||
};
|
||||
return tm;
|
||||
}
|
||||
|
||||
|
||||
public static string ssoIssueJwt(SSOTokenModelJwt tokenModel)
|
||||
{
|
||||
string iss = Appsettings.app(new string[] { "Audience", "Issuer" });
|
||||
string aud = Appsettings.app(new string[] { "Audience", "Audience" });
|
||||
string secret = AppSecretConfig.Audience_Secret_String;
|
||||
|
||||
//var claims = new Claim[] //old
|
||||
var claims = new List<Claim>
|
||||
{
|
||||
/*
|
||||
* 特别重要:
|
||||
1、这里将用户的部分信息,比如 uid 存到了Claim 中,如果你想知道如何在其他地方将这个 uid从 Token 中取出来,请看下边的SerializeJwt() 方法,或者在整个解决方案,搜索这个方法,看哪里使用了!
|
||||
2、你也可以研究下 HttpContext.User.Claims ,具体的你可以看看 Policys/PermissionHandler.cs 类中是如何使用的。
|
||||
*/
|
||||
|
||||
|
||||
|
||||
new Claim(JwtRegisteredClaimNames.Jti, tokenModel.UserId.ToString()),
|
||||
new Claim(JwtRegisteredClaimNames.Iat, $"{new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds()}"),
|
||||
new Claim(JwtRegisteredClaimNames.Nbf,$"{new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds()}") ,
|
||||
//这个就是过期时间,目前是过期1000秒,可自定义,注意JWT有自己的缓冲过期时间
|
||||
new Claim (JwtRegisteredClaimNames.Exp,$"{new DateTimeOffset(DateTime.Now.AddDays(7)).ToUnixTimeSeconds()}"),
|
||||
new Claim(ClaimTypes.Expiration, DateTime.Now.AddDays(1000).ToString()),
|
||||
new Claim(JwtRegisteredClaimNames.Iss,iss),
|
||||
new Claim(JwtRegisteredClaimNames.Aud,aud),
|
||||
new Claim(JwtRegisteredClaimNames.Name,tokenModel.NickName),
|
||||
|
||||
//new Claim(ClaimTypes.Role,tokenModel.Role),//为了解决一个用户多个角色(比如:Admin,System),用下边的方法
|
||||
};
|
||||
|
||||
// 可以将一个用户的多个角色全部赋予;
|
||||
// 作者:DX 提供技术支持;
|
||||
// claims.AddRange(tokenModel.Role.Split(',').Select(s => new Claim(ClaimTypes.Role, s)));
|
||||
|
||||
|
||||
|
||||
//秘钥 (SymmetricSecurityKey 对安全性的要求,密钥的长度太短会报出异常)
|
||||
var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secret));
|
||||
var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
|
||||
|
||||
var jwt = new JwtSecurityToken(
|
||||
issuer: iss,
|
||||
claims: claims,
|
||||
signingCredentials: creds);
|
||||
|
||||
var jwtHandler = new JwtSecurityTokenHandler();
|
||||
var encodedJwt = jwtHandler.WriteToken(jwt);
|
||||
|
||||
return encodedJwt;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -115,4 +170,27 @@ namespace New_College.AuthHelper.OverWrite
|
|||
public string Work { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class SSOTokenModelJwt
|
||||
{
|
||||
/// <summary>
|
||||
/// 用户Id
|
||||
/// </summary>
|
||||
public string UserId = "UserId";
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 昵称
|
||||
/// </summary>
|
||||
public string NickName = "NickName";
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 登录模式PC、APP
|
||||
/// </summary>
|
||||
public string LoginMode = "LoginMode";
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text;
|
||||
|
||||
namespace New_College.Model.Models
|
||||
|
|
@ -26,6 +27,13 @@ namespace New_College.Model.Models
|
|||
[SugarColumn(IsNullable = true)]
|
||||
public string OpenId { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 公众号openid
|
||||
/// </summary>
|
||||
[SugarColumn(IsNullable = true)]
|
||||
public string GZOpenId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户名
|
||||
/// </summary>
|
||||
|
|
@ -106,6 +114,7 @@ namespace New_College.Model.Models
|
|||
public string Subjectgroup { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
|
|
@ -144,7 +153,7 @@ namespace New_College.Model.Models
|
|||
|
||||
|
||||
/// <summary>
|
||||
/// CasdoorId
|
||||
/// UnionId
|
||||
/// </summary>
|
||||
[SugarColumn(IsNullable = true)]
|
||||
public string UUID { get; set; }
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ namespace New_College.Model.Request
|
|||
{
|
||||
public class DecryptUserInfoRequest : GetPhoneInfo
|
||||
{
|
||||
|
||||
public string UnionId { get; set; }
|
||||
/// <summary>
|
||||
/// 用户头像
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -15,6 +15,9 @@ namespace New_College.Model.Request
|
|||
/// 退出重新登录时传此值
|
||||
/// </summary>
|
||||
public string code { get; set; }
|
||||
|
||||
public string unionId { get; set; }
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -20,4 +20,45 @@ namespace New_College.Model
|
|||
[Description("服务器错误")]
|
||||
ServerError = 500
|
||||
}
|
||||
|
||||
public enum PlatformTypeEnum
|
||||
{ /// <summary>
|
||||
/// 微信公众号
|
||||
/// </summary>
|
||||
[Description("微信公众号")]
|
||||
微信公众号 = 1,
|
||||
|
||||
/// <summary>
|
||||
/// 微信小程序
|
||||
/// </summary>
|
||||
[Description("微信小程序")]
|
||||
微信小程序 = 2,
|
||||
|
||||
/// <summary>
|
||||
/// QQ
|
||||
/// </summary>
|
||||
[Description("QQ")]
|
||||
QQ = 3,
|
||||
|
||||
/// <summary>
|
||||
/// 支付宝
|
||||
/// </summary>
|
||||
[Description("支付宝")]
|
||||
Alipay = 4,
|
||||
}
|
||||
public enum LoginModeEnum
|
||||
{
|
||||
/// <summary>
|
||||
/// PC模式
|
||||
/// </summary>
|
||||
[Description("PC模式")]
|
||||
PC = 1,
|
||||
|
||||
/// <summary>
|
||||
/// APP
|
||||
/// </summary>
|
||||
[Description("APP")]
|
||||
APP = 2
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,11 +16,91 @@ namespace New_College.Model.ViewModels
|
|||
public string error_description { get; set; }
|
||||
}
|
||||
|
||||
public class JWTSSOResult<T>
|
||||
{
|
||||
public int code { get; set; }
|
||||
public string type { get; set; }
|
||||
public string message { get; set; }
|
||||
public T result { get; set; }
|
||||
public object extras { get; set; }
|
||||
public string time { get; set; }
|
||||
}
|
||||
|
||||
|
||||
public class MinProWxOutPut
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 系统用户Id
|
||||
/// </summary>
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 平台类型
|
||||
/// </summary>
|
||||
public PlatformTypeEnum PlatformType { get; set; } = PlatformTypeEnum.微信公众号;
|
||||
|
||||
/// <summary>
|
||||
/// OpenId
|
||||
/// </summary>
|
||||
public string OpenId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// UnionId
|
||||
/// </summary>
|
||||
public string? UnionId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 昵称
|
||||
/// </summary>
|
||||
public string? NickName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 头像
|
||||
/// </summary>
|
||||
public string? Avatar { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 手机号码
|
||||
/// </summary>
|
||||
public string? Mobile { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 性别
|
||||
/// </summary>
|
||||
public int? Sex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 语言
|
||||
/// </summary>
|
||||
public string? Language { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 城市
|
||||
/// </summary>
|
||||
|
||||
public string? City { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 省
|
||||
/// </summary>
|
||||
public string? Province { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 国家
|
||||
/// </summary>
|
||||
public string? Country { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 租户Id
|
||||
/// </summary>
|
||||
public long? TenantId { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class CasdoorRequest
|
||||
{
|
||||
public string grant_type { get; set; }
|
||||
//public string grant_type { get; set; }
|
||||
public string client_id { get; set; }
|
||||
public string client_secret { get; set; }
|
||||
public string code { get; set; }
|
||||
|
|
|
|||
|
|
@ -595,10 +595,16 @@ namespace New_College.Services
|
|||
var userinfo = (await _dal.Query(w => w.OpenId == query.openId && w.IsDelete == false)).ToList().FirstOrDefault();
|
||||
if (userinfo != null)
|
||||
{
|
||||
if (!userinfo.IsVIP)
|
||||
if (string.IsNullOrWhiteSpace(userinfo.UUID))
|
||||
{
|
||||
await SyncXET(userinfo);
|
||||
userinfo.UUID = query.unionId;
|
||||
await _dal.Update(userinfo);
|
||||
}
|
||||
|
||||
//if (!userinfo.IsVIP)
|
||||
//{
|
||||
// await SyncXET(userinfo);
|
||||
//}
|
||||
return new Tuple<bool, CustomerInfoResult>(true, new CustomerInfoResult()
|
||||
{
|
||||
AreaId = userinfo.AreaId,
|
||||
|
|
@ -680,7 +686,8 @@ namespace New_College.Services
|
|||
var i = await _dal.Add(new V_CustomerInfo()
|
||||
{
|
||||
OpenId = register.openid,
|
||||
CustomerType = CustomerTypeEnum.General
|
||||
CustomerType = CustomerTypeEnum.General,
|
||||
UUID=register.UnionId
|
||||
});
|
||||
return i;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue