import moment from 'moment';
import fs from 'fs';
import { promises as fsPromises } from 'fs';
import mps, { ArrYear, getDistrict } from '../../model/mps.js';
import commonModel from '../../model/commonModel.js';
import { globalCache } from '../../util/GlobalCache.js';
import config from '../../config/index.js';
import _ from 'lodash';
import axios from 'axios';
import { stringUtils } from '../../util/stringClass.js';
import { Encrypt, Decrypt } from '../../util/crypto/index.js';
/**
* 分数线网页首页
* @generator
* @yields {Object} 返回渲染后的HTML页面内容
* @description 读取并返回public目录下的mpsDefault.html文件内容作为响应体
*/
export async function MPSDefault(ctx) {
console.log("mpsDefault");
const data = await fsPromises.readFile("./public/mpsDefault.html");
ctx.body = data.toString();
};
/**
* 分数线网页
*/
export async function WebMPSHtml(ctx) {
let cookie = ctx.cookies.get("test");
if (ctx.req.headers.host == "localhost:"+config.port) {
cookie = "+yqoClZSJfwPPQwow7K12IboznGF059HmGsK1lpS+4Y=";
}
if (cookie == "+yqoClZSJfwPPQwow7K12IboznGF059HmGsK1lpS+4Y=" ||
cookie == "ckQpqDsukHN49UgwpRdoYRC7uH1hTfXvhJ71hPzgyfM=" ||
cookie == "IAdzqqCJ9ixjFGemUoqrJABRsF3EpvPgnIgGYFCWOhg=") {
const data = await fsPromises.readFile("./public/mg/mps.html");
ctx.body = data.toString();
} else {
ctx.body = "
请重新登录";
}
};
/**
* 分数线学校管理网页
*/
export async function WebMPSSchoolHtml(ctx) {
let cookie = ctx.cookies.get("test");
if (ctx.req.headers.host == "localhost:"+config.port) {
cookie = "+yqoClZSJfwPPQwow7K12IboznGF059HmGsK1lpS+4Y=";
}
if (cookie == "+yqoClZSJfwPPQwow7K12IboznGF059HmGsK1lpS+4Y=" ||
cookie == "ckQpqDsukHN49UgwpRdoYRC7uH1hTfXvhJ71hPzgyfM=" ||
cookie == "IAdzqqCJ9ixjFGemUoqrJABRsF3EpvPgnIgGYFCWOhg=") {
const data = await fsPromises.readFile("./public/mg/mps_school.html");
ctx.body = data.toString();
} else {
ctx.body = "请重新登录";
}
};
/**
* 分数线纠错网页
*/
export async function WebMPSErrorHtml(ctx) {
let cookie = ctx.cookies.get("test");
if (ctx.req.headers.host == "localhost:"+config.port) {
cookie = "+yqoClZSJfwPPQwow7K12IboznGF059HmGsK1lpS+4Y=";
}
if (cookie == "+yqoClZSJfwPPQwow7K12IboznGF059HmGsK1lpS+4Y=" ||
cookie == "ckQpqDsukHN49UgwpRdoYRC7uH1hTfXvhJ71hPzgyfM=" ||
cookie == "IAdzqqCJ9ixjFGemUoqrJABRsF3EpvPgnIgGYFCWOhg=") {
const data = await fsPromises.readFile("./public/mg/mps_error.html");
ctx.body = data.toString();
} else {
ctx.body = "请重新登录";
}
};
export async function MPSLogin(ctx) {
//console.log("LoginStart:" + new Date().getSeconds());
let param = ctx.request.body;
if (param.param) {
const paramStr = Decrypt(param.param, config.urlSecrets.aes_key, config.urlSecrets.aes_iv);
//console.log("paramStr:"+paramStr);
param = JSON.parse(paramStr);
}
const code = param.Code;
//console.log("code:"+code);
const url = `https://api.weixin.qq.com/sns/jscode2session?appid=${config.wx.mps_appid}&secret=${config.wx.mps_appsecret}&js_code=${code}&grant_type=authorization_code`;
let result = await axios.get(url)
.then(res => {
const json = res.data;
if (json && json.openid) {
param.OpenID = json.openid;
param.sessionKey = json.session_key;
if (json.unionid) {
param.UnionID = json.unionid;
}
return {errcode: 10000};
}
return json;
})
.catch(err => ({errcode: 101, errStr: err}));
//console.log("OpenID:"+param.OpenID);
delete param.GroupInfo;
if (result.errcode === 10000) {
delete param.Code;
//console.log("GetUsersInfoStart:" + new Date().getSeconds());
if (param.sessionKey && param.iv && param.encryptedData) {
const pc = new WXBizDataCrypt(config.wx.mps_appid, param.sessionKey);
const dataUnionID = pc.decryptData(param.encryptedData, param.iv);
//console.log(dataUnionID);
param.UnionID = dataUnionID.unionId;
}
delete param.sessionKey;
delete param.iv;
delete param.encryptedData;
let userList = await mps.GetUsersInfo(param);
//console.log("GetUsersInfoSuccess:" + new Date().getSeconds());
if (userList.length > 0) {
param.LastLoginTime = new Date();
delete param.Introducer;
delete param.UserSource;
delete param.SourceID;
delete param.NickName;
delete param.AvatarUrl;
await mps.UpdateUsers(param);
//console.log("UpdateUsersSuccess:" + new Date().getSeconds());
userList = await mps.GetUsersInfo(param);
//console.log("GetUsersInfoSuccess2:" + new Date().getSeconds());
} else {
param.CreateTime = new Date();
param.LastLoginTime = param.CreateTime;
param.ProductServiceTime = param.CreateTime;
await mps.AddUsers(param);
//console.log("AddUsersSuccess:" + new Date().getSeconds());
userList = await mps.GetUsersInfo(param);
//console.log("GetUsersInfoSuccess2:" + new Date().getSeconds());
}
delete userList[0].OpenID;
//产品支付是否显示
var param2={
ProgramID:173,
Version:param.ProgramVersion,
};
var result3 = await commonModel.GetProductVersionList(param2);
if (result3) {
if ((param2.Version==result3[0].Version && result3[0].IsShowPay<=0)
|| param2.Version>result3[0].Version){
userList[0].IsShow=result3[0].IsShowPay;
}
else{
userList[0].IsShow = 1;
}
if (process.env.NODE_ENV == 'development'){
//userList[0].IsShow = 0;
}
else {
var today = moment().format('YYYYMMDD');
//针对微信测试用户,永远是无支付状态
if ((userList[0].UserSource == '1001' && userList[0].System == "iOS 10.0.1" && userList[0].UserID>2)
|| (!userList[0].UserSource && (!userList[0].LastUserSource || userList[0].LastUserSource > 10000))
|| userList[0].NickName.indexOf("dgztest") >= 0) {
userList[0].IsShow = -1;
}
else if (userList[0].LastUserSource == '1012'
&& userList[0].IsPay == 0
&& userList[0].IsMember == 0
&& userList[0].IsApply == 0
&& userList[0].IsTryOut == 0
&& userList[0].Model == "iPhone XS MAX China-exclusive") {
userList[0].IsShow = -1;
}
}
}
userList[0].ArrYear = ArrYear;
result = {errcode: 10000, result: userList[0]};
}
ctx.body = result;
};
//得到所有区
export async function GetMPSDistrict(ctx) {
let param = {
IsAll: ctx.query.IsAll || 0,
};
let result = await mps.GetMPSDistrict(param);
ctx.body = {"errcode": 10000, result: result};
};
// 获取反馈列表
export async function GetMPSFeedbackList(ctx) {
let param = {
UserID: ctx.query.UserID || 0,
};
let sql = "SELECT * FROM kylx365_db.MPS_Feedback order by Flag,ID desc limit 200;";
if (param.UserID>0)
sql="SELECT * FROM kylx365_db.MPS_Feedback where Flag=1 order by ID desc limit 100;";
const list = await commonModel.RunSql({}, sql);
list.forEach(item => {
if (param.UserID>0)
item.CreateTime = moment(item.CreateTime).format('YYYY年MM月DD日');
else
item.CreateTime = moment(item.CreateTime).format('YYYY-MM-DD HH:mm:ss');
if (item.ProgramID==173)
item.ProgramName="分数线";
else if (item.ProgramID==186)
item.ProgramName="语境";
});
ctx.body = {"errcode": 10000, result: list};
}
export async function MPSFeedback(ctx) {
let param = ctx.request.body;
param.CreateTime=moment().format('YYYY-MM-DD HH:mm:ss');
if (!param.ProgramID)
param.ProgramID=173;
await mps.AddFeedback(param);
ctx.body = {errcode: 10000};
}
// 订阅消息
export async function SubscribeMessage(ctx) {
const param = {
UserID: ctx.query.UserID || 0,
IsMessage: 1,
};
await mps.UpdateUsersByUserID(param);
ctx.body = {errcode: 10000, result: 1};
}
// 获取祝福语
export async function GetMPSWish(ctx) {
const param = {
WishType: ctx.query.WishType || "all",
UserID: ctx.query.UserID || 0,
SchoolID: ctx.query.SchoolID || 0,
ID: ctx.query.ID || 0,
};
const functionName="GetMPSWish?WishType=all";
let result=0;
if (param.WishType=="all")
result=globalCache.get(functionName);
if (result==0){
let list = await mps.GetMPSWish(param);
let num = 1;
if (param.WishType === "all") {
num = 5;
list = _.shuffle(list);
} else if (param.WishType === "school") {
num = 3;
} else if (param.WishType === "schoolAll") {
num = list.length;
}
let arr = [];
for (let i = 0; i < num; i++) {
if (list[i]) {
arr.push(buildWish(list[i], param.WishType));
}
}
if (param.WishType === "school" && list.length > 0) {
list[0].RowCount = list.length;
}
result = arr;
if (param.WishType=="all"){
globalCache.set(functionName, result, config.BufferMemoryTimeLowNormal);
console.log("缓存");
}
}
ctx.body = {errcode: 10000, result: result};
}
// 更新反馈状态
export async function UpdateMPSFeedback(ctx) {
const param = {
ID: ctx.query.ID || 0,
Flag: ctx.query.Flag || 0,
};
param.UpdateTime = moment().format('YYYY-MM-DD HH:mm:ss');
await mps.UpdateMPSFeedback(param);
ctx.body = {errcode: 10000};
}
// 生成二维码
export async function BuildMPSQRCode(ctx) {
const param = {
BuildType: ctx.query.BuildType || "Article",
ID: ctx.query.ID || 0,
};
const url = `https://api.weixin.qq.com/cgi-bin/token?appid=${config.wx.mps_appid}&secret=${config.wx.mps_appsecret}&grant_type=client_credential`;
const result = await axios.get(url)
.then(res => {
const json = res.data;
if (json && json.access_token) {
param.access_token = json.access_token;
return {errcode: 10000};
}
return json;
})
.catch(err => ({errcode: 101, errStr: err}));
const wxUrl = `https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=${param.access_token}`;
const path = './public/images/acode/';
let imageUrl = '';
const postJSON = {};
if (param.BuildType === "Article") {
postJSON.width = 280;
postJSON.scene = `type=article&ID=${param.ID}`;
imageUrl = `ScoreLineArticle_${param.ID-173}.png`;
} else if (param.BuildType === "Web") {
postJSON.width = 280;
postJSON.scene = `type=web&ID=${param.ID}`;
imageUrl = 'MPS_WebQRCode.png';
}
// 使用axios的流式响应处理
const response = await axios.post(wxUrl, postJSON, {
responseType: 'stream'
});
// 创建写入流并处理
const writer = fs.createWriteStream(path + imageUrl);
response.data.pipe(writer);
await new Promise((resolve, reject) => {
writer.on('finish', resolve);
writer.on('error', reject);
});
ctx.body = {"errcode": 10000};
}
// 更新祝福语点赞数
export async function UpdateMPSWishLikeNum(ctx) {
const param = {
ID: ctx.query.ID || 0,
LikeNumAdd: ctx.query.LikeNumAdd || 0,
};
await mps.UpdateMPSWishLikeNum(param);
ctx.body = {errcode: 10000};
}
// 获取通知
export async function GetMPSNotice(ctx) {
const result = {IsShow: false};
const updateTimeList = await commonModel.GetDataUpdateStatus();
const updateTime = moment(updateTimeList[8].UpdateTime).format('YYYY.MM.DD HH:mm:ss');
const today = moment().format('YYYY.MM.DD HH:mm:ss');
if (today < updateTime) {
result.IsShow = true;
result.Title = "更新通知";
// const content = [
// "2025年上海中考招生计划已经全部整理完毕,包括各区各校的自主招生、名额到区、名额到校、1-15志愿等数据。请将信息分享给身边的家长朋友们。非常谢谢您的支持!",
// "今年夏天要读的书,必须是《录取通知书》,祝孩子们中考考出最优成绩!",
// "最新的上海16区统一招生1-15志愿各校计划整理完毕,欢迎查看!"
// ];
// let rand=stringUtils.Random(0,content.length-1);
// result.Content=content[rand];
// const content=[
// "向您推荐团队新作「语境背单词」小程序,通过阅读理解+选择题,帮孩子高效记忆单词、灵活运用考点,为初高中生设计,欢迎体验!",
// ];
result.Content=content[0];
//有按钮的情况
result.ButtonTitle="语境背单词";
result.ButtonIcon="icon_fold_05";
result.BottonClick="gotoMiniprogram";
}
ctx.body = {errcode: 10000, result};
}
// 获取文章
export async function GetMPSArticle(ctx) {
let articles=[
{
ID: 26,
Category: "2025",
IsPageShow:1,
Logo: "icon_sys_02.png",
Title: "2025年国际课程班和中外合作办学自主招生计划情况",
TitleShort: "2025上海国际班中考自招信息",
TitleImage: "doc_2600.png",
Content: [{
Name: "doc_2601.png"
},
{
Name: "doc_2602.png"
},
{
Name: "doc_2603.png",
Fun: "showImage",
Url: "post_26.png"
},
{
Name: "doc_2604.png"
},
{
Name: "doc_2605.png"
},
{
Name: "doc_2606.png"
}
]
},
{
ID: 25,
Category: "2025",
IsPageShow:1,
Logo: "icon_sys_02.png",
Title: "2025年20所市特色普通高中自主招生情况",
TitleShort: "2025上海特色高中自招信息",
TitleImage: "doc_2500.png",
Content: [{
Name: "doc_2501.png"
},{
Name: "doc_2502.png",
Fun: "showImage",
Url: "post_25.png"
},{
Name: "doc_2503.png",
Fun: "goto",
Url: "school?ID=82"
},{
Name: "doc_2504.png",
Fun: "goto",
Url: "school?ID=94"
},{
Name: "doc_2505.png",
Fun: "goto",
Url: "school?ID=100"
},{
Name: "doc_2506.png",
Fun: "goto",
Url: "school?ID=114"
},{
Name: "doc_2507.png",
Fun: "goto",
Url: "school?ID=115"
},{
Name: "doc_2508.png",
Fun: "goto",
Url: "school?ID=116"
},{
Name: "doc_2509.png",
Fun: "goto",
Url: "school?ID=117"
},{
Name: "doc_2510.png",
Fun: "goto",
Url: "school?ID=132"
},{
Name: "doc_2511.png",
Fun: "goto",
Url: "school?ID=143"
},{
Name: "doc_2512.png",
Fun: "goto",
Url: "school?ID=167"
},{
Name: "doc_2513.png",
Fun: "goto",
Url: "school?ID=181"
},{
Name: "doc_2514.png",
Fun: "goto",
Url: "school?ID=192"
},{
Name: "doc_2515.png",
Fun: "goto",
Url: "school?ID=193"
},{
Name: "doc_2516.png",
Fun: "goto",
Url: "school?ID=194"
},{
Name: "doc_2517.png",
Fun: "goto",
Url: "school?ID=239"
},{
Name: "doc_2518.png",
Fun: "goto",
Url: "school?ID=241"
},{
Name: "doc_2519.png",
Fun: "goto",
Url: "school?ID=268"
},{
Name: "doc_2520.png",
Fun: "goto",
Url: "school?ID=91"
},{
Name: "doc_2521.png",
Fun: "goto",
Url: "school?ID=256"
},{
Name: "doc_2522.png",
Fun: "goto",
Url: "school?ID=261"
},{
Name: "doc_2523.png",
Fun: "goto",
Url: "search"
},{
Name: "doc_2524.png",
},{
Name: "doc_2525.png",
},
]
},
{
ID: 24,
Category: "2025",
IsPageShow:1,
Logo: "icon_sys_02.png",
Title: "2025年市级艺术骨干学生招收学校和项目",
TitleShort: "2025上海艺术骨干生中招信息",
TitleImage: "doc_2400.png",
Content: [{
Name: "doc_2401.png"
},{
Name: "doc_2402.png",
},{
Name: "doc_2403.png",
Fun: "showImage",
Url: "post_24.png"
},
]
},
{
ID: 23,
Category: "2025",
IsPageShow:1,
Logo: "icon_sys_02.png",
Title: "2025年市级优秀体育学生招收学校和项目",
TitleShort: "2025上海优秀体育生中招信息",
TitleImage: "doc_2300.png",
Content: [{
Name: "doc_2301.png"
},{
Name: "doc_2302.png",
},{
Name: "doc_2303.png",
Fun: "showImage",
Url: "post_23.png"
},
]
},
{
ID: 22,
Category: "2025",
IsPageShow:1,
Logo: "icon_sys_02.png",
Title: "2025年徐汇、普陀、虹口、闵行、嘉定、浦东、松江新增11所高中介绍",
TitleShort: "2025上海新增11所高中介绍",
TitleImage: "doc_2200.png",
Content: [{
Name: "doc_2201.png"
},{
Name: "doc_2202.png",
Fun: "goto",
Url: "school?ID=985"
},{
Name: "doc_2203.png",
Fun: "goto",
Url: "school?ID=986"
},{
Name: "doc_2204.png",
Fun: "goto",
Url: "school?ID=124"
},{
Name: "doc_2205.png",
Fun: "goto",
Url: "school?ID=127"
},{
Name: "doc_2206.png",
Fun: "goto",
Url: "school?ID=989"
},{
Name: "doc_2207.png",
Fun: "goto",
Url: "school?ID=990"
},{
Name: "doc_2208.png",
Fun: "goto",
Url: "school?ID=991"
},{
Name: "doc_2209.png",
Fun: "goto",
Url: "school?ID=992"
},{
Name: "doc_2210.png",
Fun: "goto",
Url: "school?ID=993"
},{
Name: "doc_2211.png",
Fun: "goto",
Url: "school?ID=994"
},{
Name: "doc_2212.png",
Fun: "goto",
Url: "school?ID=995"
},{
Name: "doc_2213.png",
Fun: "goto",
Url: "search"
},
]
},
{
ID: 20,
Category: "2024",
IsPageShow:1,
Logo: "icon_sys_02.png",
Title: "2024年国际课程班和中外合作办学自主招生计划情况",
TitleShort: "2024上海国际班中考自招信息",
TitleImage: "doc_2000.png",
Content: [{
Name: "doc_2001.png"
},
{
Name: "doc_2002.png"
},
{
Name: "doc_2003.png",
Fun: "showImage",
Url: "post_2001.png"
},
{
Name: "doc_2004.png"
},
{
Name: "doc_2005.png"
},
{
Name: "doc_2006.png"
}
]
},
{
ID: 19,
Category: "2024",
IsPageShow:1,
Logo: "icon_sys_02.png",
Title: "2024年市级艺术骨干学生招收学校和项目",
TitleShort: "2024上海艺术骨干生中招信息",
TitleImage: "doc_1900.png",
Content: [{
Name: "doc_1901.png"
},
{
Name: "doc_1902.png"
},
{
Name: "doc_1903.png",
Fun: "showImage",
Url: "post_1901.png"
},
{
Name: "doc_1904.png"
},
{
Name: "doc_1905.png",
Fun: "showImage",
Url: "post_1902.png"
}
]
},
{
ID: 18,
Category: "2024",
IsPageShow:1,
Logo: "icon_sys_02.png",
Title: "2024年市级优秀体育学生招收学校和项目",
TitleShort: "2024上海优秀体育生中招信息",
TitleImage: "doc_1800.png",
Content: [{
Name: "doc_1801.png"
},
{
Name: "doc_1802.png"
},
{
Name: "doc_1803.png",
Fun: "showImage",
Url: "post_1801.png"
},
{
Name: "doc_1804.png"
},
{
Name: "doc_1805.png"
}
]
},
{
ID: 17,
Category: "2024",
IsPageShow:0,
Logo: "icon_sys_02.png",
Title: "2024年市特色普通高中自主招生情况",
TitleShort: "2024上海特色高中自招信息",
TitleImage: "doc_1700.png",
Content: [{
Name: "doc_1701.png"
},
{
Name: "doc_1702.png",
Fun: "showImage",
Url: "post_1701.png"
},
{
Name: "doc_1703.png",
Fun: "goto",
Url: "school?ID=82"
},
{
Name: "doc_1704.png",
Fun: "goto",
Url: "school?ID=94"
},
{
Name: "doc_1705.png",
Fun: "goto",
Url: "school?ID=100"
},
{
Name: "doc_1706.png",
Fun: "goto",
Url: "school?ID=114"
},
{
Name: "doc_1707.png",
Fun: "goto",
Url: "school?ID=115"
},
{
Name: "doc_1708.png",
Fun: "goto",
Url: "school?ID=116"
},
{
Name: "doc_1709.png",
Fun: "goto",
Url: "school?ID=117"
},
{
Name: "doc_1710.png",
Fun: "goto",
Url: "school?ID=132"
},
{
Name: "doc_1711.png",
Fun: "goto",
Url: "school?ID=143"
},
{
Name: "doc_1712.png",
Fun: "goto",
Url: "school?ID=167"
},
{
Name: "doc_1713.png",
Fun: "goto",
Url: "school?ID=181"
},
{
Name: "doc_1714.png",
Fun: "goto",
Url: "school?ID=192"
},
{
Name: "doc_1715.png",
Fun: "goto",
Url: "school?ID=193"
},
{
Name: "doc_1716.png",
Fun: "goto",
Url: "school?ID=194"
},
{
Name: "doc_1717.png",
Fun: "goto",
Url: "school?ID=239"
},
{
Name: "doc_1718.png",
Fun: "goto",
Url: "school?ID=241"
},
{
Name: "doc_1719.png",
Fun: "goto",
Url: "school?ID=268"
},
{
Name: "doc_1720.png",
Fun: "goto",
Url: "school?ID=91"
},
{
Name: "doc_1721.png",
Fun: "goto",
Url: "school?ID=256"
},
{
Name: "doc_1722.png",
Fun: "goto",
Url: "search"
},
{
Name: "doc_1723.png"
},
{
Name: "doc_1724.png"
},
]
},
{
ID: 10,
Category: "2024",
IsPageShow:0,
Logo: "icon_sys_02.png",
Title: "2024年闵行、宝山、浦东、松江、青浦新增15所高中介绍",
TitleShort: "2024上海新增15所高中情况",
TitleImage: "doc_1000.png",
Content: [{
Name: "doc_1001.png"
},
{
Name: "doc_1002.png",
Fun: "goto",
Url: "school?ID=849"
},
{
Name: "doc_1003.png",
Fun: "goto",
Url: "school?ID=850"
},
{
Name: "doc_1004.png",
Fun: "goto",
Url: "school?ID=851"
},
{
Name: "doc_1005.png",
Fun: "goto",
Url: "school?ID=852"
},
{
Name: "doc_1006.png",
Fun: "goto",
Url: "school?ID=853"
},
{
Name: "doc_1007.png",
Fun: "goto",
Url: "school?ID=854"
},
{
Name: "doc_1008.png",
Fun: "goto",
Url: "school?ID=855"
},
{
Name: "doc_1009.png",
Fun: "goto",
Url: "school?ID=856"
},
{
Name: "doc_1010.png",
Fun: "goto",
Url: "school?ID=857"
},
{
Name: "doc_1011.png",
Fun: "goto",
Url: "school?ID=858"
},
{
Name: "doc_1012.png",
Fun: "goto",
Url: "school?ID=859"
},
{
Name: "doc_1013.png",
Fun: "goto",
Url: "school?ID=860"
},
{
Name: "doc_1014.png",
Fun: "goto",
Url: "school?ID=861"
},
{
Name: "doc_1015.png",
Fun: "goto",
Url: "school?ID=862"
},
{
Name: "doc_1016.png",
Fun: "goto",
Url: "school?ID=863"
},
{
Name: "doc_1017.png",
Fun: "goto",
Url: "search"
},
]
},
{
ID: 6,
Category: "小知识",
IsPageShow:1,
Logo: "icon_sys_01.png",
Title: "中考有哪些科目,分数如何分配",
TitleShort: "上海中考科目和分值设置",
TitleImage: "doc_0600.png",
Content: [{
Name: "doc_0601.png"
},
{
Name: "doc_0602.png",
Fun: "showImage",
Url: "post_0601.png"
},
{
Name: "doc_0603.png"
},
{
Name: "doc_0604.png"
}
]
},
{
ID: 11,
Category: "小知识",
IsPageShow:1,
Logo: "icon_sys_01.png",
Title: "图说上海市中招志愿类别和招生录取批次",
TitleShort: "上海中招志愿类别和录取流程",
Content: [{
Name: "doc_1101.png"
},
{
Name: "doc_1102.png"
},
{
Name: "doc_1103.png",
Fun: "showImage",
Url: "post_1101.png"
},
{
Name: "doc_1104.png"
},
{
Name: "doc_1105.png",
Fun: "showImage",
Url: "post_1102.png"
}
]
},
{
ID: 8,
Category: "小知识",
IsPageShow:1,
Logo: "icon_sys_01.png",
Title: "各区教育局官方网站、公众号汇总",
TitleShort: "上海各区中考招生官网汇总",
TitleImage: "doc_0800.png",
Content: [{
Name: "doc_0801.png"
},
{
Name: "doc_0802.png",
Fun: "showImage",
Url: "post_0801.png"
},
{
Name: "doc_0803.png",
Fun: "showImage",
Url: "post_0801.png"
}
]
},
{
ID: 1,
Category: "小知识",
IsPageShow:0,
Logo: "icon_sys_01.png",
Title: "高中阶段可以报考哪些类型的学校",
TitleShort: "上海中考报考学校类型",
Content: [{
Name: "doc_0101.png"
},
{
Name: "doc_0102.png"
},
{
Name: "doc_0103.png",
},
{
Name: "doc_0104.png",
Fun: "reLaunch",
Url: "default"
},
{
Name: "doc_0105.png"
}
]
},
{
ID: 13,
Category: "小知识",
IsPageShow:0,
Logo: "icon_sys_01.png",
Title: "自主招生有哪几种",
TitleShort: "上海中考自主招生介绍",
Content: [{
Name: "doc_1301.png"
},
{
Name: "doc_1302.png"
},
{
Name: "doc_1303.png",
Fun: "reLaunch",
Url: "default"
},
{
Name: "doc_1304.png",
},
{
Name: "doc_1305.png",
},
{
Name: "doc_1306.png"
}
]
},
{
ID: 14,
Category: "小知识",
IsPageShow:0,
Logo: "icon_sys_01.png",
Title: "什么是名额分配综合评价录取志愿",
TitleShort: "上海中考名额分配介绍",
Content: [{
Name: "doc_1401.png"
},
{
Name: "doc_1402.png"
},
{
Name: "doc_1403.png",
},
{
Name: "doc_1404.png",
}
]
},
{
ID: 15,
Category: "小知识",
IsPageShow:0,
Logo: "icon_sys_01.png",
Title: "什么是统一招生录取志愿",
TitleShort: "上海中考统一招生介绍",
Content: [{
Name: "doc_1501.png"
},
{
Name: "doc_1502.png"
}
]
},
{
ID: 12,
Category: "小知识",
IsPageShow:0,
Logo: "icon_sys_01.png",
Title: "招生代码怎么用",
TitleShort: "上海中考招生代码介绍",
Content: [{
Name: "doc_1201.png"
},
{
Name: "doc_1202.png"
}
]
},
{
ID: 7,
Category: "小知识",
IsPageShow:0,
Logo: "icon_sys_01.png",
Title: "政策性照顾加分和同分优待情况",
TitleShort: "上海中考加分优待信息",
TitleImage: "doc_0700.png",
Content: [{
Name: "doc_0701.png"
},
{
Name: "doc_0702.png"
},
{
Name: "doc_0703.png",
Fun: "showImage",
Url: "post_0701.png"
},
{
Name: "doc_0704.png"
}
]
},
{
ID: 16,
Category: "小知识",
IsPageShow:0,
Logo: "icon_sys_01.png",
Title: "末位同分时怎么处理",
TitleShort: "上海中考末位同分介绍",
Content: [{
Name: "doc_1601.png"
},
{
Name: "doc_1602.png"
},
{
Name: "doc_1603.png"
}
]
},
{
ID: 9,
Category: "小知识",
IsPageShow:0,
Logo: "icon_sys_01.png",
Title: "招生志愿信息样表长什么样",
TitleShort: "上海中招录取志愿样表",
Content: [{
Name: "doc_0901.png"
},
{
Name: "doc_0902.png",
Fun: "showImage",
Url: "post_0901.png"
},
]
},
{
ID: 2,
Category: "2023",
IsPageShow:1,
Logo: "icon_sys_02.png",
Title: "2023年19所市特色普通高中自主招生情况",
TitleShort: "2023上海特色高中自招信息",
TitleImage: "doc_0200.png",
Content: [{
Name: "doc_0201.png"
},
{
Name: "doc_0202.png",
Fun: "showImage",
Url: "post_0201.png"
},
{
Name: "doc_0203.png",
Fun: "goto",
Url: "school?ID=82"
},
{
Name: "doc_0204.png",
Fun: "goto",
Url: "school?ID=94"
},
{
Name: "doc_0205.png",
Fun: "goto",
Url: "school?ID=100"
},
{
Name: "doc_0206.png",
Fun: "goto",
Url: "school?ID=114"
},
{
Name: "doc_0207.png",
Fun: "goto",
Url: "school?ID=115"
},
{
Name: "doc_0208.png",
Fun: "goto",
Url: "school?ID=116"
},
{
Name: "doc_0209.png",
Fun: "goto",
Url: "school?ID=117"
},
{
Name: "doc_0210.png",
Fun: "goto",
Url: "school?ID=132"
},
{
Name: "doc_0211.png",
Fun: "goto",
Url: "school?ID=143"
},
{
Name: "doc_0212.png",
Fun: "goto",
Url: "school?ID=167"
},
{
Name: "doc_0213.png",
Fun: "goto",
Url: "school?ID=181"
},
{
Name: "doc_0214.png",
Fun: "goto",
Url: "school?ID=192"
},
{
Name: "doc_0215.png",
Fun: "goto",
Url: "school?ID=193"
},
{
Name: "doc_0216.png",
Fun: "goto",
Url: "school?ID=194"
},
{
Name: "doc_0217.png",
Fun: "goto",
Url: "school?ID=239"
},
{
Name: "doc_0218.png",
Fun: "goto",
Url: "school?ID=241"
},
{
Name: "doc_0219.png",
Fun: "goto",
Url: "school?ID=268"
},
{
Name: "doc_0220.png",
Fun: "goto",
Url: "school?ID=91"
},
{
Name: "doc_0221.png",
Fun: "goto",
Url: "school?ID=256"
},
{
Name: "doc_0222.png",
Fun: "goto",
Url: "search"
},
{
Name: "doc_0223.png"
},
{
Name: "doc_0224.png"
},
]
},
{
ID: 3,
Category: "2023",
IsPageShow:1,
Logo: "icon_sys_02.png",
Title: "2023年体育“一条龙”市级优秀体育学生招收学校和项目",
TitleShort: "2023上海优秀体育生中招信息",
TitleImage: "doc_0300.png",
Content: [{
Name: "doc_0301.png"
},
{
Name: "doc_0302.png"
},
{
Name: "doc_0303.png",
Fun: "showImage",
Url: "post_0301.png"
},
{
Name: "doc_0304.png"
},
{
Name: "doc_0305.png"
}
]
},
{
ID: 4,
Category: "2023",
IsPageShow:1,
Logo: "icon_sys_02.png",
Title: "2023年艺术“一条龙”市级艺术骨干学生招收学校、项目和艺术团汇总",
TitleShort: "2023上海艺术骨干生中招信息",
TitleImage: "doc_0400.png",
Content: [{
Name: "doc_0401.png"
},
{
Name: "doc_0402.png"
},
{
Name: "doc_0403.png",
Fun: "showImage",
Url: "post_0401.png"
},
{
Name: "doc_0404.png"
},
{
Name: "doc_0405.png",
Fun: "showImage",
Url: "post_0402.png"
}
]
},
{
ID: 5,
Category: "2023",
IsPageShow:0,
Logo: "icon_sys_02.png",
Title: "2023年国际课程班和中外合作办学自主招生计划情况",
TitleShort: "2023上海国际班中考自招信息",
TitleImage: "doc_0500.png",
Content: [{
Name: "doc_0501.png"
},
{
Name: "doc_0502.png"
},
{
Name: "doc_0503.png",
Fun: "showImage",
Url: "post_0501.png"
},
{
Name: "doc_0504.png"
},
{
Name: "doc_0505.png"
},
{
Name: "doc_0506.png"
}
]
},
];
ctx.body = {errcode: 10000, result: articles};
}
// 更新用户昵称和头像
export async function UpdateMPSUserNickNameAndAvatar(ctx) {
const param = ctx.request.body;
param.UserID = ctx.query.UserID;
if (!param.NickName) {
param.NickName = "陌生用户";
}
await mps.UpdateUsersByUserID(param);
ctx.body = {"errcode": 10000};
}
// 提交祝福语
export async function MPSWish(ctx) {
const param = ctx.request.body;
const param2 = {WishType: "person"};
if (param.ToName) {
param.ToName = param.ToName.replace(/\r/g, "").replace(/\n/g, "");
}
if (!param.ID || param.ID == 0) {
param.CreateTime = moment().format('YYYY-MM-DD HH:mm:ss');
param.UpdateTime = moment().format('YYYY-MM-DD HH:mm:ss');
param.Flag = 0;
const addInfo = await mps.AddWish(param);
param2.ID = addInfo.insertId;
} else {
param.UpdateTime = moment().format('YYYY-MM-DD HH:mm:ss');
await mps.UpdateMPSWish(param);
param2.ID = param.ID;
}
let result = await mps.GetMPSWish(param2);
result = buildWish(result[0]);
ctx.body = {errcode: 10000, result:result};
}
function buildWish(item,wishType){
let nickName2=item.NickName;
if (nickName2 && nickName2.length>10)
nickName2=nickName2.substr(0,8)+"…";
item.NickName2=nickName2;
let str=item.ToName;
if (!str || item.IsOpen==0) {
if (item.ToWhom=="给自己") {
str="我";
}
else if (item.ToWhom=="给孩子") {
str="孩子";
}
else if (item.ToWhom=="给同学") {
str="大家";
}
}
if (wishType=="schoolAll") {
item.WishWhom = "祝" + str + "考上";
}
else {
if (str && str.length > 8)
str = str.substr(0, 8) + "…";
item.WishWhom = "祝" + str + "考上";
}
if (item.ToName)
item.WishWhom2 = "祝"+item.ToName+"考上";
else
item.WishWhom2 = "祝"+str+"考上";
if (wishType=="schoolAll") {
item.WishContentItem = item.WishContent;
}
else {
if (item.WishContent && item.WishContent.length>40)
item.WishContentItem=item.WishContent.substr(0,39)+ "…";
else if (item.WishContent)
item.WishContentItem = item.WishContent;
else {
item.WishContentItem = "";
}
}
if (item.IsOpen==0){
item.WishContentItem="";
}
return item;
}
export async function Ping(ctx) {
ctx.body = {errcode: 10000};
}