Compare commits
18 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
cf8e8b9fc3 | |
|
|
001bda7d9d | |
|
|
072ffebfbc | |
|
|
ac3b9c82f1 | |
|
|
b4134da779 | |
|
|
111b94f9d8 | |
|
|
b5e608cf94 | |
|
|
0005e17b3b | |
|
|
6f22aa7799 | |
|
|
4cc1f472e9 | |
|
|
56f9f61400 | |
|
|
ef12c7a257 | |
|
|
f8debc1334 | |
|
|
f1d19ec0f7 | |
|
|
c67424492a | |
|
|
f49825066a | |
|
|
23ac9dbd97 | |
|
|
a95de36734 |
|
|
@ -48,6 +48,7 @@ jobs:
|
||||||
OWNER=${{ gitea.repository_owner }}
|
OWNER=${{ gitea.repository_owner }}
|
||||||
TAG=${{ gitea.ref_name }}
|
TAG=${{ gitea.ref_name }}
|
||||||
ASPNETCORE_ENVIRONMENT=${{ env.ASPNETCORE_ENVIRONMENT }}
|
ASPNETCORE_ENVIRONMENT=${{ env.ASPNETCORE_ENVIRONMENT }}
|
||||||
|
replicas=1
|
||||||
run: |
|
run: |
|
||||||
echo "$env_file">.env
|
echo "$env_file">.env
|
||||||
|
|
||||||
|
|
@ -59,7 +60,7 @@ jobs:
|
||||||
username: ${{ secrets.PUBLISH_USER_NAME }}
|
username: ${{ secrets.PUBLISH_USER_NAME }}
|
||||||
password: ${{ secrets.PUBLISH_PASSWORD }}
|
password: ${{ secrets.PUBLISH_PASSWORD }}
|
||||||
target: ${{ env.PUBLISH_PATH }}
|
target: ${{ env.PUBLISH_PATH }}
|
||||||
source: docker-compose.yaml,.env
|
source: docker-swarm.yaml,.env
|
||||||
|
|
||||||
- name: 部署到服务器
|
- name: 部署到服务器
|
||||||
uses: docker://appleboy/drone-ssh
|
uses: docker://appleboy/drone-ssh
|
||||||
|
|
@ -74,7 +75,7 @@ jobs:
|
||||||
|
|
||||||
[ -f .env ] && export $(sed '/^#/d' .env)
|
[ -f .env ] && export $(sed '/^#/d' .env)
|
||||||
|
|
||||||
docker stack deploy -c docker-compose.yaml --with-registry-auth mk
|
docker stack deploy -c docker-swarm.yaml --with-registry-auth mk
|
||||||
|
|
||||||
- name: 发送构建通知
|
- name: 发送构建通知
|
||||||
if: ${{ always() }}
|
if: ${{ always() }}
|
||||||
|
|
@ -93,6 +94,7 @@ jobs:
|
||||||
>**代码分支**: ${{ gitea.ref_name }}
|
>**代码分支**: ${{ gitea.ref_name }}
|
||||||
>**提交标识**: ${{ gitea.sha }}
|
>**提交标识**: ${{ gitea.sha }}
|
||||||
>**提交发起**: ${{ gitea.actor }}
|
>**提交发起**: ${{ gitea.actor }}
|
||||||
|
>**提交信息**: ${{ gitea.event.head_commit.message }}\n
|
||||||
"
|
"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -37,11 +37,14 @@ jobs:
|
||||||
|
|
||||||
env:
|
env:
|
||||||
run_cmd: |
|
run_cmd: |
|
||||||
dotnet Dolphin.ExamPictureCut.HttpApi.Host.dll --URLS="http://*:30000"
|
|
||||||
dotnet Dolphin.ExamPictureCut.HttpApi.Host.dll --URLS="http://*:30001"
|
cd D:/marking.cut.service/publish
|
||||||
dotnet Dolphin.ExamPictureCut.HttpApi.Host.dll --URLS="http://*:30002"
|
|
||||||
dotnet Dolphin.ExamPictureCut.HttpApi.Host.dll --URLS="http://*:30003"
|
start Dolphin.ExamPictureCut.HttpApi.Host.exe --URLS="http://*:30000"
|
||||||
dotnet Dolphin.ExamPictureCut.HttpApi.Host.dll --URLS="http://*:30004"
|
start Dolphin.ExamPictureCut.HttpApi.Host.exe --URLS="http://*:30001"
|
||||||
|
start Dolphin.ExamPictureCut.HttpApi.Host.exe --URLS="http://*:30002"
|
||||||
|
start Dolphin.ExamPictureCut.HttpApi.Host.exe --URLS="http://*:30003"
|
||||||
|
start Dolphin.ExamPictureCut.HttpApi.Host.exe --URLS="http://*:30004"
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: 下载源码
|
- name: 下载源码
|
||||||
|
|
@ -132,6 +135,7 @@ jobs:
|
||||||
>**代码分支**: ${{ gitea.ref_name }}
|
>**代码分支**: ${{ gitea.ref_name }}
|
||||||
>**提交标识**: ${{ gitea.sha }}
|
>**提交标识**: ${{ gitea.sha }}
|
||||||
>**提交发起**: ${{ gitea.actor }}
|
>**提交发起**: ${{ gitea.actor }}
|
||||||
|
>**提交信息**: ${{ gitea.event.head_commit.message }}\n
|
||||||
"
|
"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,7 @@ jobs:
|
||||||
OWNER=${{ gitea.repository_owner }}
|
OWNER=${{ gitea.repository_owner }}
|
||||||
TAG=${{ gitea.ref_name }}
|
TAG=${{ gitea.ref_name }}
|
||||||
ASPNETCORE_ENVIRONMENT=${{ env.ASPNETCORE_ENVIRONMENT }}
|
ASPNETCORE_ENVIRONMENT=${{ env.ASPNETCORE_ENVIRONMENT }}
|
||||||
|
replicas=8
|
||||||
run: |
|
run: |
|
||||||
echo "$env_file">.env
|
echo "$env_file">.env
|
||||||
|
|
||||||
|
|
@ -59,7 +60,7 @@ jobs:
|
||||||
username: ${{ secrets.PUBLISH_USER_NAME }}
|
username: ${{ secrets.PUBLISH_USER_NAME }}
|
||||||
password: ${{ secrets.PUBLISH_PASSWORD }}
|
password: ${{ secrets.PUBLISH_PASSWORD }}
|
||||||
target: ${{ env.PUBLISH_PATH }}
|
target: ${{ env.PUBLISH_PATH }}
|
||||||
source: docker-compose.yaml,.env
|
source: docker-swarm.yaml,.env
|
||||||
|
|
||||||
- name: 部署到服务器
|
- name: 部署到服务器
|
||||||
uses: docker://appleboy/drone-ssh
|
uses: docker://appleboy/drone-ssh
|
||||||
|
|
@ -74,7 +75,7 @@ jobs:
|
||||||
|
|
||||||
[ -f .env ] && export $(sed '/^#/d' .env)
|
[ -f .env ] && export $(sed '/^#/d' .env)
|
||||||
|
|
||||||
docker stack deploy -c docker-compose.yaml --with-registry-auth mk
|
docker stack deploy -c docker-swarm.yaml --with-registry-auth mk
|
||||||
|
|
||||||
- name: 发送构建通知
|
- name: 发送构建通知
|
||||||
if: ${{ always() }}
|
if: ${{ always() }}
|
||||||
|
|
@ -93,6 +94,7 @@ jobs:
|
||||||
>**代码分支**: ${{ gitea.ref_name }}
|
>**代码分支**: ${{ gitea.ref_name }}
|
||||||
>**提交标识**: ${{ gitea.sha }}
|
>**提交标识**: ${{ gitea.sha }}
|
||||||
>**提交发起**: ${{ gitea.actor }}
|
>**提交发起**: ${{ gitea.actor }}
|
||||||
|
>**提交信息**: ${{ gitea.event.head_commit.message }}\n
|
||||||
"
|
"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -24,11 +24,14 @@ jobs:
|
||||||
|
|
||||||
env:
|
env:
|
||||||
run_cmd: |
|
run_cmd: |
|
||||||
dotnet Dolphin.ExamPictureCut.HttpApi.Host.dll --URLS="http://*:30000"
|
|
||||||
dotnet Dolphin.ExamPictureCut.HttpApi.Host.dll --URLS="http://*:30001"
|
cd D:/marking.cut.service/publish
|
||||||
dotnet Dolphin.ExamPictureCut.HttpApi.Host.dll --URLS="http://*:30002"
|
|
||||||
dotnet Dolphin.ExamPictureCut.HttpApi.Host.dll --URLS="http://*:30003"
|
start Dolphin.ExamPictureCut.HttpApi.Host.exe --URLS="http://*:30000"
|
||||||
dotnet Dolphin.ExamPictureCut.HttpApi.Host.dll --URLS="http://*:30004"
|
start Dolphin.ExamPictureCut.HttpApi.Host.exe --URLS="http://*:30001"
|
||||||
|
start Dolphin.ExamPictureCut.HttpApi.Host.exe --URLS="http://*:30002"
|
||||||
|
start Dolphin.ExamPictureCut.HttpApi.Host.exe --URLS="http://*:30003"
|
||||||
|
start Dolphin.ExamPictureCut.HttpApi.Host.exe --URLS="http://*:30004"
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: 下载源码
|
- name: 下载源码
|
||||||
|
|
@ -129,6 +132,7 @@ jobs:
|
||||||
>**代码分支**: ${{ gitea.ref_name }}
|
>**代码分支**: ${{ gitea.ref_name }}
|
||||||
>**提交标识**: ${{ gitea.sha }}
|
>**提交标识**: ${{ gitea.sha }}
|
||||||
>**提交发起**: ${{ gitea.actor }}
|
>**提交发起**: ${{ gitea.actor }}
|
||||||
|
>**提交信息**: ${{ gitea.event.release.target_commitish }}\n
|
||||||
"
|
"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -105,7 +105,7 @@ public class ExamManager : DomainService, IExamManager
|
||||||
}).ToListAsync();
|
}).ToListAsync();
|
||||||
|
|
||||||
var gotoCount = 0;
|
var gotoCount = 0;
|
||||||
dotPenOriginalImg:
|
dotPenOriginalImg:
|
||||||
var zgtSettingDtls = await DbBiz.Queryable<MarkingSettingSubjective>().Where(w => w.ExamSubjectId == eto.ExamSubjectId).ToListAsync();
|
var zgtSettingDtls = await DbBiz.Queryable<MarkingSettingSubjective>().Where(w => w.ExamSubjectId == eto.ExamSubjectId).ToListAsync();
|
||||||
|
|
||||||
// 割原题
|
// 割原题
|
||||||
|
|
@ -391,8 +391,6 @@ dotPenOriginalImg:
|
||||||
var skPointMode = SKPointMode.Polygon;
|
var skPointMode = SKPointMode.Polygon;
|
||||||
if (points.Length == 1)
|
if (points.Length == 1)
|
||||||
skPointMode = SKPointMode.Points;
|
skPointMode = SKPointMode.Points;
|
||||||
else if (points.Length == 2)
|
|
||||||
skPointMode = SKPointMode.Lines;
|
|
||||||
|
|
||||||
canvas.DrawPoints(skPointMode, points, skPaint);
|
canvas.DrawPoints(skPointMode, points, skPaint);
|
||||||
}
|
}
|
||||||
|
|
@ -413,11 +411,19 @@ dotPenOriginalImg:
|
||||||
await DbBiz.BeginTranAsync();
|
await DbBiz.BeginTranAsync();
|
||||||
|
|
||||||
// 删除
|
// 删除
|
||||||
await DbBiz.Deleteable<MkExamResult>().Where(w => w.ExamSubjectId == eto.ExamSubjectId && w.StudentNo == penSerial).ExecuteCommandAsync();
|
var delObjectiveIds = await DbBiz.Queryable<MkExamResult>()
|
||||||
|
.Where(w => w.ExamSubjectId == eto.ExamSubjectId && w.StudentNo == penSerial)
|
||||||
|
.Select(s => s.Id).ToListAsync();
|
||||||
|
await DbBiz.Deleteable<MkExamResult>().Where(w => delObjectiveIds.Contains(w.Id)).ExecuteCommandAsync();
|
||||||
|
|
||||||
|
var delSubjectiveIds = await DbBiz.Queryable<SubjectiveMarkingResult>()
|
||||||
|
.Where(w => w.ExamSubjectId == eto.ExamSubjectId && w.StudentExamNum == penSerial && w.IsDeleted == false)
|
||||||
|
.Select(s => s.Id).ToListAsync();
|
||||||
await DbBiz.Updateable<SubjectiveMarkingResult>()
|
await DbBiz.Updateable<SubjectiveMarkingResult>()
|
||||||
.SetColumns(s => new SubjectiveMarkingResult { IsDeleted = true, UpdateDate = Clock.Now })
|
.SetColumns(s => new SubjectiveMarkingResult { IsDeleted = true, UpdateDate = Clock.Now })
|
||||||
.Where(w => w.ExamSubjectId == eto.ExamSubjectId && w.StudentExamNum == penSerial && w.IsDeleted == false)
|
.Where(w => delSubjectiveIds.Contains(w.Id))
|
||||||
.ExecuteCommandAsync();
|
.ExecuteCommandAsync();
|
||||||
|
|
||||||
// 新增
|
// 新增
|
||||||
await DbBiz.Insertable(kgtDtls).ExecuteCommandAsync();
|
await DbBiz.Insertable(kgtDtls).ExecuteCommandAsync();
|
||||||
await DbBiz.Insertable(zgtDtls).ExecuteCommandAsync();
|
await DbBiz.Insertable(zgtDtls).ExecuteCommandAsync();
|
||||||
|
|
@ -437,6 +443,7 @@ dotPenOriginalImg:
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Logger.LogError("{ExamSubjectId} {penSerial} 收集失败! {error}", eto.ExamSubjectId, penSerial, ex);
|
Logger.LogError("{ExamSubjectId} {penSerial} 收集失败! {error}", eto.ExamSubjectId, penSerial, ex);
|
||||||
|
await NotifyExt.DingTalk($"{eto.ExamSubjectId} {penSerial} 收集失败! 异常:{ex.Message}");
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
using Dolphin.ExamPictureCut.Exams;
|
using Dolphin.ExamPictureCut.Exams;
|
||||||
|
using Dolphin.ExamPictureCut.Extensions;
|
||||||
|
|
||||||
namespace Dolphin.ExamPictureCut.Services;
|
namespace Dolphin.ExamPictureCut.Services;
|
||||||
|
|
||||||
|
|
@ -14,4 +15,9 @@ public class ExamAppService : DolphinAppService
|
||||||
{
|
{
|
||||||
await _examManager.ExamStudentGather(new() { SchoolId = 3, StudentExamNum = "BP2-3G3-07K-C1", BookId = 529493484986437, ExamSubjectSchoolId = 530151338438726, ExamSubjectId = 530151329325125, LastCollectTime = DateTime.Now });
|
await _examManager.ExamStudentGather(new() { SchoolId = 3, StudentExamNum = "BP2-3G3-07K-C1", BookId = 529493484986437, ExamSubjectSchoolId = 530151338438726, ExamSubjectId = 530151329325125, LastCollectTime = DateTime.Now });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task NotifyTest()
|
||||||
|
{
|
||||||
|
await NotifyExt.DingTalk($"{530151329325125} {"BP2-3G3-07K-C1"} 收集失败! 异常: {"通知测试"}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
using Flurl.Http;
|
||||||
|
|
||||||
|
namespace Dolphin.ExamPictureCut.Extensions;
|
||||||
|
|
||||||
|
public class NotifyExt
|
||||||
|
{
|
||||||
|
public static async Task DingTalk(string text)
|
||||||
|
{
|
||||||
|
await "https://oapi.dingtalk.com/robot/send?access_token=6ddafcada8f44f4bad4a7314c4d9bd19a895ded0a1ba1afdaff5dd01a5af6781".PostJsonAsync(new
|
||||||
|
{
|
||||||
|
msgtype = "markdown",
|
||||||
|
markdown = new
|
||||||
|
{
|
||||||
|
title = "异常通知",
|
||||||
|
text = $"dotpan,{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}异常\n > 来源:Dplphin.ExamPictureCut\n > 详情:" + text,
|
||||||
|
}
|
||||||
|
}).ReceiveString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
FROM mcr.microsoft.com/dotnet/aspnet:8.0
|
FROM dotnet/aspnet:8.0
|
||||||
|
|
||||||
ENV TZ=Asia/Shanghai \
|
ENV TZ=Asia/Shanghai \
|
||||||
DEBIAN_FRONTEND=noninteractive
|
DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,7 @@ public class DolphinExamPictureCutHttpApiHostModule : AbpModule
|
||||||
},
|
},
|
||||||
db =>
|
db =>
|
||||||
{
|
{
|
||||||
db.QueryFilter.AddTableFilter<ISoftDelete>(s => s.IsDeleted == false);
|
//db.QueryFilter.AddTableFilter<ISoftDelete>(s => s.IsDeleted == false);
|
||||||
|
|
||||||
var config = new SqlSugarConfig();
|
var config = new SqlSugarConfig();
|
||||||
db.Aop.DataExecuting = config.DataExecuting(context.Services);
|
db.Aop.DataExecuting = config.DataExecuting(context.Services);
|
||||||
|
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<configuration>
|
|
||||||
<location path="." inheritInChildApplications="false">
|
|
||||||
<system.webServer>
|
|
||||||
<handlers>
|
|
||||||
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
|
|
||||||
</handlers>
|
|
||||||
<aspNetCore processPath="dotnet" arguments=".\Dolphin.ExamPictureCut.HttpApi.Host.dll" stdoutLogEnabled="false" stdoutLogFile=".\Logs\stdout" hostingModel="inprocess" />
|
|
||||||
</system.webServer>
|
|
||||||
</location>
|
|
||||||
<system.webServer>
|
|
||||||
<httpProtocol>
|
|
||||||
<customHeaders>
|
|
||||||
<remove name="x-powered-by" />
|
|
||||||
</customHeaders>
|
|
||||||
</httpProtocol>
|
|
||||||
</system.webServer>
|
|
||||||
</configuration>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -12,4 +12,4 @@ services:
|
||||||
# - 9925:80
|
# - 9925:80
|
||||||
deploy:
|
deploy:
|
||||||
mode: replicated
|
mode: replicated
|
||||||
replicas: 1
|
replicas: ${replicas:-1}
|
||||||
Loading…
Reference in New Issue