This commit is contained in:
2026-06-29 15:10:32 +08:00
11 changed files with 242 additions and 17 deletions

View File

@ -21,6 +21,10 @@ public interface IJournalPageService: IBaseService<JournalPage>
Task<JournalPageV2Output> DetailAsync(long id); Task<JournalPageV2Output> DetailAsync(long id);
Task<bool> DeleteAsync(long id); Task<bool> DeleteAsync(long id);
/// <summary>
//Task<List<JournalPageNoArticleOutput>> PageNoArticleAsync(long id); /// 回调接口-自动铺码, 书页铺码后回调接口,更新书页的点阵码
/// </summary>
/// <param name="bookPagePrintDto"></param>
/// <returns></returns>
Task<bool> CallbackPageUpdatePageNo(JournalPagePrintDto journalPagePrintDto);
} }

View File

@ -7,6 +7,11 @@ namespace QYZH.InteractiveMagazine.Models.Enum;
/// </summary> /// </summary>
public enum PetTemplateTypeEnum public enum PetTemplateTypeEnum
{ {
/// <summary>
/// 默认
/// </summary>
[Description("默认")]
Default = 0,
/// <summary> /// <summary>
/// 普通 /// 普通
/// </summary> /// </summary>

View File

@ -1,7 +1,10 @@
 
using Aliyun.Acs.Core.Logging;
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json; using Newtonsoft.Json;
using QYZH.InteractiveMagazine.Common.Extensions; using QYZH.InteractiveMagazine.Common.Extensions;
using QYZH.InteractiveMagazine.Common.Helpers;
using QYZH.InteractiveMagazine.Infrastructure.OSS; using QYZH.InteractiveMagazine.Infrastructure.OSS;
using QYZH.InteractiveMagazine.Infrastructure.RabbitMQ; using QYZH.InteractiveMagazine.Infrastructure.RabbitMQ;
using QYZH.InteractiveMagazine.IService; using QYZH.InteractiveMagazine.IService;
@ -11,6 +14,7 @@ using QYZH.InteractiveMagazine.Models.Entity;
using QYZH.InteractiveMagazine.Models.Enum; using QYZH.InteractiveMagazine.Models.Enum;
using QYZH.InteractiveMagazine.Repository; using QYZH.InteractiveMagazine.Repository;
using System.Diagnostics; using System.Diagnostics;
using System.Net;
using Yitter.IdGenerator; using Yitter.IdGenerator;
namespace QYZH.InteractiveMagazine.Service; namespace QYZH.InteractiveMagazine.Service;
@ -20,6 +24,8 @@ public class JournalPageService(BaseRepository<Journal> JournalRepository,
IHttpClientFactory httpClientFactory, IHttpClientFactory httpClientFactory,
IConfiguration configuration, IConfiguration configuration,
IRabbitMQService rabbitMqService, IRabbitMQService rabbitMqService,
ILogger<AiBasePromptService> logger,
BaseRepository<JournalPage> JournalPageRepository,
BaseRepository<JournalPageTask> JournalPageTaskRepository, BaseRepository<JournalPageTask> JournalPageTaskRepository,
BaseRepository<JournalPageTaskAnswer> JournalPageTaskAnswerRepository) : BaseRepository<JournalPage>, IJournalPageService BaseRepository<JournalPageTaskAnswer> JournalPageTaskAnswerRepository) : BaseRepository<JournalPage>, IJournalPageService
{ {
@ -108,10 +114,87 @@ public class JournalPageService(BaseRepository<Journal> JournalRepository,
/// <returns></returns> /// <returns></returns>
public async Task<bool> UpdatePageNoAsync(long JournalId) public async Task<bool> UpdatePageNoAsync(long JournalId)
{ {
var msRes = await rabbitMqService.SendAsync(new RabbitMQSendParam { Exchange = "ex.journal", Queue = "mq.journal.dotcode.auto", RoutingKey = "rk.journal.dotcode.auto", Data = JournalId });//发生消息 var journalEntity = await JournalRepository.Queryable().FirstAsync(w => w.Id == JournalId);
BusinessException.ThrowIf(journalEntity == null, "不存在此期刊");
//如果书籍状态不等于“已归档”,“已废弃”,“已铺码”的情况下,就更新状态为“已铺码”
BusinessException.ThrowIf((JournalStatusEnum)journalEntity.Status is JournalStatusEnum.Abandoned or JournalStatusEnum.Archive or JournalStatusEnum.Codeing, "当前【状态】不允许铺码");
var journalPageList = await JournalPageRepository.Queryable().Where(x => x.JournalId == JournalId).OrderBy(x => x.PageNum).ToListAsync();
BusinessException.ThrowIf(journalPageList.Count == 0, "此期刊不存在任何书页");
var uploadPdfUrl = DomainHelper.OssFullUrl(journalEntity?.PdfUrl!);
BusinessException.ThrowIf(string.IsNullOrWhiteSpace(uploadPdfUrl), "此期刊上传的PDF路径错误请检查期刊PDF文件是否上传成功");
logger.LogInformation("uploadPdfUrl:" + uploadPdfUrl);
//验证是否上传了PDF文件
var response = await httpClientFactory.CreateClient().SendAsync(new HttpRequestMessage(HttpMethod.Head, uploadPdfUrl));
BusinessException.ThrowIf(response.StatusCode != HttpStatusCode.OK, "获取期刊上传的PDF文件失败请检查PDF文件是否上传成功");
journalEntity.Status = (int)JournalStatusEnum.Codeing;
await JournalRepository.Updateable(journalEntity).UpdateColumns(x => new { x.Status, x.UpdatedAt }).ExecuteCommandAsync();
var data = new JournalPagePrintDto
{
JournalId = JournalId,
JournalPdfUrl = uploadPdfUrl,
PageNum = [.. journalPageList.Select(x => x.PageNum)]
};
var msRes = await rabbitMqService.SendAsync(new RabbitMQSendParam { Exchange = "ex.journal", Queue = "mq.journal.dotcode.auto", RoutingKey = "rk.journal.dotcode.auto", Data = data });//发生消息
return msRes; return msRes;
} }
/// <summary>
/// 回调接口-自动铺码, 书页铺码后回调接口,更新书页的点阵码
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public async Task<bool> CallbackPageUpdatePageNo(JournalPagePrintDto request)
{
return await UseTranAsync(async () =>
{
var journalEntity = await JournalRepository.Queryable().FirstAsync(w => w.Id == request.JournalId);
BusinessException.ThrowIf(journalEntity == null, "不存在此书");
//如果书籍状态不等于“铺码中”则不允许回调接口更新点阵码
BusinessException.ThrowIf(journalEntity.Status != (int)JournalStatusEnum.Codeing, "当前【状态】不允许修改铺码");
var bookPageList = await JournalPageRepository.Queryable().Where(x => x.JournalId == request.JournalId).OrderBy(x => x.PageNum).ToListAsync();
BusinessException.ThrowIf(bookPageList.Count == 0, "此书不存在任何书页");
journalEntity.Status = (int)request.Status!.Value;
journalEntity.UpdatedAt = DateTime.Now;
//如果铺码成功了,并且之前已经有下载链接了,就删除原来的文件
if (request.Status == JournalStatusEnum.CodeSuccess && !string.IsNullOrWhiteSpace(journalEntity.DownloadJournalPagePdfName))
{
//删除oss上原来的文件
ossService.DeleteObject(journalEntity.DownloadJournalPagePdfName.RemoveDomain());
}
//如果铺码成功了,就更新下载链接,以及书页的点阵码
if (request.Status == JournalStatusEnum.CodeSuccess)
{
journalEntity.DownloadJournalPagePdfName = request.DownloadJournalPagePdfName;
BusinessException.ThrowIf(request.PageNo.Length != bookPageList.Count, $"点阵码条数与页码数量不匹配,点阵码条数:{request.PageNo.Length},页码数量:{bookPageList.Count}");
for (var i = 0; i < bookPageList.Count; i++)
{
//让也页码和点阵码的顺序必须保持一致
bookPageList[i].PageNo = request.PageNo[i];
bookPageList[i].UpdatedAt = DateTime.Now;
}
await JournalPageRepository.UpdateRangeAsync(bookPageList);
}
await JournalRepository.Updateable(journalEntity).UpdateColumns(x => new { x.Status, x.DownloadJournalPagePdfName, x.UpdatedAt }).ExecuteCommandAsync();
return true;
});
}
public async Task<JournalPageV2Output> DetailAsync(long id) public async Task<JournalPageV2Output> DetailAsync(long id)
{ {
var output = await Queryable() var output = await Queryable()

View File

@ -252,7 +252,7 @@ public class PetService(
logger.LogWarning("喂养失败宠物未激活PetId: {PetId}, Status: {Status}", input.PetId, pet.Status); logger.LogWarning("喂养失败宠物未激活PetId: {PetId}, Status: {Status}", input.PetId, pet.Status);
throw new BusinessException("宠物未激活,无法喂养", 400); throw new BusinessException("宠物未激活,无法喂养", 400);
} }
FeedPetOutput result = new FeedPetOutput (); FeedPetOutput result = new FeedPetOutput();
// 事务保证一致性 // 事务保证一致性
await UseTranAsync(async () => await UseTranAsync(async () =>
{ {
@ -590,6 +590,11 @@ public class PetService(
if (template == null || template.IsDeleted) if (template == null || template.IsDeleted)
throw new BusinessException("宠物模板不存在", 404); throw new BusinessException("宠物模板不存在", 404);
if (template.Type == PetTemplateTypeEnum.Default)
throw new BusinessException("默认模板不允许删除", 400);
// 校验是否有用户宠物实例关联 // 校验是否有用户宠物实例关联
var hasUserPet = petRepository.Context.Queryable<UserPet>() var hasUserPet = petRepository.Context.Queryable<UserPet>()
.Any(p => p.TemplateId == id && !p.IsDeleted); .Any(p => p.TemplateId == id && !p.IsDeleted);
@ -659,9 +664,9 @@ public class PetService(
var template = await petTemplateRepository.GetByIdAsync(id); var template = await petTemplateRepository.GetByIdAsync(id);
if (template == null || template.IsDeleted) if (template == null || template.IsDeleted)
throw new BusinessException("宠物模板不存在", 404); throw new BusinessException("宠物模板不存在", 404);
template.Status = template.Status == (int)DefaultStatusEnum.Active template.Status = template.Status == (int)DefaultStatusEnum.Active
? (int)DefaultStatusEnum.Inactive ? (int)DefaultStatusEnum.Inactive
: (int)DefaultStatusEnum.Active; : (int)DefaultStatusEnum.Active;
template.UpdatedBy = "System"; template.UpdatedBy = "System";
template.UpdatedAt = DateTime.Now; template.UpdatedAt = DateTime.Now;

View File

@ -374,6 +374,18 @@ namespace QYZH.InteractiveMagazine.WebApi.Controllers
return BaseResponse<bool>.Success(data); return BaseResponse<bool>.Success(data);
} }
/// <summary>
/// 回调接口-自动铺码, 书页铺码后回调接口,更新书页的点阵码
/// </summary>
/// <param name="bookPagePrintDto"></param>
/// <returns></returns>
[HttpPost, Route("page/callbackupdatepageno")]
[AllowAnonymous]
public async Task<BaseResponse<bool>> CallbackPageUpdatePageNo([FromBody] JournalPagePrintDto journalPagePrintDto)
{
var data = await JournalPageService.CallbackPageUpdatePageNo(journalPagePrintDto);
return BaseResponse<bool>.Success(data);
}
/// <summary> /// <summary>
/// 下载书籍页码点阵码PDF文件名称 /// 下载书籍页码点阵码PDF文件名称
/// </summary> /// </summary>

View File

@ -67,6 +67,6 @@
"DurationSeconds": 3600, //过期时间(秒) "DurationSeconds": 3600, //过期时间(秒)
"Endpoint": "oss-cn-beijing.aliyuncs.com", "Endpoint": "oss-cn-beijing.aliyuncs.com",
"ProjectName": "InteractiveMagazine", "ProjectName": "InteractiveMagazine",
"Domain": "https://oss.test.qyzhjy.com/" "Domain": "http://oss.test.qyzhjy.com/"
} }
} }

View File

@ -16,6 +16,7 @@ namespace QYZH.InteractiveMagazine.WorkService.Consumers;
/// </summary> /// </summary>
public class AutoDotCodeConsumer(IConfiguration configuration, public class AutoDotCodeConsumer(IConfiguration configuration,
IServiceScopeFactory scopeFactory, IServiceScopeFactory scopeFactory,
IWebHostEnvironment webHostEnvironment,
ILogger<AutoDotCodeConsumer> logger, ILogger<AutoDotCodeConsumer> logger,
IHttpClientFactory httpClientFactory, IHttpClientFactory httpClientFactory,
OssService ossService OssService ossService
@ -78,7 +79,7 @@ public class AutoDotCodeConsumer(IConfiguration configuration,
#region #region
// 从配置中获取点阵文件Id // 从配置中获取点阵文件Id
var dotId = configuration.GetValue("PrintConfig:DotId", 683790963662917); var dotId = configuration.GetValue("PrintConfig:DotId", 765837655859269);
var dotfile = await dBContext.Queryable<DotFile>().FirstAsync(x => x.Id == dotId, cancellationToken); var dotfile = await dBContext.Queryable<DotFile>().FirstAsync(x => x.Id == dotId, cancellationToken);
if (dotfile == null) if (dotfile == null)
@ -87,9 +88,10 @@ public class AutoDotCodeConsumer(IConfiguration configuration,
return; return;
} }
var exePath = AppDomain.CurrentDomain.BaseDirectory + "PrintToolV2.7\\PrintTool.exe"; var printToolDirectory = Path.Combine(webHostEnvironment.ContentRootPath, "PrintToolV2.7");
var exePath = Path.Combine(printToolDirectory, "PrintTool.exe");
var xmlPath = AppDomain.CurrentDomain.BaseDirectory + $"PrintToolV2.7\\{dotfile.FileName}"; var xmlPath = Path.Combine(printToolDirectory, dotfile.FileName);
#region #region
@ -151,7 +153,8 @@ public class AutoDotCodeConsumer(IConfiguration configuration,
// 从第一个开始执行连续铺码N条N为书籍页数 // 从第一个开始执行连续铺码N条N为书籍页数
string pageStr = "{" + $"[{dotFileDetailList[0].PageName},{pageNumMax}]" + "}"; string pageStr = "{" + $"[{dotFileDetailList[0].PageName},{pageNumMax}]" + "}";
var cmd = $"PrintTool.exe -sMode=Generate -sPDF={uploadFilePath} -sLIC={xmlPath} -pStart=1 -oPDF={downloadFilePath} -dPageAddr=1 -dPrint={dPrint} -dDotSize=40 -dType=0 -dOutFile=0 -dControlPageNum={pageStr}"; var arguments = $"-sMode=Generate -sPDF=\"{uploadFilePath}\" -sLIC=\"{xmlPath}\" -pStart=1 -oPDF=\"{downloadFilePath}\" -dPageAddr=1 -dPrint={dPrint} -dDotSize=40 -dType=0 -dOutFile=0 -dControlPageNum={pageStr}";
var cmd = $"\"{exePath}\" {arguments}";
logger.LogInformation($"执行PrintTool.exe 的命令: {cmd}"); logger.LogInformation($"执行PrintTool.exe 的命令: {cmd}");
@ -160,9 +163,9 @@ public class AutoDotCodeConsumer(IConfiguration configuration,
{ {
p.StartInfo = new ProcessStartInfo p.StartInfo = new ProcessStartInfo
{ {
WorkingDirectory = AppDomain.CurrentDomain.BaseDirectory + "PrintToolV2.7", WorkingDirectory = printToolDirectory,
FileName = "cmd.exe", FileName = exePath,
Arguments = "/c " + cmd, // /c参数表示执行后关闭 Arguments = arguments,
UseShellExecute = false, //是否使用操作系统shell启动 UseShellExecute = false, //是否使用操作系统shell启动
RedirectStandardInput = true, //接受来自调用程序的输入信息 RedirectStandardInput = true, //接受来自调用程序的输入信息
RedirectStandardOutput = true, //由调用程序获取输出信息 RedirectStandardOutput = true, //由调用程序获取输出信息
@ -336,4 +339,4 @@ internal class CallbackUpdateJournalStatusResponse
public bool Result { get; set; } public bool Result { get; set; }
public bool IsSuccess { get; set; } public bool IsSuccess { get; set; }
} }

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8" ?>
<licensecontainer version="1.0">
<license level="0" name="Root license segment 1761" owner="WWZN" info="segment 1761" type="enterprise" guid="segment 1761" parentid="0">
<page width="11720" height="11720" />
<time expire="20341025" creation="20241025" />
<user id="0" />
<pattern category="enterprise">
<pageaddress start="1761.0.0.0" stop="1761.5725.52.107" pagesnum="32775624" />
</pattern>
<permissions nbrof="3">
<permission id="0" value="1" name="sublicense" />
<permission id="1" value="1" name="deallocate" />
<permission id="2" value="1" name="print" />
</permissions>
<signature value="846682277F67BD118D24382FBC6DD09AF3E0A921A677F96C34B69E46C951CAC4FDD373E3652EC8FEC18FABA8CA9FAACB19E544447023DAD11CBB6EBB8389A714756395E8CA882F980FB6ED3778DFF6108C90401A43D93CD68A26B362D243FA0F160221506ADA7D031126792DC494CB4CC99C099FC8E05C19CF365D1740B2C907D7393FB73E18642236936E43F2A8FAF21E970269A5ED76BA4231F08C690D4D5D425F637AF4A38FEA4F016609696153708983F373C12EC7533D4B2CDAA496A5FA3916497FA64524D56695C58E48C71F29008EE0BD4EC5B7DBA24BCB2395FAA0D36CFEF2B63C3BC230FBDF04A56F20712FB261F5EBBF1A9E18EF3A4DF998C810248ED7F94C13F5302496914896CD3EA05D92B2B784411796D1D3B5FB00B3B2E6ADDBD68E481A9306785C05C53088DE795CE2F46E1EEAE75E80CEA8F5FF4B08B9A356C543D34B036463D699A6E4131DE9B685364A78D66455A1173823B378CA64359497E8B7E52C7E60EEAC74C1C7F991FE9F62E55DE121010820611C61E70457B5FE12AA7A0DCEEF28AE369DFE6CFB6DE4B0DDE770A4262C209C163EB31DA1150D8AF5886A792438F91A1727DB71E8AEE4247E05ECD7A5C1392260E9CFD186989B71695F308C97EC6A1F7008D90BAA1746CABB60F7A078BBF347514CC98D1AEA380946F438C0B777128E5A72FEB85FDEF16F065C93E70884BB77536CC7DEEFF01F" />
</license>
<license level="2" name="license_1761.211.21.48_10000" owner="CQQY" info="segment 1761" type="CommonB2B" guid="1761.211.21.48_10000" parentid="1761.174.38.0_1000000">
<page width="8512" height="8512" />
<time expire="20360122" creation="20260122" />
<user id="1" />
<pattern category="enterprise">
<pageaddress start="1761.211.21.48" stop="1761.213.8.3" pagesnum="10000" />
</pattern>
<permissions nbrof="3">
<permission id="0" value="1" name="sublicense" />
<permission id="1" value="1" name="deallocate" />
<permission id="2" value="1" name="print" />
</permissions>
<signature value="0BA47A5B9A71CF0680CE1CA41A58FF4DAAA97CD168F331494142150E8BD5A8E93F1369FD8CF026EE577F041C1F8A95D408FC4286BEE366D967DD604D2D482E2105004048C0690D637983591893CE7DC7CEBAEEC9C9569ED62955D044F21769BFE060961413818202E5BDE0216215300BF75238A08A681461DDC539ADB11DA9C3DC5F0B1E3FCDBE70A8F3E39F9FB30F74468DDC93F5D1105B8B8B99F52E13DBAC2C828DF493852037A44B7E6D22D2EAE85942A4F45ECD26F3D17E94EC63226E5A5334DF61781F20B9B65A8B7055950BA15A55D935DFE4A76A8CB4C8C9EDCF7BDDA1C03B6C64CAB8BBECC51684B7F9FD39F17F747F954A8EC3C0D90409FEE30CF5" />
<publickey value="MIIBCgKCAQEAvKvG8GB+Q8GzBGalOEUlLKQlCQG1nmjX3n+ErjuclTUgpo7Ai0akc+77aZV3sbLgVEr1o6TuuHb+aijmJfq6raOW3W5GobAKt6i4QIGWBfzJ3V3YlpTadIWVMYcjSR2tCh4shT4mkQg4DDBT6CvuBSOLuEu8qKtBiNGAikm2Hn3kmeGM4Oy5fKam4GSO3cHEIKgWQES5AMae6KyQmcrxtlFNciFgO+/DfDGSo94QjvMURdyg+kysOAiANxXqEbH1SiDeiQEGeOCQROq2j8T6zJ96mxyYZCuaLxE2Uh5LSxYolLVKw1kq+ukeve23LXvvEV5miZmKQB5NUhRFvU6JIwIDAQAB" />
</license>
</licensecontainer>

View File

@ -2,6 +2,8 @@ using Hangfire;
using Hangfire.Dashboard; using Hangfire.Dashboard;
using Hangfire.MemoryStorage; using Hangfire.MemoryStorage;
using QYZH.InteractiveMagazine.Infrastructure.RabbitMQ; using QYZH.InteractiveMagazine.Infrastructure.RabbitMQ;
using QYZH.InteractiveMagazine.Infrastructure.Redis;
using QYZH.InteractiveMagazine.Infrastructure.SDK;
using QYZH.InteractiveMagazine.Models.Settings; using QYZH.InteractiveMagazine.Models.Settings;
using QYZH.InteractiveMagazine.WorkService.Consumers; using QYZH.InteractiveMagazine.WorkService.Consumers;
using QYZH.InteractiveMagazine.WorkService.Jobs; using QYZH.InteractiveMagazine.WorkService.Jobs;
@ -49,6 +51,9 @@ SugarIocServices.ConfigurationSugar(db =>
}; };
}); });
// 显式注册 ISqlSugarClient供后台服务中通过 DI 解析
builder.Services.AddScoped<ISqlSugarClient>(_ => DbScoped.SugarScope);
// 配置Hangfire内存存储后续可切换Redis // 配置Hangfire内存存储后续可切换Redis
builder.Services.AddHangfire(config => config builder.Services.AddHangfire(config => config
.UseMemoryStorage() .UseMemoryStorage()
@ -58,6 +63,15 @@ builder.Services.AddHangfire(config => config
})); }));
builder.Services.AddHangfireServer(); builder.Services.AddHangfireServer();
// 配置Redis
builder.Services.AddCSRedisCacheExtension(builder.Configuration.GetSection("RedisSettings"));
// 配置HttpClient
builder.Services.AddHttpClient();
// 配置OSS/SDK服务
builder.Services.AddSDKService(builder.Configuration);
// 配置RabbitMQ // 配置RabbitMQ
builder.Services.AddRabbitMQ(builder.Configuration); builder.Services.AddRabbitMQ(builder.Configuration);

View File

@ -22,4 +22,58 @@
<PackageReference Include="Yitter.IdGenerator" Version="1.0.14" /> <PackageReference Include="Yitter.IdGenerator" Version="1.0.14" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<None Update="PrintToolV2.7\bin\gsdll32.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="PrintToolV2.7\bin\gsdll32_1.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="PrintToolV2.7\bin\gsdll32_10.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="PrintToolV2.7\bin\gsdll32_9.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="PrintToolV2.7\bin\gswin32c.exe">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="PrintToolV2.7\bin\info.exe">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="PrintToolV2.7\bin\libiconv2.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="PrintToolV2.7\bin\print.exe">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="PrintToolV2.7\bin\tk.exe">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="PrintToolV2.7\PrintTool.exe">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="PrintToolV2.7\sublic_license_1714.0.0.0_10.xml">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="PrintToolV2.7\sublic_license_1761.172.8.16_1000.xml">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="PrintToolV2.7\sublic_license_1761.211.21.48_10000.xml">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="PrintToolV2.7\wfdlicense.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="PrintToolV2.7\wfdprint.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="PrintToolV2.7\命令行方式调用方法.txt">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="PrintToolV2.7\返回值说明.txt">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project> </Project>

View File

@ -2,6 +2,11 @@
"ConnectionStrings": { "ConnectionStrings": {
"DefaultConnection": "server=192.168.20.150;port=13306;database=InteractiveMagazine;user=user;password=n68792bu!y99r905;charset=utf8mb4;" "DefaultConnection": "server=192.168.20.150;port=13306;database=InteractiveMagazine;user=user;password=n68792bu!y99r905;charset=utf8mb4;"
}, },
"RedisSettings": {
"ConnectionString": "192.168.20.150:16379,defaultDatabase=5",
"Sentinels": [],
"ExpireSecondRange": [ 3600, 7200 ]
},
"RabbitMq": { "RabbitMq": {
"HostName": "192.168.20.150", "HostName": "192.168.20.150",
"Port": 5672, "Port": 5672,
@ -55,6 +60,14 @@
"DurationSeconds": 3600, //过期时间(秒) "DurationSeconds": 3600, //过期时间(秒)
"Endpoint": "oss-cn-beijing.aliyuncs.com", "Endpoint": "oss-cn-beijing.aliyuncs.com",
"ProjectName": "InteractiveMagazine", "ProjectName": "InteractiveMagazine",
"Domain": "https://oss.test.qyzhjy.com/" "Domain": "http://oss.test.qyzhjy.com/"
},
"PrintConfig": {
"DPrint": 0, //打印场景0普通激光打印机1工业印刷默认为0可选
"CallBackApiUrl": "http://localhost:8080/api/page/callbackupdatepageno", // 开发环境 打印成功回调API地址修改打印状态
//"CallBackApiUrl": "http://192.168.20.150:8000/api/icr/page/callbackupdatepageno", // 测试环境 打印成功回调API地址修改打印状态
//"CallBackApiUrl": "https://zyb.qyzhjy.com/zybback/api/icr/page/callbackupdatepageno", // 正式环境 打印成功回调API地址修改打印状态
//这个ID执行的xml文件是sublic_license_1761.172.8.16_1000.xml如果想执行sublic_license_1761.211.21.48_10000.xml 换成 765837655859269 ---暂时没有导入页码
"DotId": 765837655859269
} }
} }