mpsCommonController.js 45 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497
  1. import moment from 'moment';
  2. import fs from 'fs';
  3. import { promises as fsPromises } from 'fs';
  4. import mps, { ArrYear, getDistrict } from '../../model/mps.js';
  5. import commonModel from '../../model/commonModel.js';
  6. import { globalCache } from '../../util/GlobalCache.js';
  7. import config from '../../config/index.js';
  8. import _ from 'lodash';
  9. import axios from 'axios';
  10. import { stringUtils } from '../../util/stringClass.js';
  11. import { Encrypt, Decrypt } from '../../util/crypto/index.js';
  12. /**
  13. * 分数线网页首页
  14. * @generator
  15. * @yields {Object} 返回渲染后的HTML页面内容
  16. * @description 读取并返回public目录下的mpsDefault.html文件内容作为响应体
  17. */
  18. export async function MPSDefault(ctx) {
  19. console.log("mpsDefault");
  20. const data = await fsPromises.readFile("./public/mpsDefault.html");
  21. ctx.body = data.toString();
  22. };
  23. /**
  24. * 分数线网页
  25. */
  26. export async function WebMPSHtml(ctx) {
  27. let cookie = ctx.cookies.get("test");
  28. if (ctx.req.headers.host == "localhost:"+config.port) {
  29. cookie = "+yqoClZSJfwPPQwow7K12IboznGF059HmGsK1lpS+4Y=";
  30. }
  31. if (cookie == "+yqoClZSJfwPPQwow7K12IboznGF059HmGsK1lpS+4Y=" ||
  32. cookie == "ckQpqDsukHN49UgwpRdoYRC7uH1hTfXvhJ71hPzgyfM=" ||
  33. cookie == "IAdzqqCJ9ixjFGemUoqrJABRsF3EpvPgnIgGYFCWOhg=") {
  34. const data = await fsPromises.readFile("./public/mg/mps.html");
  35. ctx.body = data.toString();
  36. } else {
  37. ctx.body = "<html><body>请重新<a href='https://www.kylx365.com/miaoguo'>登录</a></body></html>";
  38. }
  39. };
  40. /**
  41. * 分数线学校管理网页
  42. */
  43. export async function WebMPSSchoolHtml(ctx) {
  44. let cookie = ctx.cookies.get("test");
  45. if (ctx.req.headers.host == "localhost:"+config.port) {
  46. cookie = "+yqoClZSJfwPPQwow7K12IboznGF059HmGsK1lpS+4Y=";
  47. }
  48. if (cookie == "+yqoClZSJfwPPQwow7K12IboznGF059HmGsK1lpS+4Y=" ||
  49. cookie == "ckQpqDsukHN49UgwpRdoYRC7uH1hTfXvhJ71hPzgyfM=" ||
  50. cookie == "IAdzqqCJ9ixjFGemUoqrJABRsF3EpvPgnIgGYFCWOhg=") {
  51. const data = await fsPromises.readFile("./public/mg/mps_school.html");
  52. ctx.body = data.toString();
  53. } else {
  54. ctx.body = "<html><body>请重新<a href='https://www.kylx365.com/miaoguo'>登录</a></body></html>";
  55. }
  56. };
  57. /**
  58. * 分数线纠错网页
  59. */
  60. export async function WebMPSErrorHtml(ctx) {
  61. let cookie = ctx.cookies.get("test");
  62. if (ctx.req.headers.host == "localhost:"+config.port) {
  63. cookie = "+yqoClZSJfwPPQwow7K12IboznGF059HmGsK1lpS+4Y=";
  64. }
  65. if (cookie == "+yqoClZSJfwPPQwow7K12IboznGF059HmGsK1lpS+4Y=" ||
  66. cookie == "ckQpqDsukHN49UgwpRdoYRC7uH1hTfXvhJ71hPzgyfM=" ||
  67. cookie == "IAdzqqCJ9ixjFGemUoqrJABRsF3EpvPgnIgGYFCWOhg=") {
  68. const data = await fsPromises.readFile("./public/mg/mps_error.html");
  69. ctx.body = data.toString();
  70. } else {
  71. ctx.body = "<html><body>请重新<a href='https://www.kylx365.com/miaoguo'>登录</a></body></html>";
  72. }
  73. };
  74. export async function MPSLogin(ctx) {
  75. //console.log("LoginStart:" + new Date().getSeconds());
  76. let param = ctx.request.body;
  77. if (param.param) {
  78. const paramStr = Decrypt(param.param, config.urlSecrets.aes_key, config.urlSecrets.aes_iv);
  79. //console.log("paramStr:"+paramStr);
  80. param = JSON.parse(paramStr);
  81. }
  82. const code = param.Code;
  83. //console.log("code:"+code);
  84. 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`;
  85. let result = await axios.get(url)
  86. .then(res => {
  87. const json = res.data;
  88. if (json && json.openid) {
  89. param.OpenID = json.openid;
  90. param.sessionKey = json.session_key;
  91. if (json.unionid) {
  92. param.UnionID = json.unionid;
  93. }
  94. return {errcode: 10000};
  95. }
  96. return json;
  97. })
  98. .catch(err => ({errcode: 101, errStr: err}));
  99. //console.log("OpenID:"+param.OpenID);
  100. delete param.GroupInfo;
  101. if (result.errcode === 10000) {
  102. delete param.Code;
  103. //console.log("GetUsersInfoStart:" + new Date().getSeconds());
  104. if (param.sessionKey && param.iv && param.encryptedData) {
  105. const pc = new WXBizDataCrypt(config.wx.mps_appid, param.sessionKey);
  106. const dataUnionID = pc.decryptData(param.encryptedData, param.iv);
  107. //console.log(dataUnionID);
  108. param.UnionID = dataUnionID.unionId;
  109. }
  110. delete param.sessionKey;
  111. delete param.iv;
  112. delete param.encryptedData;
  113. let userList = await mps.GetUsersInfo(param);
  114. //console.log("GetUsersInfoSuccess:" + new Date().getSeconds());
  115. if (userList.length > 0) {
  116. param.LastLoginTime = new Date();
  117. delete param.Introducer;
  118. delete param.UserSource;
  119. delete param.SourceID;
  120. delete param.NickName;
  121. delete param.AvatarUrl;
  122. await mps.UpdateUsers(param);
  123. //console.log("UpdateUsersSuccess:" + new Date().getSeconds());
  124. userList = await mps.GetUsersInfo(param);
  125. //console.log("GetUsersInfoSuccess2:" + new Date().getSeconds());
  126. } else {
  127. param.CreateTime = new Date();
  128. param.LastLoginTime = param.CreateTime;
  129. param.ProductServiceTime = param.CreateTime;
  130. await mps.AddUsers(param);
  131. //console.log("AddUsersSuccess:" + new Date().getSeconds());
  132. userList = await mps.GetUsersInfo(param);
  133. //console.log("GetUsersInfoSuccess2:" + new Date().getSeconds());
  134. }
  135. delete userList[0].OpenID;
  136. //产品支付是否显示
  137. var param2={
  138. ProgramID:173,
  139. Version:param.ProgramVersion,
  140. };
  141. var result3 = await commonModel.GetProductVersionList(param2);
  142. if (result3) {
  143. if ((param2.Version==result3[0].Version && result3[0].IsShowPay<=0)
  144. || param2.Version>result3[0].Version){
  145. userList[0].IsShow=result3[0].IsShowPay;
  146. }
  147. else{
  148. userList[0].IsShow = 1;
  149. }
  150. if (process.env.NODE_ENV == 'development'){
  151. //userList[0].IsShow = 0;
  152. }
  153. else {
  154. var today = moment().format('YYYYMMDD');
  155. //针对微信测试用户,永远是无支付状态
  156. if ((userList[0].UserSource == '1001' && userList[0].System == "iOS 10.0.1" && userList[0].UserID>2)
  157. || (!userList[0].UserSource && (!userList[0].LastUserSource || userList[0].LastUserSource > 10000))
  158. || userList[0].NickName.indexOf("dgztest") >= 0) {
  159. userList[0].IsShow = -1;
  160. }
  161. else if (userList[0].LastUserSource == '1012'
  162. && userList[0].IsPay == 0
  163. && userList[0].IsMember == 0
  164. && userList[0].IsApply == 0
  165. && userList[0].IsTryOut == 0
  166. && userList[0].Model == "iPhone XS MAX China-exclusive<iPhone 11,6>") {
  167. userList[0].IsShow = -1;
  168. }
  169. }
  170. }
  171. userList[0].ArrYear = ArrYear;
  172. result = {errcode: 10000, result: userList[0]};
  173. }
  174. ctx.body = result;
  175. };
  176. //得到所有区
  177. export async function GetMPSDistrict(ctx) {
  178. let param = {
  179. IsAll: ctx.query.IsAll || 0,
  180. };
  181. let result = await mps.GetMPSDistrict(param);
  182. ctx.body = {"errcode": 10000, result: result};
  183. };
  184. // 获取反馈列表
  185. export async function GetMPSFeedbackList(ctx) {
  186. let param = {
  187. UserID: ctx.query.UserID || 0,
  188. };
  189. let sql = "SELECT * FROM kylx365_db.MPS_Feedback order by Flag,ID desc limit 200;";
  190. if (param.UserID>0)
  191. sql="SELECT * FROM kylx365_db.MPS_Feedback where Flag=1 order by ID desc limit 100;";
  192. const list = await commonModel.RunSql({}, sql);
  193. list.forEach(item => {
  194. if (param.UserID>0)
  195. item.CreateTime = moment(item.CreateTime).format('YYYY年MM月DD日');
  196. else
  197. item.CreateTime = moment(item.CreateTime).format('YYYY-MM-DD HH:mm:ss');
  198. if (item.ProgramID==173)
  199. item.ProgramName="分数线";
  200. else if (item.ProgramID==186)
  201. item.ProgramName="语境";
  202. });
  203. ctx.body = {"errcode": 10000, result: list};
  204. }
  205. export async function MPSFeedback(ctx) {
  206. let param = ctx.request.body;
  207. param.CreateTime=moment().format('YYYY-MM-DD HH:mm:ss');
  208. if (!param.ProgramID)
  209. param.ProgramID=173;
  210. await mps.AddFeedback(param);
  211. ctx.body = {errcode: 10000};
  212. }
  213. // 订阅消息
  214. export async function SubscribeMessage(ctx) {
  215. const param = {
  216. UserID: ctx.query.UserID || 0,
  217. IsMessage: 1,
  218. };
  219. await mps.UpdateUsersByUserID(param);
  220. ctx.body = {errcode: 10000, result: 1};
  221. }
  222. // 获取祝福语
  223. export async function GetMPSWish(ctx) {
  224. const param = {
  225. WishType: ctx.query.WishType || "all",
  226. UserID: ctx.query.UserID || 0,
  227. SchoolID: ctx.query.SchoolID || 0,
  228. ID: ctx.query.ID || 0,
  229. };
  230. const functionName="GetMPSWish?WishType=all";
  231. let result=0;
  232. if (param.WishType=="all")
  233. result=globalCache.get(functionName);
  234. if (result==0){
  235. let list = await mps.GetMPSWish(param);
  236. let num = 1;
  237. if (param.WishType === "all") {
  238. num = 5;
  239. list = _.shuffle(list);
  240. } else if (param.WishType === "school") {
  241. num = 3;
  242. } else if (param.WishType === "schoolAll") {
  243. num = list.length;
  244. }
  245. let arr = [];
  246. for (let i = 0; i < num; i++) {
  247. if (list[i]) {
  248. arr.push(buildWish(list[i], param.WishType));
  249. }
  250. }
  251. if (param.WishType === "school" && list.length > 0) {
  252. list[0].RowCount = list.length;
  253. }
  254. result = arr;
  255. if (param.WishType=="all"){
  256. globalCache.set(functionName, result, config.BufferMemoryTimeLowNormal);
  257. console.log("缓存");
  258. }
  259. }
  260. ctx.body = {errcode: 10000, result: result};
  261. }
  262. // 更新反馈状态
  263. export async function UpdateMPSFeedback(ctx) {
  264. const param = {
  265. ID: ctx.query.ID || 0,
  266. Flag: ctx.query.Flag || 0,
  267. };
  268. param.UpdateTime = moment().format('YYYY-MM-DD HH:mm:ss');
  269. await mps.UpdateMPSFeedback(param);
  270. ctx.body = {errcode: 10000};
  271. }
  272. // 生成二维码
  273. export async function BuildMPSQRCode(ctx) {
  274. const param = {
  275. BuildType: ctx.query.BuildType || "Article",
  276. ID: ctx.query.ID || 0,
  277. };
  278. const url = `https://api.weixin.qq.com/cgi-bin/token?appid=${config.wx.mps_appid}&secret=${config.wx.mps_appsecret}&grant_type=client_credential`;
  279. const result = await axios.get(url)
  280. .then(res => {
  281. const json = res.data;
  282. if (json && json.access_token) {
  283. param.access_token = json.access_token;
  284. return {errcode: 10000};
  285. }
  286. return json;
  287. })
  288. .catch(err => ({errcode: 101, errStr: err}));
  289. const wxUrl = `https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=${param.access_token}`;
  290. const path = './public/images/acode/';
  291. let imageUrl = '';
  292. const postJSON = {};
  293. if (param.BuildType === "Article") {
  294. postJSON.width = 280;
  295. postJSON.scene = `type=article&ID=${param.ID}`;
  296. imageUrl = `ScoreLineArticle_${param.ID-173}.png`;
  297. } else if (param.BuildType === "Web") {
  298. postJSON.width = 280;
  299. postJSON.scene = `type=web&ID=${param.ID}`;
  300. imageUrl = 'MPS_WebQRCode.png';
  301. }
  302. // 使用axios的流式响应处理
  303. const response = await axios.post(wxUrl, postJSON, {
  304. responseType: 'stream'
  305. });
  306. // 创建写入流并处理
  307. const writer = fs.createWriteStream(path + imageUrl);
  308. response.data.pipe(writer);
  309. await new Promise((resolve, reject) => {
  310. writer.on('finish', resolve);
  311. writer.on('error', reject);
  312. });
  313. ctx.body = {"errcode": 10000};
  314. }
  315. // 更新祝福语点赞数
  316. export async function UpdateMPSWishLikeNum(ctx) {
  317. const param = {
  318. ID: ctx.query.ID || 0,
  319. LikeNumAdd: ctx.query.LikeNumAdd || 0,
  320. };
  321. await mps.UpdateMPSWishLikeNum(param);
  322. ctx.body = {errcode: 10000};
  323. }
  324. // 获取通知
  325. export async function GetMPSNotice(ctx) {
  326. const result = {IsShow: false};
  327. const updateTimeList = await commonModel.GetDataUpdateStatus();
  328. const updateTime = moment(updateTimeList[8].UpdateTime).format('YYYY.MM.DD HH:mm:ss');
  329. const today = moment().format('YYYY.MM.DD HH:mm:ss');
  330. if (today < updateTime) {
  331. result.IsShow = true;
  332. result.Title = "更新通知";
  333. // const content = [
  334. // "2025年上海中考招生计划已经全部整理完毕,包括各区各校的自主招生、名额到区、名额到校、1-15志愿等数据。请将信息分享给身边的家长朋友们。非常谢谢您的支持!",
  335. // "今年夏天要读的书,必须是《录取通知书》,祝孩子们中考考出最优成绩!",
  336. // "最新的上海16区统一招生1-15志愿各校计划整理完毕,欢迎查看!"
  337. // ];
  338. // let rand=stringUtils.Random(0,content.length-1);
  339. // result.Content=content[rand];
  340. // const content=[
  341. // "向您推荐团队新作「语境背单词」小程序,通过阅读理解+选择题,帮孩子高效记忆单词、灵活运用考点,为初高中生设计,欢迎体验!",
  342. // ];
  343. result.Content=content[0];
  344. //有按钮的情况
  345. result.ButtonTitle="语境背单词";
  346. result.ButtonIcon="icon_fold_05";
  347. result.BottonClick="gotoMiniprogram";
  348. }
  349. ctx.body = {errcode: 10000, result};
  350. }
  351. // 获取文章
  352. export async function GetMPSArticle(ctx) {
  353. let articles=[
  354. {
  355. ID: 26,
  356. Category: "2025",
  357. IsPageShow:1,
  358. Logo: "icon_sys_02.png",
  359. Title: "2025年国际课程班和中外合作办学自主招生计划情况",
  360. TitleShort: "2025上海国际班中考自招信息",
  361. TitleImage: "doc_2600.png",
  362. Content: [{
  363. Name: "doc_2601.png"
  364. },
  365. {
  366. Name: "doc_2602.png"
  367. },
  368. {
  369. Name: "doc_2603.png",
  370. Fun: "showImage",
  371. Url: "post_26.png"
  372. },
  373. {
  374. Name: "doc_2604.png"
  375. },
  376. {
  377. Name: "doc_2605.png"
  378. },
  379. {
  380. Name: "doc_2606.png"
  381. }
  382. ]
  383. },
  384. {
  385. ID: 25,
  386. Category: "2025",
  387. IsPageShow:1,
  388. Logo: "icon_sys_02.png",
  389. Title: "2025年20所市特色普通高中自主招生情况",
  390. TitleShort: "2025上海特色高中自招信息",
  391. TitleImage: "doc_2500.png",
  392. Content: [{
  393. Name: "doc_2501.png"
  394. },{
  395. Name: "doc_2502.png",
  396. Fun: "showImage",
  397. Url: "post_25.png"
  398. },{
  399. Name: "doc_2503.png",
  400. Fun: "goto",
  401. Url: "school?ID=82"
  402. },{
  403. Name: "doc_2504.png",
  404. Fun: "goto",
  405. Url: "school?ID=94"
  406. },{
  407. Name: "doc_2505.png",
  408. Fun: "goto",
  409. Url: "school?ID=100"
  410. },{
  411. Name: "doc_2506.png",
  412. Fun: "goto",
  413. Url: "school?ID=114"
  414. },{
  415. Name: "doc_2507.png",
  416. Fun: "goto",
  417. Url: "school?ID=115"
  418. },{
  419. Name: "doc_2508.png",
  420. Fun: "goto",
  421. Url: "school?ID=116"
  422. },{
  423. Name: "doc_2509.png",
  424. Fun: "goto",
  425. Url: "school?ID=117"
  426. },{
  427. Name: "doc_2510.png",
  428. Fun: "goto",
  429. Url: "school?ID=132"
  430. },{
  431. Name: "doc_2511.png",
  432. Fun: "goto",
  433. Url: "school?ID=143"
  434. },{
  435. Name: "doc_2512.png",
  436. Fun: "goto",
  437. Url: "school?ID=167"
  438. },{
  439. Name: "doc_2513.png",
  440. Fun: "goto",
  441. Url: "school?ID=181"
  442. },{
  443. Name: "doc_2514.png",
  444. Fun: "goto",
  445. Url: "school?ID=192"
  446. },{
  447. Name: "doc_2515.png",
  448. Fun: "goto",
  449. Url: "school?ID=193"
  450. },{
  451. Name: "doc_2516.png",
  452. Fun: "goto",
  453. Url: "school?ID=194"
  454. },{
  455. Name: "doc_2517.png",
  456. Fun: "goto",
  457. Url: "school?ID=239"
  458. },{
  459. Name: "doc_2518.png",
  460. Fun: "goto",
  461. Url: "school?ID=241"
  462. },{
  463. Name: "doc_2519.png",
  464. Fun: "goto",
  465. Url: "school?ID=268"
  466. },{
  467. Name: "doc_2520.png",
  468. Fun: "goto",
  469. Url: "school?ID=91"
  470. },{
  471. Name: "doc_2521.png",
  472. Fun: "goto",
  473. Url: "school?ID=256"
  474. },{
  475. Name: "doc_2522.png",
  476. Fun: "goto",
  477. Url: "school?ID=261"
  478. },{
  479. Name: "doc_2523.png",
  480. Fun: "goto",
  481. Url: "search"
  482. },{
  483. Name: "doc_2524.png",
  484. },{
  485. Name: "doc_2525.png",
  486. },
  487. ]
  488. },
  489. {
  490. ID: 24,
  491. Category: "2025",
  492. IsPageShow:1,
  493. Logo: "icon_sys_02.png",
  494. Title: "2025年市级艺术骨干学生招收学校和项目",
  495. TitleShort: "2025上海艺术骨干生中招信息",
  496. TitleImage: "doc_2400.png",
  497. Content: [{
  498. Name: "doc_2401.png"
  499. },{
  500. Name: "doc_2402.png",
  501. },{
  502. Name: "doc_2403.png",
  503. Fun: "showImage",
  504. Url: "post_24.png"
  505. },
  506. ]
  507. },
  508. {
  509. ID: 23,
  510. Category: "2025",
  511. IsPageShow:1,
  512. Logo: "icon_sys_02.png",
  513. Title: "2025年市级优秀体育学生招收学校和项目",
  514. TitleShort: "2025上海优秀体育生中招信息",
  515. TitleImage: "doc_2300.png",
  516. Content: [{
  517. Name: "doc_2301.png"
  518. },{
  519. Name: "doc_2302.png",
  520. },{
  521. Name: "doc_2303.png",
  522. Fun: "showImage",
  523. Url: "post_23.png"
  524. },
  525. ]
  526. },
  527. {
  528. ID: 22,
  529. Category: "2025",
  530. IsPageShow:1,
  531. Logo: "icon_sys_02.png",
  532. Title: "2025年徐汇、普陀、虹口、闵行、嘉定、浦东、松江新增11所高中介绍",
  533. TitleShort: "2025上海新增11所高中介绍",
  534. TitleImage: "doc_2200.png",
  535. Content: [{
  536. Name: "doc_2201.png"
  537. },{
  538. Name: "doc_2202.png",
  539. Fun: "goto",
  540. Url: "school?ID=985"
  541. },{
  542. Name: "doc_2203.png",
  543. Fun: "goto",
  544. Url: "school?ID=986"
  545. },{
  546. Name: "doc_2204.png",
  547. Fun: "goto",
  548. Url: "school?ID=124"
  549. },{
  550. Name: "doc_2205.png",
  551. Fun: "goto",
  552. Url: "school?ID=127"
  553. },{
  554. Name: "doc_2206.png",
  555. Fun: "goto",
  556. Url: "school?ID=989"
  557. },{
  558. Name: "doc_2207.png",
  559. Fun: "goto",
  560. Url: "school?ID=990"
  561. },{
  562. Name: "doc_2208.png",
  563. Fun: "goto",
  564. Url: "school?ID=991"
  565. },{
  566. Name: "doc_2209.png",
  567. Fun: "goto",
  568. Url: "school?ID=992"
  569. },{
  570. Name: "doc_2210.png",
  571. Fun: "goto",
  572. Url: "school?ID=993"
  573. },{
  574. Name: "doc_2211.png",
  575. Fun: "goto",
  576. Url: "school?ID=994"
  577. },{
  578. Name: "doc_2212.png",
  579. Fun: "goto",
  580. Url: "school?ID=995"
  581. },{
  582. Name: "doc_2213.png",
  583. Fun: "goto",
  584. Url: "search"
  585. },
  586. ]
  587. },
  588. {
  589. ID: 20,
  590. Category: "2024",
  591. IsPageShow:1,
  592. Logo: "icon_sys_02.png",
  593. Title: "2024年国际课程班和中外合作办学自主招生计划情况",
  594. TitleShort: "2024上海国际班中考自招信息",
  595. TitleImage: "doc_2000.png",
  596. Content: [{
  597. Name: "doc_2001.png"
  598. },
  599. {
  600. Name: "doc_2002.png"
  601. },
  602. {
  603. Name: "doc_2003.png",
  604. Fun: "showImage",
  605. Url: "post_2001.png"
  606. },
  607. {
  608. Name: "doc_2004.png"
  609. },
  610. {
  611. Name: "doc_2005.png"
  612. },
  613. {
  614. Name: "doc_2006.png"
  615. }
  616. ]
  617. },
  618. {
  619. ID: 19,
  620. Category: "2024",
  621. IsPageShow:1,
  622. Logo: "icon_sys_02.png",
  623. Title: "2024年市级艺术骨干学生招收学校和项目",
  624. TitleShort: "2024上海艺术骨干生中招信息",
  625. TitleImage: "doc_1900.png",
  626. Content: [{
  627. Name: "doc_1901.png"
  628. },
  629. {
  630. Name: "doc_1902.png"
  631. },
  632. {
  633. Name: "doc_1903.png",
  634. Fun: "showImage",
  635. Url: "post_1901.png"
  636. },
  637. {
  638. Name: "doc_1904.png"
  639. },
  640. {
  641. Name: "doc_1905.png",
  642. Fun: "showImage",
  643. Url: "post_1902.png"
  644. }
  645. ]
  646. },
  647. {
  648. ID: 18,
  649. Category: "2024",
  650. IsPageShow:1,
  651. Logo: "icon_sys_02.png",
  652. Title: "2024年市级优秀体育学生招收学校和项目",
  653. TitleShort: "2024上海优秀体育生中招信息",
  654. TitleImage: "doc_1800.png",
  655. Content: [{
  656. Name: "doc_1801.png"
  657. },
  658. {
  659. Name: "doc_1802.png"
  660. },
  661. {
  662. Name: "doc_1803.png",
  663. Fun: "showImage",
  664. Url: "post_1801.png"
  665. },
  666. {
  667. Name: "doc_1804.png"
  668. },
  669. {
  670. Name: "doc_1805.png"
  671. }
  672. ]
  673. },
  674. {
  675. ID: 17,
  676. Category: "2024",
  677. IsPageShow:0,
  678. Logo: "icon_sys_02.png",
  679. Title: "2024年市特色普通高中自主招生情况",
  680. TitleShort: "2024上海特色高中自招信息",
  681. TitleImage: "doc_1700.png",
  682. Content: [{
  683. Name: "doc_1701.png"
  684. },
  685. {
  686. Name: "doc_1702.png",
  687. Fun: "showImage",
  688. Url: "post_1701.png"
  689. },
  690. {
  691. Name: "doc_1703.png",
  692. Fun: "goto",
  693. Url: "school?ID=82"
  694. },
  695. {
  696. Name: "doc_1704.png",
  697. Fun: "goto",
  698. Url: "school?ID=94"
  699. },
  700. {
  701. Name: "doc_1705.png",
  702. Fun: "goto",
  703. Url: "school?ID=100"
  704. },
  705. {
  706. Name: "doc_1706.png",
  707. Fun: "goto",
  708. Url: "school?ID=114"
  709. },
  710. {
  711. Name: "doc_1707.png",
  712. Fun: "goto",
  713. Url: "school?ID=115"
  714. },
  715. {
  716. Name: "doc_1708.png",
  717. Fun: "goto",
  718. Url: "school?ID=116"
  719. },
  720. {
  721. Name: "doc_1709.png",
  722. Fun: "goto",
  723. Url: "school?ID=117"
  724. },
  725. {
  726. Name: "doc_1710.png",
  727. Fun: "goto",
  728. Url: "school?ID=132"
  729. },
  730. {
  731. Name: "doc_1711.png",
  732. Fun: "goto",
  733. Url: "school?ID=143"
  734. },
  735. {
  736. Name: "doc_1712.png",
  737. Fun: "goto",
  738. Url: "school?ID=167"
  739. },
  740. {
  741. Name: "doc_1713.png",
  742. Fun: "goto",
  743. Url: "school?ID=181"
  744. },
  745. {
  746. Name: "doc_1714.png",
  747. Fun: "goto",
  748. Url: "school?ID=192"
  749. },
  750. {
  751. Name: "doc_1715.png",
  752. Fun: "goto",
  753. Url: "school?ID=193"
  754. },
  755. {
  756. Name: "doc_1716.png",
  757. Fun: "goto",
  758. Url: "school?ID=194"
  759. },
  760. {
  761. Name: "doc_1717.png",
  762. Fun: "goto",
  763. Url: "school?ID=239"
  764. },
  765. {
  766. Name: "doc_1718.png",
  767. Fun: "goto",
  768. Url: "school?ID=241"
  769. },
  770. {
  771. Name: "doc_1719.png",
  772. Fun: "goto",
  773. Url: "school?ID=268"
  774. },
  775. {
  776. Name: "doc_1720.png",
  777. Fun: "goto",
  778. Url: "school?ID=91"
  779. },
  780. {
  781. Name: "doc_1721.png",
  782. Fun: "goto",
  783. Url: "school?ID=256"
  784. },
  785. {
  786. Name: "doc_1722.png",
  787. Fun: "goto",
  788. Url: "search"
  789. },
  790. {
  791. Name: "doc_1723.png"
  792. },
  793. {
  794. Name: "doc_1724.png"
  795. },
  796. ]
  797. },
  798. {
  799. ID: 10,
  800. Category: "2024",
  801. IsPageShow:0,
  802. Logo: "icon_sys_02.png",
  803. Title: "2024年闵行、宝山、浦东、松江、青浦新增15所高中介绍",
  804. TitleShort: "2024上海新增15所高中情况",
  805. TitleImage: "doc_1000.png",
  806. Content: [{
  807. Name: "doc_1001.png"
  808. },
  809. {
  810. Name: "doc_1002.png",
  811. Fun: "goto",
  812. Url: "school?ID=849"
  813. },
  814. {
  815. Name: "doc_1003.png",
  816. Fun: "goto",
  817. Url: "school?ID=850"
  818. },
  819. {
  820. Name: "doc_1004.png",
  821. Fun: "goto",
  822. Url: "school?ID=851"
  823. },
  824. {
  825. Name: "doc_1005.png",
  826. Fun: "goto",
  827. Url: "school?ID=852"
  828. },
  829. {
  830. Name: "doc_1006.png",
  831. Fun: "goto",
  832. Url: "school?ID=853"
  833. },
  834. {
  835. Name: "doc_1007.png",
  836. Fun: "goto",
  837. Url: "school?ID=854"
  838. },
  839. {
  840. Name: "doc_1008.png",
  841. Fun: "goto",
  842. Url: "school?ID=855"
  843. },
  844. {
  845. Name: "doc_1009.png",
  846. Fun: "goto",
  847. Url: "school?ID=856"
  848. },
  849. {
  850. Name: "doc_1010.png",
  851. Fun: "goto",
  852. Url: "school?ID=857"
  853. },
  854. {
  855. Name: "doc_1011.png",
  856. Fun: "goto",
  857. Url: "school?ID=858"
  858. },
  859. {
  860. Name: "doc_1012.png",
  861. Fun: "goto",
  862. Url: "school?ID=859"
  863. },
  864. {
  865. Name: "doc_1013.png",
  866. Fun: "goto",
  867. Url: "school?ID=860"
  868. },
  869. {
  870. Name: "doc_1014.png",
  871. Fun: "goto",
  872. Url: "school?ID=861"
  873. },
  874. {
  875. Name: "doc_1015.png",
  876. Fun: "goto",
  877. Url: "school?ID=862"
  878. },
  879. {
  880. Name: "doc_1016.png",
  881. Fun: "goto",
  882. Url: "school?ID=863"
  883. },
  884. {
  885. Name: "doc_1017.png",
  886. Fun: "goto",
  887. Url: "search"
  888. },
  889. ]
  890. },
  891. {
  892. ID: 6,
  893. Category: "小知识",
  894. IsPageShow:1,
  895. Logo: "icon_sys_01.png",
  896. Title: "中考有哪些科目,分数如何分配",
  897. TitleShort: "上海中考科目和分值设置",
  898. TitleImage: "doc_0600.png",
  899. Content: [{
  900. Name: "doc_0601.png"
  901. },
  902. {
  903. Name: "doc_0602.png",
  904. Fun: "showImage",
  905. Url: "post_0601.png"
  906. },
  907. {
  908. Name: "doc_0603.png"
  909. },
  910. {
  911. Name: "doc_0604.png"
  912. }
  913. ]
  914. },
  915. {
  916. ID: 11,
  917. Category: "小知识",
  918. IsPageShow:1,
  919. Logo: "icon_sys_01.png",
  920. Title: "图说上海市中招志愿类别和招生录取批次",
  921. TitleShort: "上海中招志愿类别和录取流程",
  922. Content: [{
  923. Name: "doc_1101.png"
  924. },
  925. {
  926. Name: "doc_1102.png"
  927. },
  928. {
  929. Name: "doc_1103.png",
  930. Fun: "showImage",
  931. Url: "post_1101.png"
  932. },
  933. {
  934. Name: "doc_1104.png"
  935. },
  936. {
  937. Name: "doc_1105.png",
  938. Fun: "showImage",
  939. Url: "post_1102.png"
  940. }
  941. ]
  942. },
  943. {
  944. ID: 8,
  945. Category: "小知识",
  946. IsPageShow:1,
  947. Logo: "icon_sys_01.png",
  948. Title: "各区教育局官方网站、公众号汇总",
  949. TitleShort: "上海各区中考招生官网汇总",
  950. TitleImage: "doc_0800.png",
  951. Content: [{
  952. Name: "doc_0801.png"
  953. },
  954. {
  955. Name: "doc_0802.png",
  956. Fun: "showImage",
  957. Url: "post_0801.png"
  958. },
  959. {
  960. Name: "doc_0803.png",
  961. Fun: "showImage",
  962. Url: "post_0801.png"
  963. }
  964. ]
  965. },
  966. {
  967. ID: 1,
  968. Category: "小知识",
  969. IsPageShow:0,
  970. Logo: "icon_sys_01.png",
  971. Title: "高中阶段可以报考哪些类型的学校",
  972. TitleShort: "上海中考报考学校类型",
  973. Content: [{
  974. Name: "doc_0101.png"
  975. },
  976. {
  977. Name: "doc_0102.png"
  978. },
  979. {
  980. Name: "doc_0103.png",
  981. },
  982. {
  983. Name: "doc_0104.png",
  984. Fun: "reLaunch",
  985. Url: "default"
  986. },
  987. {
  988. Name: "doc_0105.png"
  989. }
  990. ]
  991. },
  992. {
  993. ID: 13,
  994. Category: "小知识",
  995. IsPageShow:0,
  996. Logo: "icon_sys_01.png",
  997. Title: "自主招生有哪几种",
  998. TitleShort: "上海中考自主招生介绍",
  999. Content: [{
  1000. Name: "doc_1301.png"
  1001. },
  1002. {
  1003. Name: "doc_1302.png"
  1004. },
  1005. {
  1006. Name: "doc_1303.png",
  1007. Fun: "reLaunch",
  1008. Url: "default"
  1009. },
  1010. {
  1011. Name: "doc_1304.png",
  1012. },
  1013. {
  1014. Name: "doc_1305.png",
  1015. },
  1016. {
  1017. Name: "doc_1306.png"
  1018. }
  1019. ]
  1020. },
  1021. {
  1022. ID: 14,
  1023. Category: "小知识",
  1024. IsPageShow:0,
  1025. Logo: "icon_sys_01.png",
  1026. Title: "什么是名额分配综合评价录取志愿",
  1027. TitleShort: "上海中考名额分配介绍",
  1028. Content: [{
  1029. Name: "doc_1401.png"
  1030. },
  1031. {
  1032. Name: "doc_1402.png"
  1033. },
  1034. {
  1035. Name: "doc_1403.png",
  1036. },
  1037. {
  1038. Name: "doc_1404.png",
  1039. }
  1040. ]
  1041. },
  1042. {
  1043. ID: 15,
  1044. Category: "小知识",
  1045. IsPageShow:0,
  1046. Logo: "icon_sys_01.png",
  1047. Title: "什么是统一招生录取志愿",
  1048. TitleShort: "上海中考统一招生介绍",
  1049. Content: [{
  1050. Name: "doc_1501.png"
  1051. },
  1052. {
  1053. Name: "doc_1502.png"
  1054. }
  1055. ]
  1056. },
  1057. {
  1058. ID: 12,
  1059. Category: "小知识",
  1060. IsPageShow:0,
  1061. Logo: "icon_sys_01.png",
  1062. Title: "招生代码怎么用",
  1063. TitleShort: "上海中考招生代码介绍",
  1064. Content: [{
  1065. Name: "doc_1201.png"
  1066. },
  1067. {
  1068. Name: "doc_1202.png"
  1069. }
  1070. ]
  1071. },
  1072. {
  1073. ID: 7,
  1074. Category: "小知识",
  1075. IsPageShow:0,
  1076. Logo: "icon_sys_01.png",
  1077. Title: "政策性照顾加分和同分优待情况",
  1078. TitleShort: "上海中考加分优待信息",
  1079. TitleImage: "doc_0700.png",
  1080. Content: [{
  1081. Name: "doc_0701.png"
  1082. },
  1083. {
  1084. Name: "doc_0702.png"
  1085. },
  1086. {
  1087. Name: "doc_0703.png",
  1088. Fun: "showImage",
  1089. Url: "post_0701.png"
  1090. },
  1091. {
  1092. Name: "doc_0704.png"
  1093. }
  1094. ]
  1095. },
  1096. {
  1097. ID: 16,
  1098. Category: "小知识",
  1099. IsPageShow:0,
  1100. Logo: "icon_sys_01.png",
  1101. Title: "末位同分时怎么处理",
  1102. TitleShort: "上海中考末位同分介绍",
  1103. Content: [{
  1104. Name: "doc_1601.png"
  1105. },
  1106. {
  1107. Name: "doc_1602.png"
  1108. },
  1109. {
  1110. Name: "doc_1603.png"
  1111. }
  1112. ]
  1113. },
  1114. {
  1115. ID: 9,
  1116. Category: "小知识",
  1117. IsPageShow:0,
  1118. Logo: "icon_sys_01.png",
  1119. Title: "招生志愿信息样表长什么样",
  1120. TitleShort: "上海中招录取志愿样表",
  1121. Content: [{
  1122. Name: "doc_0901.png"
  1123. },
  1124. {
  1125. Name: "doc_0902.png",
  1126. Fun: "showImage",
  1127. Url: "post_0901.png"
  1128. },
  1129. ]
  1130. },
  1131. {
  1132. ID: 2,
  1133. Category: "2023",
  1134. IsPageShow:1,
  1135. Logo: "icon_sys_02.png",
  1136. Title: "2023年19所市特色普通高中自主招生情况",
  1137. TitleShort: "2023上海特色高中自招信息",
  1138. TitleImage: "doc_0200.png",
  1139. Content: [{
  1140. Name: "doc_0201.png"
  1141. },
  1142. {
  1143. Name: "doc_0202.png",
  1144. Fun: "showImage",
  1145. Url: "post_0201.png"
  1146. },
  1147. {
  1148. Name: "doc_0203.png",
  1149. Fun: "goto",
  1150. Url: "school?ID=82"
  1151. },
  1152. {
  1153. Name: "doc_0204.png",
  1154. Fun: "goto",
  1155. Url: "school?ID=94"
  1156. },
  1157. {
  1158. Name: "doc_0205.png",
  1159. Fun: "goto",
  1160. Url: "school?ID=100"
  1161. },
  1162. {
  1163. Name: "doc_0206.png",
  1164. Fun: "goto",
  1165. Url: "school?ID=114"
  1166. },
  1167. {
  1168. Name: "doc_0207.png",
  1169. Fun: "goto",
  1170. Url: "school?ID=115"
  1171. },
  1172. {
  1173. Name: "doc_0208.png",
  1174. Fun: "goto",
  1175. Url: "school?ID=116"
  1176. },
  1177. {
  1178. Name: "doc_0209.png",
  1179. Fun: "goto",
  1180. Url: "school?ID=117"
  1181. },
  1182. {
  1183. Name: "doc_0210.png",
  1184. Fun: "goto",
  1185. Url: "school?ID=132"
  1186. },
  1187. {
  1188. Name: "doc_0211.png",
  1189. Fun: "goto",
  1190. Url: "school?ID=143"
  1191. },
  1192. {
  1193. Name: "doc_0212.png",
  1194. Fun: "goto",
  1195. Url: "school?ID=167"
  1196. },
  1197. {
  1198. Name: "doc_0213.png",
  1199. Fun: "goto",
  1200. Url: "school?ID=181"
  1201. },
  1202. {
  1203. Name: "doc_0214.png",
  1204. Fun: "goto",
  1205. Url: "school?ID=192"
  1206. },
  1207. {
  1208. Name: "doc_0215.png",
  1209. Fun: "goto",
  1210. Url: "school?ID=193"
  1211. },
  1212. {
  1213. Name: "doc_0216.png",
  1214. Fun: "goto",
  1215. Url: "school?ID=194"
  1216. },
  1217. {
  1218. Name: "doc_0217.png",
  1219. Fun: "goto",
  1220. Url: "school?ID=239"
  1221. },
  1222. {
  1223. Name: "doc_0218.png",
  1224. Fun: "goto",
  1225. Url: "school?ID=241"
  1226. },
  1227. {
  1228. Name: "doc_0219.png",
  1229. Fun: "goto",
  1230. Url: "school?ID=268"
  1231. },
  1232. {
  1233. Name: "doc_0220.png",
  1234. Fun: "goto",
  1235. Url: "school?ID=91"
  1236. },
  1237. {
  1238. Name: "doc_0221.png",
  1239. Fun: "goto",
  1240. Url: "school?ID=256"
  1241. },
  1242. {
  1243. Name: "doc_0222.png",
  1244. Fun: "goto",
  1245. Url: "search"
  1246. },
  1247. {
  1248. Name: "doc_0223.png"
  1249. },
  1250. {
  1251. Name: "doc_0224.png"
  1252. },
  1253. ]
  1254. },
  1255. {
  1256. ID: 3,
  1257. Category: "2023",
  1258. IsPageShow:1,
  1259. Logo: "icon_sys_02.png",
  1260. Title: "2023年体育“一条龙”市级优秀体育学生招收学校和项目",
  1261. TitleShort: "2023上海优秀体育生中招信息",
  1262. TitleImage: "doc_0300.png",
  1263. Content: [{
  1264. Name: "doc_0301.png"
  1265. },
  1266. {
  1267. Name: "doc_0302.png"
  1268. },
  1269. {
  1270. Name: "doc_0303.png",
  1271. Fun: "showImage",
  1272. Url: "post_0301.png"
  1273. },
  1274. {
  1275. Name: "doc_0304.png"
  1276. },
  1277. {
  1278. Name: "doc_0305.png"
  1279. }
  1280. ]
  1281. },
  1282. {
  1283. ID: 4,
  1284. Category: "2023",
  1285. IsPageShow:1,
  1286. Logo: "icon_sys_02.png",
  1287. Title: "2023年艺术“一条龙”市级艺术骨干学生招收学校、项目和艺术团汇总",
  1288. TitleShort: "2023上海艺术骨干生中招信息",
  1289. TitleImage: "doc_0400.png",
  1290. Content: [{
  1291. Name: "doc_0401.png"
  1292. },
  1293. {
  1294. Name: "doc_0402.png"
  1295. },
  1296. {
  1297. Name: "doc_0403.png",
  1298. Fun: "showImage",
  1299. Url: "post_0401.png"
  1300. },
  1301. {
  1302. Name: "doc_0404.png"
  1303. },
  1304. {
  1305. Name: "doc_0405.png",
  1306. Fun: "showImage",
  1307. Url: "post_0402.png"
  1308. }
  1309. ]
  1310. },
  1311. {
  1312. ID: 5,
  1313. Category: "2023",
  1314. IsPageShow:0,
  1315. Logo: "icon_sys_02.png",
  1316. Title: "2023年国际课程班和中外合作办学自主招生计划情况",
  1317. TitleShort: "2023上海国际班中考自招信息",
  1318. TitleImage: "doc_0500.png",
  1319. Content: [{
  1320. Name: "doc_0501.png"
  1321. },
  1322. {
  1323. Name: "doc_0502.png"
  1324. },
  1325. {
  1326. Name: "doc_0503.png",
  1327. Fun: "showImage",
  1328. Url: "post_0501.png"
  1329. },
  1330. {
  1331. Name: "doc_0504.png"
  1332. },
  1333. {
  1334. Name: "doc_0505.png"
  1335. },
  1336. {
  1337. Name: "doc_0506.png"
  1338. }
  1339. ]
  1340. },
  1341. ];
  1342. ctx.body = {errcode: 10000, result: articles};
  1343. }
  1344. // 更新用户昵称和头像
  1345. export async function UpdateMPSUserNickNameAndAvatar(ctx) {
  1346. const param = ctx.request.body;
  1347. param.UserID = ctx.query.UserID;
  1348. if (!param.NickName) {
  1349. param.NickName = "陌生用户";
  1350. }
  1351. await mps.UpdateUsersByUserID(param);
  1352. ctx.body = {"errcode": 10000};
  1353. }
  1354. // 提交祝福语
  1355. export async function MPSWish(ctx) {
  1356. const param = ctx.request.body;
  1357. const param2 = {WishType: "person"};
  1358. if (param.ToName) {
  1359. param.ToName = param.ToName.replace(/\r/g, "").replace(/\n/g, "");
  1360. }
  1361. if (!param.ID || param.ID == 0) {
  1362. param.CreateTime = moment().format('YYYY-MM-DD HH:mm:ss');
  1363. param.UpdateTime = moment().format('YYYY-MM-DD HH:mm:ss');
  1364. param.Flag = 0;
  1365. const addInfo = await mps.AddWish(param);
  1366. param2.ID = addInfo.insertId;
  1367. } else {
  1368. param.UpdateTime = moment().format('YYYY-MM-DD HH:mm:ss');
  1369. await mps.UpdateMPSWish(param);
  1370. param2.ID = param.ID;
  1371. }
  1372. let result = await mps.GetMPSWish(param2);
  1373. result = buildWish(result[0]);
  1374. ctx.body = {errcode: 10000, result:result};
  1375. }
  1376. function buildWish(item,wishType){
  1377. let nickName2=item.NickName;
  1378. if (nickName2 && nickName2.length>10)
  1379. nickName2=nickName2.substr(0,8)+"…";
  1380. item.NickName2=nickName2;
  1381. let str=item.ToName;
  1382. if (!str || item.IsOpen==0) {
  1383. if (item.ToWhom=="给自己") {
  1384. str="我";
  1385. }
  1386. else if (item.ToWhom=="给孩子") {
  1387. str="孩子";
  1388. }
  1389. else if (item.ToWhom=="给同学") {
  1390. str="大家";
  1391. }
  1392. }
  1393. if (wishType=="schoolAll") {
  1394. item.WishWhom = "祝" + str + "考上";
  1395. }
  1396. else {
  1397. if (str && str.length > 8)
  1398. str = str.substr(0, 8) + "…";
  1399. item.WishWhom = "祝" + str + "考上";
  1400. }
  1401. if (item.ToName)
  1402. item.WishWhom2 = "祝"+item.ToName+"考上";
  1403. else
  1404. item.WishWhom2 = "祝"+str+"考上";
  1405. if (wishType=="schoolAll") {
  1406. item.WishContentItem = item.WishContent;
  1407. }
  1408. else {
  1409. if (item.WishContent && item.WishContent.length>40)
  1410. item.WishContentItem=item.WishContent.substr(0,39)+ "…";
  1411. else if (item.WishContent)
  1412. item.WishContentItem = item.WishContent;
  1413. else {
  1414. item.WishContentItem = "";
  1415. }
  1416. }
  1417. if (item.IsOpen==0){
  1418. item.WishContentItem="";
  1419. }
  1420. return item;
  1421. }
  1422. export async function Ping(ctx) {
  1423. ctx.body = {errcode: 10000};
  1424. }