Переглянути джерело

Merge branch '长阳分支中职' of http://123.57.209.16:3000/bjquanjiang/DigitalScholl into 长阳分支中职

新疆警官学校中职
dyy 1 рік тому
джерело
коміт
7a793bc850
18 змінених файлів з 930 додано та 4 видалено
  1. +10
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/StuTransferInfoController.cs
  2. +54
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuTransferInfo/IndexQuery.cshtml
  3. +323
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuTransferInfo/IndexQuery.js
  4. +2
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj
  5. +6
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScoreNotPassTran/StuScoreNotPassTranService.cs
  6. +5
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScoreNotPassTwoTran/StuScoreNotPassTwoTranService.cs
  7. +5
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScoreTran/StuScoreTranService.cs
  8. +3
    -3
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuTransferInfo/StuTransferInfoService.cs
  9. +10
    -0
      Learun.Framework.Ultimate V7/VisitService/App.config
  10. +27
    -0
      Learun.Framework.Ultimate V7/VisitService/Program.cs
  11. +60
    -0
      Learun.Framework.Ultimate V7/VisitService/ProjectInstaller.Designer.cs
  12. +19
    -0
      Learun.Framework.Ultimate V7/VisitService/ProjectInstaller.cs
  13. +129
    -0
      Learun.Framework.Ultimate V7/VisitService/ProjectInstaller.resx
  14. +36
    -0
      Learun.Framework.Ultimate V7/VisitService/Properties/AssemblyInfo.cs
  15. +74
    -0
      Learun.Framework.Ultimate V7/VisitService/Quanjiang.DigitalScholl.VisitService.csproj
  16. +37
    -0
      Learun.Framework.Ultimate V7/VisitService/Service1.Designer.cs
  17. +91
    -0
      Learun.Framework.Ultimate V7/VisitService/Service1.cs
  18. +39
    -1
      Learun.Framework.Ultimate V7/西昌单校区版V3.0.sln

+ 10
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/StuTransferInfoController.cs Переглянути файл

@@ -103,6 +103,16 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers
{
return View();
}
/// <summary>
/// 综合查询
/// </summary>
/// <returns></returns>
[HttpGet]
public ActionResult IndexQuery()
{
return View();
}

#endregion

#region 获取数据


+ 54
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuTransferInfo/IndexQuery.cshtml Переглянути файл

@@ -0,0 +1,54 @@
@{
ViewBag.Title = "学籍异动列表";
Layout = "~/Views/Shared/_Index.cshtml";
}
<div class="lr-layout ">
<div class="lr-layout-center">
<div class="lr-layout-wrap lr-layout-wrap-notitle">
<div class="lr-layout-tool">
<div class="lr-layout-tool-left">
<div class="lr-layout-tool-item">
<div id="multiple_condition_query">
<div class="lr-query-formcontent">
<div class="col-xs-12 lr-form-item">
<div class="lr-form-item-title">异动类型</div>
<div id="AnomalousType"></div>
</div>
<div class="col-xs-12 lr-form-item">
<div class="lr-form-item-title">姓名</div>
<input id="StuName" type="text" class="form-control" />
</div>
<div class="col-xs-12 lr-form-item">
<div class="lr-form-item-title">班级</div>
<div id="ClassNo"></div>
</div>
<div class="col-xs-12 lr-form-item">
<div class="lr-form-item-title">申请人</div>
<div id="CreateUserId"></div>
</div>
<div class="col-xs-12 lr-form-item">
<div class="lr-form-item-title">审核人</div>
<div id="CheckUserId"></div>
</div>
<div class="col-xs-12 lr-form-item">
<div class="lr-form-item-title">保留学籍</div>
<div id="StuStatus"></div>
</div>
</div>
</div>
</div>
</div>
<div class="lr-layout-tool-right">
<div class=" btn-group btn-group-sm">
<a id="lr_refresh" class="btn btn-default"><i class="fa fa-refresh"></i></a>
</div>
<div class=" btn-group btn-group-sm">
<a id="lr_views" class="btn btn-default"><i class="fa fa-pencil-square-o"></i>&nbsp;查看</a>
</div>
</div>
</div>
<div class="lr-layout-body" id="gridtable"></div>
</div>
</div>
</div>
@Html.AppendJsFile("/Areas/EducationalAdministration/Views/StuTransferInfo/IndexQuery.js")

+ 323
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuTransferInfo/IndexQuery.js Переглянути файл

@@ -0,0 +1,323 @@
/* * 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架(http://www.learun.cn)
* Copyright (c) 2013-2020 力软信息技术(苏州)有限公司
* 创建人:超级管理员
* 日 期:2023-01-04 15:03
* 描 述:学籍异动列表
*/
var selectedRow;
var refreshGirdData;
var bootstrap = function ($, learun) {
"use strict";
var page = {
init: function () {
page.initGird();
page.bind();
},
bind: function () {
// 查询
$('#multiple_condition_query').lrMultipleQuery(function (queryJson) {
page.search(queryJson);
}, 290, 400);
$('#AnomalousType').lrDataItemSelect({ code: 'StuChangeType' });
$('#ClassNo').lrselect({
allowSearch: true,
url: top.$.rootUrl + '/LR_SystemModule/DataSource/GetDataTable?code=bjsj',
param: { strWhere: "1=1 AND CheckMark=1 order by classno desc" },
value: "classno",
text: "classname"
});
$('#CheckUserId').lrDataSourceSelect({ code: 'teacheruserdata', value: 'f_encode', text: 'f_realname' });
$('#CreateUserId').lrDataSourceSelect({ code: 'teacheruserdata', value: 'f_encode', text: 'f_realname' });
$('#StuStatus').lrDataItemSelect({ code: 'YesOrNoInt' });
// 刷新
$('#lr_refresh').on('click', function () {
location.reload();
});
// 查看
$('#lr_views').on('click', function () {
var keyValue = $('#gridtable').jfGridValue('ID');
if (learun.checkrow(keyValue)) {
if (keyValue.indexOf(',') != -1) {
learun.alert.warning("只能选择一条记录进行查看!");
return;
}
learun.layerForm({
id: 'formview',
title: '查看',
url: top.$.rootUrl + '/EducationalAdministration/StuTransferInfo/FormView?keyValue=' + keyValue,
width: 1000,
height: 600,
btn: null
});
}
});
},
initGird: function () {
$('#gridtable').lrAuthorizeJfGridLei({
url: top.$.rootUrl + '/EducationalAdministration/StuTransferInfo/GetPageList',
headData: [
{ label: '姓名', name: 'StuName', width: 100, align: "left" },
{ label: '学号', name: 'StuNo', width: 160, align: "left" },
{
label: "性别", name: "GenderNo", width: 80, align: "left",
formatter: function (cellvalue) {
return cellvalue == true ? "男" : "女";
}
},
{ label: '身份证号', name: 'IdentityCardNo', width: 200, align: "left" },
{
label: '原班级', name: 'ClassNo', width: 150, align: "left",
formatterAsync: function (callback, value, row, op, $cell) {
learun.clientdata.getAsync('custmerData', {
url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'bjsj',
key: value,
keyId: 'classno',
callback: function (_data) {
callback(_data['classname']);
}
});
}
},
{
label: '原专业', name: 'MajorNo', width: 150, align: "left",
formatterAsync: function (callback, value, row, op, $cell) {
learun.clientdata.getAsync('custmerData', {
url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'CdMajorInfo',
key: value,
keyId: 'majorno',
callback: function (_data) {
callback(_data['majorname']);
}
});
}
},
//{
// label: '原系部', name: 'DeptNo', width: 100, align: "left",
// formatterAsync: function (callback, value, row, op, $cell) {
// learun.clientdata.getAsync('custmerData', {
// url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'CdDeptInfo',
// key: value,
// keyId: 'deptno',
// callback: function (_data) {
// callback(_data['deptname']);
// }
// });
// }
//},
{ label: '年级', name: 'Grade', width: 100, align: "left" },
{
label: '学制', name: 'EduSystem', width: 200, align: "left",
formatterAsync: function (callback, value, row, op, $cell) {
learun.clientdata.getAsync('dataItem', {
key: value,
code: 'EduSystem',
callback: function (_data) {
callback(_data.text);
}
});
}
},
//{
// label: '入班日期', name: 'LeaveDate', width: 100, align: "left",
// formatter: function (cellvalue) {
// return learun.formatDate(cellvalue, 'yyyy-MM-dd');
// }
//},
//{
// label: '离班日期', name: 'EnteDate', width: 100, align: "left",
// formatter: function (cellvalue) {
// return learun.formatDate(cellvalue, 'yyyy-MM-dd');
// }
//},
//{
// label: '现班级', name: 'NewClassNo', width: 100, align: "left",
// formatterAsync: function (callback, value, row, op, $cell) {
// learun.clientdata.getAsync('custmerData', {
// url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'bjsj',
// key: value,
// keyId: 'classno',
// callback: function (_data) {
// callback(_data['classname']);
// }
// });
// }
//},
//{
// label: '现专业', name: 'NewMajorNo', width: 100, align: "left",
// formatterAsync: function (callback, value, row, op, $cell) {
// learun.clientdata.getAsync('custmerData', {
// url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'CdMajorInfo',
// key: value,
// keyId: 'majorno',
// callback: function (_data) {
// callback(_data['majorname']);
// }
// });
// }
//},
//{
// label: '现系部', name: 'NewDeptNo', width: 100, align: "left",
// formatterAsync: function (callback, value, row, op, $cell) {
// learun.clientdata.getAsync('custmerData', {
// url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'CdDeptInfo',
// key: value,
// keyId: 'deptno',
// callback: function (_data) {
// callback(_data['deptname']);
// }
// });
// }
//},
//{ label: '现年级', name: 'NewGrade', width: 60, align: "left" },
//{
// label: '创建时间', name: 'CreateTime', width: 100, align: "left",
// formatter: function (cellvalue) {
// return learun.formatDate(cellvalue, 'yyyy-MM-dd');
// }
//},
//{
// label: '创建用户', name: 'CreateUserId', width: 200, align: "left",
// formatterAsync: function (callback, value, row, op, $cell) {
// learun.clientdata.getAsync('custmerData', {
// url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'BaseUser',
// key: value,
// keyId: 'f_userid',
// callback: function (_data) {
// callback(_data['f_realname']);
// }
// });
// }
//},
//{
// label: '审核时间', name: 'CheckTime', width: 200, align: "left",
// formatter: function (cellvalue) {
// return learun.formatDate(cellvalue, 'yyyy-MM-dd');
// }
//},
//{
// label: '审核用户', name: 'CheckUserId', width: 200, align: "left",
// formatterAsync: function (callback, value, row, op, $cell) {
// learun.clientdata.getAsync('custmerData', {
// url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'BaseUser',
// key: value,
// keyId: 'f_userid',
// callback: function (_data) {
// callback(_data['f_realname']);
// }
// });
// }
//},
{
label: '审核状态', name: 'F_EnabledMark', width: 200, align: "left",
formatter: function (cellvalue) {
return cellvalue == "1" ? "<span class=\"label label-success\">已生效</span>" : "<span class=\"label label-danger\">未生效</span>";
}
},
{
label: '异动类型', name: 'AnomalousType', width: 100, align: "left",
formatterAsync: function (callback, value, row, op, $cell) {
learun.clientdata.getAsync('dataItem', {
key: value,
code: 'StuChangeType',
callback: function (_data) {
callback(_data.text);
}
});
}
},
//{ label: '异动原因', name: 'ChangeReason', width: 300, align: "left" },
//{
// label: '是否保留学籍', name: 'StuStatus', width: 80, align: "left",
// formatterAsync: function (callback, value, row, op, $cell) {
// learun.clientdata.getAsync('dataItem', {
// key: value,
// code: 'YesOrNoInt',
// callback: function (_data) {
// callback(_data.text);
// }
// });
// }
//},
//{
// label: '是否注销账号', name: 'F_WriteMark', width: 80, align: "left",
// formatterAsync: function (callback, value, row, op, $cell) {
// learun.clientdata.getAsync('dataItem', {
// key: value,
// code: 'YesOrNoInt',
// callback: function (_data) {
// callback(_data.text);
// }
// });
// }
//},
//{
// label: '是否恢复学籍', name: 'RecoverStuStatus', width: 80, align: "left",
// formatterAsync: function (callback, value, row, op, $cell) {
// learun.clientdata.getAsync('dataItem', {
// key: value,
// code: 'YesOrNoInt',
// callback: function (_data) {
// callback(_data.text);
// }
// });
// }
//},
//{
// label: '是否恢复账号', name: 'RecoverWriteMark', width: 80, align: "left",
// formatterAsync: function (callback, value, row, op, $cell) {
// learun.clientdata.getAsync('dataItem', {
// key: value,
// code: 'YesOrNoInt',
// callback: function (_data) {
// callback(_data.text);
// }
// });
// }
//},
//{ label: '修学年限', name: 'SuspensionPeriod', width: 200, align: "left" },
//{
// label: '休学开始时间', name: 'SuspensionBeginTime', width: 100, align: "left",
// formatter: function (cellvalue) {
// return learun.formatDate(cellvalue, 'yyyy-MM-dd');
// }
//},
//{
// label: '休学结束时间', name: 'SuspensionEndTime', width: 100, align: "left",
// formatter: function (cellvalue) {
// return learun.formatDate(cellvalue, 'yyyy-MM-dd');
// }
//},
//{ label: '转学前学校', name: 'TransferSchool', width: 150, align: "left" },
//{ label: '转学前学号', name: 'TransferStuNo', width: 100, align: "left" },
//{
// label: '出身日期', name: 'Birthday', width: 100, align: "left",
// formatter: function (cellvalue) {
// return learun.formatDate(cellvalue, 'yyyy-MM-dd');
// }
//},
//{ label: '民族', name: 'NationalityNo', width: 80, align: "left" },
//{ label: '省', name: 'Province', width: 100, align: "left" },
//{ label: '市', name: 'City', width: 100, align: "left" },
//{ label: '县/区', name: 'County', width: 100, align: "left" },
//{ label: '联系电话', name: 'Mobile', width: 100, align: "left" },
//{ label: '家庭地址', name: 'MailAddress', width: 200, align: "left" },
//{ label: '转出学校', name: 'OutSchool', width: 100, align: "left" },
//{ label: '备注', name: 'Remark', width: 500, align: "left" },
],
mainId: 'ID',
isPage: true,
rows: 100,
});
page.search();
},
search: function (param) {
param = param || {};
param.SqlParameter = ' and F_EnabledMark = 1 ';
$('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(param) });
}
};
refreshGirdData = function () {
$('#gridtable').jfGridSet('reload');
};
page.init();
}

+ 2
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj Переглянути файл

@@ -1366,6 +1366,7 @@
<Content Include="Areas\EducationalAdministration\Views\StuScore\ScoreQueryAllIndex.js" />
<Content Include="Areas\EducationalAdministration\Views\StuTransferInfo\CheckIndex.js" />
<Content Include="Areas\EducationalAdministration\Views\StuTransferInfo\FormView.js" />
<Content Include="Areas\EducationalAdministration\Views\StuTransferInfo\IndexQuery.js" />
<Content Include="Areas\EducationalAdministration\Views\StuTransferInfo\RolloffIndex.js" />
<Content Include="Areas\EducationalAdministration\Views\StuTransferInfo\ReturnIndex.js" />
<Content Include="Areas\EducationalAdministration\Views\StuTransferInfo\IntoIndex.js" />
@@ -8074,6 +8075,7 @@
<Content Include="Areas\EducationalAdministration\Views\StuTransferInfo\ReturnIndex.cshtml" />
<Content Include="Areas\EducationalAdministration\Views\StuTransferInfo\RolloffIndex.cshtml" />
<Content Include="Areas\EducationalAdministration\Views\StuTransferInfo\FormView.cshtml" />
<Content Include="Areas\EducationalAdministration\Views\StuTransferInfo\IndexQuery.cshtml" />
<None Include="Properties\PublishProfiles\CustomProfile.pubxml" />
<None Include="Properties\PublishProfiles\FolderProfile.pubxml" />
<Content Include="Views\Login\Default-beifen.cshtml" />


+ 6
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScoreNotPassTran/StuScoreNotPassTranService.cs Переглянути файл

@@ -128,6 +128,12 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration
strSql.Append("SELECT ");
strSql.Append(fieldSql);
strSql.Append(" FROM StuScoreNotPassTran t ");
var userlogin = LoginUserInfo.Get();
if (userlogin.Description == "学生")
{
strSql.Append(" where 1= 1 and Stuno = '" + userlogin.account + "'");
}

return this.BaseRepository("CollegeMIS").FindList<StuScoreNotPassTranEntity>(strSql.ToString(), pagination);
}
catch (Exception ex)


+ 5
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScoreNotPassTwoTran/StuScoreNotPassTwoTranService.cs Переглянути файл

@@ -128,6 +128,11 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration
strSql.Append("SELECT ");
strSql.Append(fieldSql);
strSql.Append(" FROM StuScoreNotPassTwoTran t ");
var userlogin = LoginUserInfo.Get();
if (userlogin.Description == "学生")
{
strSql.Append(" where 1= 1 and Stuno = '" + userlogin.account + "'");
}
return this.BaseRepository("CollegeMIS").FindList<StuScoreNotPassTwoTranEntity>(strSql.ToString(), pagination);
}
catch (Exception ex)


+ 5
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScoreTran/StuScoreTranService.cs Переглянути файл

@@ -130,6 +130,11 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration
strSql.Append("SELECT ");
strSql.Append(fieldSql);
strSql.Append(" FROM StuScoreTran t ");
var userlogin = LoginUserInfo.Get();
if (userlogin.Description == "学生")
{
strSql.Append(" where 1= 1 and Stuno = '" + userlogin.account + "'");
}
return this.BaseRepository("CollegeMIS").FindList<StuScoreTranEntity>(strSql.ToString(), pagination);
}
catch (Exception ex)


+ 3
- 3
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuTransferInfo/StuTransferInfoService.cs Переглянути файл

@@ -90,10 +90,10 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration
dp.Add("ClassNo", queryParam["ClassNo"].ToString(), DbType.String);
strSql.Append(" AND t.ClassNo = @ClassNo ");
}
if (!queryParam["ClassNo"].IsEmpty())
if (!queryParam["CreateUserId"].IsEmpty())
{
dp.Add("CheckUserId", queryParam["CheckUserId"].ToString(), DbType.String);
strSql.Append(" AND t.CheckUserId = @CheckUserId ");
dp.Add("CreateUserId", queryParam["CreateUserId"].ToString(), DbType.String);
strSql.Append(" AND t.CreateUserId = @CreateUserId ");
}
if (!queryParam["CheckUserId"].IsEmpty())
{


+ 10
- 0
Learun.Framework.Ultimate V7/VisitService/App.config Переглянути файл

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
<appSettings>
<!--长阳API地址,如有多个请用英文分号隔开-->
<add key="cyapi" value="https://www.baidu.com/" />
</appSettings>
</configuration>

+ 27
- 0
Learun.Framework.Ultimate V7/VisitService/Program.cs Переглянути файл

@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace VisitService
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
static void Main()
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new QuanjiangDigitalSchollVisitService()
};
ServiceBase.Run(ServicesToRun);
}

}
}

+ 60
- 0
Learun.Framework.Ultimate V7/VisitService/ProjectInstaller.Designer.cs Переглянути файл

@@ -0,0 +1,60 @@
namespace VisitService
{
partial class ProjectInstaller
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;

/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}

#region 组件设计器生成的代码

/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.serviceProcessInstaller1 = new System.ServiceProcess.ServiceProcessInstaller();
this.QuanjiangDigitalSchollVisitService = new System.ServiceProcess.ServiceInstaller();
//
// serviceProcessInstaller1
//
this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalSystem;
this.serviceProcessInstaller1.Password = null;
this.serviceProcessInstaller1.Username = null;
//
// QuanjiangDigitalSchollVisitService
//
this.QuanjiangDigitalSchollVisitService.Description = "定时访问api";
this.QuanjiangDigitalSchollVisitService.DisplayName = "QuanjiangDigitalSchollVisitService";
this.QuanjiangDigitalSchollVisitService.ServiceName = "QuanjiangDigitalSchollVisitService";
this.QuanjiangDigitalSchollVisitService.StartType = System.ServiceProcess.ServiceStartMode.Automatic;
//
// ProjectInstaller
//
this.Installers.AddRange(new System.Configuration.Install.Installer[] {
this.serviceProcessInstaller1,
this.QuanjiangDigitalSchollVisitService});

}

#endregion

private System.ServiceProcess.ServiceProcessInstaller serviceProcessInstaller1;
private System.ServiceProcess.ServiceInstaller QuanjiangDigitalSchollVisitService;
}
}

+ 19
- 0
Learun.Framework.Ultimate V7/VisitService/ProjectInstaller.cs Переглянути файл

@@ -0,0 +1,19 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration.Install;
using System.Linq;
using System.Threading.Tasks;

namespace VisitService
{
[RunInstaller(true)]
public partial class ProjectInstaller : System.Configuration.Install.Installer
{
public ProjectInstaller()
{
InitializeComponent();
}
}
}

+ 129
- 0
Learun.Framework.Ultimate V7/VisitService/ProjectInstaller.resx Переглянути файл

@@ -0,0 +1,129 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.

mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="serviceProcessInstaller1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 55</value>
</metadata>
<metadata name="QuanjiangDigitalSchollVisitService.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>208, 17</value>
</metadata>
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
</root>

+ 36
- 0
Learun.Framework.Ultimate V7/VisitService/Properties/AssemblyInfo.cs Переглянути файл

@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("VisitService")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("HP Inc.")]
[assembly: AssemblyProduct("VisitService")]
[assembly: AssemblyCopyright("Copyright © HP Inc. 2023")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]

// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("1d482884-8749-41e7-b1e3-362612799615")]

// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
// 方法是按如下所示使用“*”: :
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

+ 74
- 0
Learun.Framework.Ultimate V7/VisitService/Quanjiang.DigitalScholl.VisitService.csproj Переглянути файл

@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{1D482884-8749-41E7-B1E3-362612799615}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>Quanjiang.DigitalScholl.VisitService</RootNamespace>
<AssemblyName>Quanjiang.DigitalScholl.VisitService</AssemblyName>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.configuration" />
<Reference Include="System.Configuration.Install" />
<Reference Include="System.Core" />
<Reference Include="System.Management" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.ServiceProcess" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="ProjectInstaller.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="ProjectInstaller.Designer.cs">
<DependentUpon>ProjectInstaller.cs</DependentUpon>
</Compile>
<Compile Include="Service1.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Service1.Designer.cs">
<DependentUpon>Service1.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="ProjectInstaller.resx">
<DependentUpon>ProjectInstaller.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

+ 37
- 0
Learun.Framework.Ultimate V7/VisitService/Service1.Designer.cs Переглянути файл

@@ -0,0 +1,37 @@
namespace VisitService
{
partial class QuanjiangDigitalSchollVisitService
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;

/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}

#region 组件设计器生成的代码

/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
this.ServiceName = "QuanjiangDigitalSchollVisitService";
}

#endregion
}
}

+ 91
- 0
Learun.Framework.Ultimate V7/VisitService/Service1.cs Переглянути файл

@@ -0,0 +1,91 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Net;
using System.ServiceProcess;
using System.Text;
using System.Threading.Tasks;

namespace VisitService
{
public partial class QuanjiangDigitalSchollVisitService : ServiceBase
{
public QuanjiangDigitalSchollVisitService()
{
InitializeComponent();
}

private System.Timers.Timer timer1 = new System.Timers.Timer(60000);
private static string pathbase = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
//private static string logPath = pathbase + @"\" + DateTime.Now.ToString("yyyyMMdd") + @"\log_start.txt";
protected override void OnStart(string[] args)
{
timer1.Elapsed += new System.Timers.ElapsedEventHandler(timer1_Elapsed);
timer1.AutoReset = true;
timer1.Enabled = true;
timer1.Start();
}

protected override void OnStop()
{
this.timer1.Enabled = false;
}

private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
var logPath_timer = pathbase + @"\" + DateTime.Now.ToString("yyyyMMdd") + @"\log.txt";
try
{
//记录日志
if (!Directory.Exists(pathbase + @"\" + DateTime.Now.ToString("yyyyMMdd")))
{
//不存在文件夹则创建
DirectoryInfo directoryInfo = new DirectoryInfo(pathbase + @"\" + DateTime.Now.ToString("yyyyMMdd"));
directoryInfo.Create();
}
if (!File.Exists(logPath_timer))
{
FileStream fs = File.Create(logPath_timer);//创建文件
fs.Close();
}

var url = System.Configuration.ConfigurationManager.AppSettings["cyapi"].ToString();
var arr = url.Split(';');
foreach (var item in arr)
{
try
{
System.IO.File.AppendAllText(logPath_timer,
"\r\n" + DateTime.Now + "\r\n开始访问:" + item);
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);
myRequest.KeepAlive = false;
myRequest.Method = "HEAD"; //设置提交方式可以为"get","head"等
//myRequest.Timeout = 60000; //设置网页响应时间长度
myRequest.AllowAutoRedirect = false; //是否允许自动重定向
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
// return (myResponse.StatusCode == HttpStatusCode.OK);//返回响应的状态
System.IO.File.AppendAllText(logPath_timer,
"\r\n" + DateTime.Now + "\r\n访问结果:" + myResponse.StatusCode);
myResponse.Dispose();
}
catch (Exception ex)
{
System.IO.File.AppendAllText(logPath_timer,
"\r\n" + DateTime.Now + "\r\n访问结果异常,异常信息:" + ex.Message + ",访问地址:" + item);
}
}

}
catch (Exception ex)
{
System.IO.File.AppendAllText(logPath_timer,
"\r\n" + DateTime.Now + "\r\n访问结果异常,异常信息:" + ex.Message);
}
}
}
}

+ 39
- 1
Learun.Framework.Ultimate V7/西昌单校区版V3.0.sln Переглянути файл

@@ -128,6 +128,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Quanjiang.DigitalSchool.Asp
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Quanjiang.DigitalScholl.SendSms", "Quanjiang.DigitalScholl.SendSms\Quanjiang.DigitalScholl.SendSms.csproj", "{65CC5CDC-9638-4DD0-B2D6-3182CC16D2DA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Quanjiang.DigitalScholl.VisitService", "VisitService\Quanjiang.DigitalScholl.VisitService.csproj", "{1D482884-8749-41E7-B1E3-362612799615}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Android = Debug|Android
@@ -1662,6 +1664,42 @@ Global
{65CC5CDC-9638-4DD0-B2D6-3182CC16D2DA}.Release|Windows-x64.Build.0 = Release|Any CPU
{65CC5CDC-9638-4DD0-B2D6-3182CC16D2DA}.Release|Windows-x86.ActiveCfg = Release|Any CPU
{65CC5CDC-9638-4DD0-B2D6-3182CC16D2DA}.Release|Windows-x86.Build.0 = Release|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Debug|Android.ActiveCfg = Debug|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Debug|Android.Build.0 = Debug|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Debug|iOS.ActiveCfg = Debug|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Debug|iOS.Build.0 = Debug|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Debug|Windows-ARM.ActiveCfg = Debug|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Debug|Windows-ARM.Build.0 = Debug|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Debug|Windows-x64.ActiveCfg = Debug|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Debug|Windows-x64.Build.0 = Debug|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Debug|Windows-x86.ActiveCfg = Debug|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Debug|Windows-x86.Build.0 = Debug|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Development|Android.ActiveCfg = Debug|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Development|Android.Build.0 = Debug|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Development|Any CPU.ActiveCfg = Debug|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Development|Any CPU.Build.0 = Debug|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Development|iOS.ActiveCfg = Debug|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Development|iOS.Build.0 = Debug|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Development|Windows-ARM.ActiveCfg = Debug|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Development|Windows-ARM.Build.0 = Debug|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Development|Windows-x64.ActiveCfg = Debug|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Development|Windows-x64.Build.0 = Debug|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Development|Windows-x86.ActiveCfg = Debug|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Development|Windows-x86.Build.0 = Debug|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Release|Android.ActiveCfg = Release|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Release|Android.Build.0 = Release|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Release|Any CPU.Build.0 = Release|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Release|iOS.ActiveCfg = Release|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Release|iOS.Build.0 = Release|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Release|Windows-ARM.ActiveCfg = Release|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Release|Windows-ARM.Build.0 = Release|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Release|Windows-x64.ActiveCfg = Release|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Release|Windows-x64.Build.0 = Release|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Release|Windows-x86.ActiveCfg = Release|Any CPU
{1D482884-8749-41E7-B1E3-362612799615}.Release|Windows-x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -1713,7 +1751,7 @@ Global
{E05A2B9A-A939-450F-9A44-A8B3201D055A} = {ED258CD0-0A0C-490B-9D8F-B4CEC4467251}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
EnterpriseLibraryConfigurationToolBinariesPath = packages\Unity.2.1.505.0\lib\NET35
SolutionGuid = {968C278F-4142-4DFF-96B0-B3D70A649451}
EnterpriseLibraryConfigurationToolBinariesPath = packages\Unity.2.1.505.0\lib\NET35
EndGlobalSection
EndGlobal

Завантаження…
Відмінити
Зберегти