using Gatedge.K3Cloud.Utils;
using Gatedge.K3Cloud.Utils.Common;
using Gatedge.K3Cloud.Utils.Exceptions;
using Gatedge.K3Cloud.Utils.Model.K3Request;
using Gatedge.K3Cloud.Utils.Model.K3Result;
using Gatedge.K3Cloud.Utils.Option;
using Gatedge.ScanCode.Common;
using Gatedge.ScanCode.Extension;
using Gatedge.ScanCode.Models.Dto;
using Gatedge.ScanCode.Services.IServices;
using Kingdee.CDP.WebApi.SDK;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System.Data;
using System.Text.Json;
namespace Gatedge.ScanCode.Controllers
{
///
///
///
[Route("api/[controller]")]
[ApiController]
public class AccountController : ControllerBase
{
private readonly IAccountService _accountService;
private readonly List _kingdeeOptions;
private readonly K3CloudApiUtils _utils;
///
/// 初始化控制器,加载ICO对象
///
///
///
///
public AccountController(K3CloudApiUtils utils, IAccountService accountService)
{
_utils = utils;
_accountService = accountService;
_kingdeeOptions = _utils.GetKingdeeOptions();
}
///
/// 登录账号
///
///
///
[HttpPost("login")]
public AjaxResult Login(LoginInfo loginInfo)
{
var clienter = _utils.CreateDefaultK3CloudApi(loginInfo);
//数据中心DBID修改为由前端传参
var loginValidate = clienter.Login(loginInfo.DBID, loginInfo.UserName, loginInfo.Password, loginInfo.LCId);
if (loginValidate)
{
var token = _accountService.Login(loginInfo);
var ajaxResult = AjaxResult.Success();
ajaxResult.Add("token", token);
return ajaxResult;
}
return AjaxResult.Error(500, "登录失败");
}
///
/// 获取登录描述信息
///
///
///
[HttpPost("getDetails")]
[Authorize]
public AjaxResult GetDetails(LoginInfo loginInfo)
{
// 初始化连接对象
_utils.InitCloudApi(loginInfo);
K3CloudApi clienter = _utils.CreateDefaultK3CloudApi(loginInfo);
var loginValidate = clienter.ValidateLogin(
loginInfo.DBID,
loginInfo.UserName,
loginInfo.Password,
loginInfo.LCId
);
var reuslt = JsonSerializer.Deserialize