128 lines
4.1 KiB
C#
128 lines
4.1 KiB
C#
using CYQ.Data.Cache;
|
||
using CYQ.Data.Tool;
|
||
using Newtonsoft.Json;
|
||
using Song.Extend;
|
||
using Song.ServiceInterfaces;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Dynamic;
|
||
using System.Linq;
|
||
using System.Web;
|
||
using Taurus.Core;
|
||
using Taurus.Mvc;
|
||
using Taurus.Mvc.Attr;
|
||
using WeiSha.Common;
|
||
|
||
namespace PeiXun.Controllers.BasicInfo
|
||
{
|
||
public class AccountsAPIController : Controller
|
||
{
|
||
//public override bool BeforeInvoke(string methodName)
|
||
//{
|
||
// CancelLoadHtml = true;
|
||
// return true;
|
||
//}
|
||
[HttpGet]
|
||
[Token]
|
||
public void AA()
|
||
{
|
||
string id = Query<string>("id");
|
||
string token = Query<string>("token");
|
||
|
||
DistributedCache cache = DistributedCache.Instance;
|
||
|
||
|
||
if (!string.IsNullOrEmpty(token))
|
||
{
|
||
token = token.ToLower().TrimStart("xyl:".ToCharArray());
|
||
if (cache.Get(token) != null)
|
||
{
|
||
Song.Entities.Accounts emp = cache.Get<Song.Entities.Accounts>(token);
|
||
Write("token:" + token + ";User:" + emp.Ac_AccName);
|
||
}
|
||
}
|
||
else
|
||
Write("token未缓存");
|
||
//Context.Response.Write(id);
|
||
}
|
||
|
||
|
||
[HttpPost]
|
||
public void Login()
|
||
{
|
||
string id = Query<string>("id");
|
||
|
||
string token = Guid.NewGuid().ToString();
|
||
|
||
DistributedCache cache = DistributedCache.Instance;
|
||
|
||
|
||
|
||
|
||
string acc = Query<string>("acc"); //账号
|
||
string pw = Query<string>("pw"); //密码
|
||
bool sign = Query<bool>("sign"); //是否免登录
|
||
|
||
#region Ext 扩展代码,同步平台用户数据
|
||
//LoginService loginService = new LoginService();
|
||
//loginService.LoginBefore_SyncData(acc);
|
||
|
||
//return;
|
||
#endregion
|
||
|
||
|
||
//通过验证,进入登录状态
|
||
Song.Entities.Accounts emp = Business.Do<IAccounts>().AccountsLogin(acc, pw, true);
|
||
if (emp != null)
|
||
{
|
||
//对于worker,如果企业已有负责人或管理员缴费,则直接授权登录,否则提示没有权限
|
||
if (!emp.Ac_IsTeacher && emp.Ac_Type == "worker" && emp.Ac_Pay != 1)
|
||
{
|
||
Write("{\"success\":\"-4\"}");
|
||
return;
|
||
}
|
||
// 如果没有缴费
|
||
if (!emp.Ac_IsTeacher && emp.Ac_Pay != 1)
|
||
{
|
||
Write("{\"success\":\"-3\"}");
|
||
return;
|
||
}
|
||
|
||
//如果没有设置免登录,则按系统设置的时效
|
||
if (!sign)
|
||
LoginState.Accounts.Write(emp);
|
||
else
|
||
LoginState.Accounts.Write(emp, 999);
|
||
//登录成功
|
||
Business.Do<IAccounts>().PointAdd4Login(emp, "手机网页", "账号密码登录", ""); //增加登录积分
|
||
Business.Do<IStudent>().LogForLoginAdd(emp);
|
||
string json = "{\"success\":\"1\",\"name\":\"" + emp.Ac_Name + "\",\"acid\":\"" + emp.Ac_ID + "\",\"sign\":\"" + (sign ? "1" : "") + "\",\"pw\":\"" + emp.Ac_Pw + "\"}";
|
||
//Write(json);
|
||
dynamic obj = new ExpandoObject();
|
||
obj.token = token;
|
||
obj.code = 1;
|
||
obj.msg = "success";
|
||
obj.data = emp;
|
||
//Write(JsonHelper.ToJson(obj));
|
||
|
||
cache.Set(token, emp, 600);//600分钟
|
||
if (cache.Get(emp.Ac_AccName) != null)
|
||
{
|
||
cache.Remove(cache.Get<string>(emp.Ac_AccName));
|
||
}
|
||
cache.Set(emp.Ac_AccName, token, 600);
|
||
|
||
Write(JsonConvert.SerializeObject(obj));
|
||
}
|
||
else
|
||
{
|
||
//登录失败
|
||
Write("{\"success\":\"-1\"}");
|
||
|
||
|
||
}
|
||
//Write(id);
|
||
//Context.Response.Write(id);
|
||
}
|
||
}
|
||
} |