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}; }