115 lines
4.6 KiB
C#
115 lines
4.6 KiB
C#
using Competition.Common.Util;
|
|
using CompetitionAPI.api.unity;
|
|
using CompetitionAPI.Util;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Http;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using System.Collections.Generic;
|
|
|
|
namespace CompetitionAPI.Controllers.unity.study
|
|
{
|
|
[Route("unity/[controller]")]
|
|
[ApiController]
|
|
public class StudyFileCompleteController : Controller
|
|
{
|
|
Competition.Mysql.BLL.pow_study_file file_bll = new Competition.Mysql.BLL.pow_study_file();
|
|
|
|
Competition.Mysql.BLL.pow_study_file_record file_record_bll = new Competition.Mysql.BLL.pow_study_file_record();
|
|
|
|
Competition.Mysql.BLL.pow_study_record record_bll = new Competition.Mysql.BLL.pow_study_record();
|
|
|
|
public StudyFileCompleteController()
|
|
{
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 接收学习文件完成接口
|
|
/// </summary>
|
|
/// <param name="StudyId">学习id</param>
|
|
/// <returns></returns>
|
|
[Authorize]
|
|
[HttpPost]
|
|
[APIFilter]
|
|
public JsonResult Index([FromForm] StudyFileCompleteRequest req)
|
|
{
|
|
try
|
|
{
|
|
if (string.IsNullOrEmpty(req.StudyId))
|
|
{
|
|
return Json(Tool.GetJsonWithCode(APICode.Fail, "学习id不能为空"));
|
|
}
|
|
if (string.IsNullOrEmpty(req.UserId))
|
|
{
|
|
return Json(Tool.GetJsonWithCode(APICode.Fail, "用户id不能为空"));
|
|
}
|
|
if (string.IsNullOrEmpty(req.FileId))
|
|
{
|
|
return Json(Tool.GetJsonWithCode(APICode.Fail, "文件id不能为空"));
|
|
}
|
|
var count = file_record_bll.GetRecordCount(string.Format(" StudyId='{0}' and UserId='{1}' and FileId='{2}' ", req.StudyId, req.UserId, req.FileId));
|
|
if (count > 0)
|
|
{
|
|
return Json(Tool.GetJsonWithCode(APICode.Success, "已记录"));
|
|
}
|
|
|
|
var total = file_bll.GetRecordCount(string.Format(" StudyId='{0}' ", req.StudyId));
|
|
|
|
var now = DateTime.Now;
|
|
var record_model = new Competition.Mysql.Model.pow_study_file_record();
|
|
record_model.FileRecordId = Guid.NewGuid().ToString("N");
|
|
record_model.UserId = req.UserId;
|
|
record_model.FileId = req.FileId;
|
|
record_model.StudyId = req.StudyId;
|
|
record_model.CreateTime = now;
|
|
|
|
decimal file_count = file_record_bll.GetRecordCount(string.Format(" StudyId='{0}' and UserId='{1}' ", req.StudyId, req.UserId));
|
|
var com_count = (file_count + 1);
|
|
decimal value = (com_count / total);
|
|
var schedule = (int)(value * 100);
|
|
if (com_count == total)
|
|
{
|
|
schedule = 100;
|
|
}
|
|
|
|
var record_count = record_bll.GetRecordCount(string.Format(" StudyId='{0}' and UserId='{1}' ", req.StudyId, req.UserId));
|
|
if (record_count > 0)
|
|
{
|
|
if (record_bll.OperationEditOrAddData(req.StudyId, req.UserId, schedule, now, record_model) > 0)
|
|
{
|
|
return Json(Tool.GetJsonWithCode(APICode.Success, "成功"));
|
|
}
|
|
else
|
|
{
|
|
return Json(Tool.GetJsonWithCode(APICode.Fail, "失败"));
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var model = new Competition.Mysql.Model.pow_study_record();
|
|
model.RecordId = Guid.NewGuid().ToString("N");
|
|
model.StudyId = req.StudyId;
|
|
model.UserId = req.UserId;
|
|
model.RealName = req.RealName;
|
|
model.Schedule = schedule.ToString();
|
|
model.StudyTime = now;
|
|
model.CreateTime = now;
|
|
if (record_bll.OperationAddData(model, record_model) > 0)
|
|
{
|
|
return Json(Tool.GetJsonWithCode(APICode.Success, "成功"));
|
|
}
|
|
else
|
|
{
|
|
return Json(Tool.GetJsonWithCode(APICode.Fail, "失败"));
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.WriteLog(ex.Message + ",行号:" + ex.StackTrace);
|
|
return Json(Tool.GetJsonWithCode(APICode.Fail, "发生错误,请联系管理员。"));
|
|
}
|
|
}
|
|
}
|
|
}
|