京师
This commit is contained in:
parent
c5840c841e
commit
e17b3245ce
@ -61,5 +61,18 @@ namespace YD_WeChatApplet.Api.Controllers
|
|||||||
var res = await _jingShiTiJiaoService.GetStudentInfo(stuNo);
|
var res = await _jingShiTiJiaoService.GetStudentInfo(stuNo);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 根据学校编码获取年级/班级接口
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="schoolNo"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet("GetClassBySchool")]
|
||||||
|
public async Task<JingShiSchoolClassDto> GetClassBySchool(string schoolNo)
|
||||||
|
{
|
||||||
|
var res = await _jingShiTiJiaoService.GetClassBySchoolAsync(schoolNo);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,11 +1,14 @@
|
|||||||
using AutoMapper;
|
using AutoMapper;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Newtonsoft.Json;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
|
using YD_WeChatApplet.Api.Services.Interface;
|
||||||
using YD_WeChatApplet.Api.SmartSportsEntitys;
|
using YD_WeChatApplet.Api.SmartSportsEntitys;
|
||||||
using YD_WeChatApplet.Api.Utilities;
|
using YD_WeChatApplet.Api.Utilities;
|
||||||
using YD_WeChatApplet.Commons.Dto;
|
using YD_WeChatApplet.Commons.Dto;
|
||||||
using YD_WeChatApplet.Commons.Dto.HomeWork;
|
using YD_WeChatApplet.Commons.Dto.HomeWork;
|
||||||
|
using YD_WeChatApplet.Commons.Dto.JingShiTiJiao;
|
||||||
using YD_WeChatApplet.Commons.Dto.Patriarch;
|
using YD_WeChatApplet.Commons.Dto.Patriarch;
|
||||||
using YD_WeChatApplet.Commons.Dto.School;
|
using YD_WeChatApplet.Commons.Dto.School;
|
||||||
using YD_WeChatApplet.Commons.Enum;
|
using YD_WeChatApplet.Commons.Enum;
|
||||||
@ -19,12 +22,16 @@ namespace YD_WeChatApplet.Api.Services.Impl
|
|||||||
public SmartSportsContext _sportsContext;
|
public SmartSportsContext _sportsContext;
|
||||||
public UserContext _userContext;
|
public UserContext _userContext;
|
||||||
private readonly IMapper _mapper;
|
private readonly IMapper _mapper;
|
||||||
|
private readonly ILogger<HomeWorkService> _logger;
|
||||||
|
private readonly IJingShiTiJiaoService _jingShiTiJiaoService;
|
||||||
|
|
||||||
public HomeWorkService(SmartSportsContext sportsContext, UserContext userContext, IMapper mapper)
|
public HomeWorkService(SmartSportsContext sportsContext, UserContext userContext, IMapper mapper, ILogger<HomeWorkService> logger, IJingShiTiJiaoService jingShiTiJiaoService)
|
||||||
{
|
{
|
||||||
_sportsContext = sportsContext;
|
_sportsContext = sportsContext;
|
||||||
_userContext = userContext;
|
_userContext = userContext;
|
||||||
_mapper = mapper;
|
_mapper = mapper;
|
||||||
|
_logger = logger;
|
||||||
|
_jingShiTiJiaoService = jingShiTiJiaoService;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -98,6 +105,42 @@ namespace YD_WeChatApplet.Api.Services.Impl
|
|||||||
|
|
||||||
await _sportsContext.AddRangeAsync(homeWorkEntities);
|
await _sportsContext.AddRangeAsync(homeWorkEntities);
|
||||||
await _sportsContext.SaveChangesAsync();
|
await _sportsContext.SaveChangesAsync();
|
||||||
|
|
||||||
|
|
||||||
|
_ = Task.Run(async () =>
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var list = new List<SportsDataPushDto>
|
||||||
|
{
|
||||||
|
new SportsDataPushDto
|
||||||
|
{
|
||||||
|
StudentNo =UserLoginContext.Current.UserNo,
|
||||||
|
SportsItem = AppSettings.JingShiTiJiao.SportsItem,
|
||||||
|
SportsDate = DateTime.Parse(paramDto.StartTime).ToString("yyyy-MM-dd"),
|
||||||
|
SportsService = AppSettings.JingShiTiJiao.Channel,
|
||||||
|
SportsScene = "addhomework",
|
||||||
|
SportsDetail = JsonConvert.SerializeObject(homeWorkEntities)
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var res = await _jingShiTiJiaoService.PushSportsData(list);
|
||||||
|
|
||||||
|
if (res)
|
||||||
|
{
|
||||||
|
_logger.LogInformation($"数据同步成功,{JsonConvert.SerializeObject(list)}");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_logger.LogError($"数据同步失败,{JsonConvert.SerializeObject(list)}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
// ❗ 只记录日志,绝不抛出
|
||||||
|
_logger.LogError(ex, "作业数据上传失败");
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@ -56,7 +56,7 @@ namespace YD_WeChatApplet.Api.Services.Impl
|
|||||||
UserName = data.Data.TeacherName,
|
UserName = data.Data.TeacherName,
|
||||||
Role_Id = 2,
|
Role_Id = 2,
|
||||||
PhoneNo = data.Data.TeacherNo,
|
PhoneNo = data.Data.TeacherNo,
|
||||||
SchoolCode = AppSettings.JingShiTiJiao.SchoolCode,
|
SchoolCode = data.Data.SchoolNo,
|
||||||
UserNo = data.Data.TeacherNo
|
UserNo = data.Data.TeacherNo
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -150,7 +150,7 @@ namespace YD_WeChatApplet.Api.Services.Impl
|
|||||||
UserName = data.Data.StudentName,
|
UserName = data.Data.StudentName,
|
||||||
Role_Id = 3,
|
Role_Id = 3,
|
||||||
PhoneNo = data.Data.TeacherNo,
|
PhoneNo = data.Data.TeacherNo,
|
||||||
SchoolCode = AppSettings.JingShiTiJiao.SchoolCode,
|
SchoolCode = data.Data.SchoolNo,
|
||||||
UserNo = data.Data.StudentNo
|
UserNo = data.Data.StudentNo
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -201,5 +201,45 @@ namespace YD_WeChatApplet.Api.Services.Impl
|
|||||||
|
|
||||||
return res != null && res.Code == 0;
|
return res != null && res.Code == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 根据学校编码获取年级/班级接口
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="schoolNo"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<JingShiSchoolClassDto> GetClassBySchoolAsync(string schoolNo)
|
||||||
|
{
|
||||||
|
var res = new JingShiSchoolClassDto();
|
||||||
|
|
||||||
|
long timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
|
||||||
|
string nonce = SaTokenSignHelper.RandomString();
|
||||||
|
|
||||||
|
var paramMap = new Dictionary<string, object>
|
||||||
|
{
|
||||||
|
{ "channel", AppSettings.JingShiTiJiao.Channel },
|
||||||
|
{ "schoolNo", schoolNo },
|
||||||
|
{ "timestamp", timestamp },
|
||||||
|
{ "nonce", nonce }
|
||||||
|
};
|
||||||
|
|
||||||
|
// 4. 构建签名 QueryString
|
||||||
|
string queryStr = SaTokenSignHelper.BuildQueryString(paramMap, AppSettings.JingShiTiJiao.SecretKey);
|
||||||
|
|
||||||
|
// 5. 拼接最终 URL
|
||||||
|
string url = $"{AppSettings.JingShiTiJiao.BaseUrl}/api/open/class/by/school?{queryStr}";
|
||||||
|
|
||||||
|
string json = await HttpManager.HttpGetAsync(url);
|
||||||
|
|
||||||
|
if (string.IsNullOrWhiteSpace(json))
|
||||||
|
return res;
|
||||||
|
|
||||||
|
var data = JsonConvert.DeserializeObject<JingShiResponse<JingShiSchoolClassDto>>(json);
|
||||||
|
if (data != null && data.Code == 0)
|
||||||
|
{
|
||||||
|
return data.Data;
|
||||||
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -102,7 +102,7 @@ namespace YD_WeChatApplet.Api.Services.Impl
|
|||||||
SportsDate = entity.CreateTime.ToString("yyyy-MM-dd"),
|
SportsDate = entity.CreateTime.ToString("yyyy-MM-dd"),
|
||||||
SportsService = AppSettings.JingShiTiJiao.Channel,
|
SportsService = AppSettings.JingShiTiJiao.Channel,
|
||||||
SportsScene = "homework",
|
SportsScene = "homework",
|
||||||
SportsDetail = JsonConvert.SerializeObject(dto)
|
SportsDetail = JsonConvert.SerializeObject(entity)
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -33,5 +33,12 @@ namespace YD_WeChatApplet.Api.Services.Interface
|
|||||||
/// <param name="list"></param>
|
/// <param name="list"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<bool> PushSportsData(List<SportsDataPushDto> list);
|
Task<bool> PushSportsData(List<SportsDataPushDto> list);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 根据学校编码获取年级/班级接口
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="schoolNo"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
Task<JingShiSchoolClassDto> GetClassBySchoolAsync(string schoolNo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -68,7 +68,7 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
"JingShiTiJiao": {
|
"JingShiTiJiao": {
|
||||||
"Channel": "sk-yuedong",
|
"Channel": "1766369454904",
|
||||||
"SecretKey": "JSTJ-kGfs6J7bkgdxr9mz",
|
"SecretKey": "JSTJ-kGfs6J7bkgdxr9mz",
|
||||||
"BaseUrl": "https://api-test.aitibao.com",
|
"BaseUrl": "https://api-test.aitibao.com",
|
||||||
"SchoolCode": "202512240056",
|
"SchoolCode": "202512240056",
|
||||||
|
|||||||
@ -30,6 +30,9 @@ namespace YD_WeChatApplet.Commons.Dto.JingShiTiJiao
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class TeacherClassData
|
public class TeacherClassData
|
||||||
{
|
{
|
||||||
|
[JsonProperty("schoolNo")]
|
||||||
|
public string SchoolNo { get; set; }
|
||||||
|
|
||||||
[JsonProperty("school")]
|
[JsonProperty("school")]
|
||||||
public string School { get; set; }
|
public string School { get; set; }
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,42 @@
|
|||||||
|
using Newtonsoft.Json;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace YD_WeChatApplet.Commons.Dto.JingShiTiJiao
|
||||||
|
{
|
||||||
|
public class JingShiSchoolClassDto
|
||||||
|
{
|
||||||
|
[JsonProperty("schoolNo")]
|
||||||
|
public string SchoolNo { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("schoolName")]
|
||||||
|
public string SchoolName { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("array")]
|
||||||
|
public List<JingShiGradeDto> Grades { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class JingShiGradeDto
|
||||||
|
{
|
||||||
|
[JsonProperty("gradeNo")]
|
||||||
|
public string GradeNo { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("gradeName")]
|
||||||
|
public string GradeName { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("claArray")]
|
||||||
|
public List<JingShiClassDto> Classes { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class JingShiClassDto
|
||||||
|
{
|
||||||
|
[JsonProperty("classNo")]
|
||||||
|
public string ClassNo { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("className")]
|
||||||
|
public string ClassName { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -18,6 +18,9 @@ namespace YD_WeChatApplet.Commons.Dto.JingShiTiJiao
|
|||||||
[JsonProperty("stuName")]
|
[JsonProperty("stuName")]
|
||||||
public string StudentName { get; set; }
|
public string StudentName { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("schoolNo")]
|
||||||
|
public string SchoolNo { get; set; }
|
||||||
|
|
||||||
[JsonProperty("school")]
|
[JsonProperty("school")]
|
||||||
public string School { get; set; }
|
public string School { get; set; }
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user