mpsCommonController.js 45 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492
  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. // "2025年上海中考自主招生、名额到区、名额到校、1-15平行志愿的招生计划数据都已经整理完毕。预计7月8日左右出分数线成绩,敬请期待!",
  342. // ];
  343. // result.Content=content[0];
  344. }
  345. ctx.body = {errcode: 10000, result};
  346. }
  347. // 获取文章
  348. export async function GetMPSArticle(ctx) {
  349. let articles=[
  350. {
  351. ID: 26,
  352. Category: "2025",
  353. IsPageShow:1,
  354. Logo: "icon_sys_02.png",
  355. Title: "2025年国际课程班和中外合作办学自主招生计划情况",
  356. TitleShort: "2025上海国际班中考自招信息",
  357. TitleImage: "doc_2600.png",
  358. Content: [{
  359. Name: "doc_2601.png"
  360. },
  361. {
  362. Name: "doc_2602.png"
  363. },
  364. {
  365. Name: "doc_2603.png",
  366. Fun: "showImage",
  367. Url: "post_26.png"
  368. },
  369. {
  370. Name: "doc_2604.png"
  371. },
  372. {
  373. Name: "doc_2605.png"
  374. },
  375. {
  376. Name: "doc_2606.png"
  377. }
  378. ]
  379. },
  380. {
  381. ID: 25,
  382. Category: "2025",
  383. IsPageShow:1,
  384. Logo: "icon_sys_02.png",
  385. Title: "2025年20所市特色普通高中自主招生情况",
  386. TitleShort: "2025上海特色高中自招信息",
  387. TitleImage: "doc_2500.png",
  388. Content: [{
  389. Name: "doc_2501.png"
  390. },{
  391. Name: "doc_2502.png",
  392. Fun: "showImage",
  393. Url: "post_25.png"
  394. },{
  395. Name: "doc_2503.png",
  396. Fun: "goto",
  397. Url: "school?ID=82"
  398. },{
  399. Name: "doc_2504.png",
  400. Fun: "goto",
  401. Url: "school?ID=94"
  402. },{
  403. Name: "doc_2505.png",
  404. Fun: "goto",
  405. Url: "school?ID=100"
  406. },{
  407. Name: "doc_2506.png",
  408. Fun: "goto",
  409. Url: "school?ID=114"
  410. },{
  411. Name: "doc_2507.png",
  412. Fun: "goto",
  413. Url: "school?ID=115"
  414. },{
  415. Name: "doc_2508.png",
  416. Fun: "goto",
  417. Url: "school?ID=116"
  418. },{
  419. Name: "doc_2509.png",
  420. Fun: "goto",
  421. Url: "school?ID=117"
  422. },{
  423. Name: "doc_2510.png",
  424. Fun: "goto",
  425. Url: "school?ID=132"
  426. },{
  427. Name: "doc_2511.png",
  428. Fun: "goto",
  429. Url: "school?ID=143"
  430. },{
  431. Name: "doc_2512.png",
  432. Fun: "goto",
  433. Url: "school?ID=167"
  434. },{
  435. Name: "doc_2513.png",
  436. Fun: "goto",
  437. Url: "school?ID=181"
  438. },{
  439. Name: "doc_2514.png",
  440. Fun: "goto",
  441. Url: "school?ID=192"
  442. },{
  443. Name: "doc_2515.png",
  444. Fun: "goto",
  445. Url: "school?ID=193"
  446. },{
  447. Name: "doc_2516.png",
  448. Fun: "goto",
  449. Url: "school?ID=194"
  450. },{
  451. Name: "doc_2517.png",
  452. Fun: "goto",
  453. Url: "school?ID=239"
  454. },{
  455. Name: "doc_2518.png",
  456. Fun: "goto",
  457. Url: "school?ID=241"
  458. },{
  459. Name: "doc_2519.png",
  460. Fun: "goto",
  461. Url: "school?ID=268"
  462. },{
  463. Name: "doc_2520.png",
  464. Fun: "goto",
  465. Url: "school?ID=91"
  466. },{
  467. Name: "doc_2521.png",
  468. Fun: "goto",
  469. Url: "school?ID=256"
  470. },{
  471. Name: "doc_2522.png",
  472. Fun: "goto",
  473. Url: "school?ID=261"
  474. },{
  475. Name: "doc_2523.png",
  476. Fun: "goto",
  477. Url: "search"
  478. },{
  479. Name: "doc_2524.png",
  480. },{
  481. Name: "doc_2525.png",
  482. },
  483. ]
  484. },
  485. {
  486. ID: 24,
  487. Category: "2025",
  488. IsPageShow:1,
  489. Logo: "icon_sys_02.png",
  490. Title: "2025年市级艺术骨干学生招收学校和项目",
  491. TitleShort: "2025上海艺术骨干生中招信息",
  492. TitleImage: "doc_2400.png",
  493. Content: [{
  494. Name: "doc_2401.png"
  495. },{
  496. Name: "doc_2402.png",
  497. },{
  498. Name: "doc_2403.png",
  499. Fun: "showImage",
  500. Url: "post_24.png"
  501. },
  502. ]
  503. },
  504. {
  505. ID: 23,
  506. Category: "2025",
  507. IsPageShow:1,
  508. Logo: "icon_sys_02.png",
  509. Title: "2025年市级优秀体育学生招收学校和项目",
  510. TitleShort: "2025上海优秀体育生中招信息",
  511. TitleImage: "doc_2300.png",
  512. Content: [{
  513. Name: "doc_2301.png"
  514. },{
  515. Name: "doc_2302.png",
  516. },{
  517. Name: "doc_2303.png",
  518. Fun: "showImage",
  519. Url: "post_23.png"
  520. },
  521. ]
  522. },
  523. {
  524. ID: 22,
  525. Category: "2025",
  526. IsPageShow:1,
  527. Logo: "icon_sys_02.png",
  528. Title: "2025年徐汇、普陀、虹口、闵行、嘉定、浦东、松江新增11所高中介绍",
  529. TitleShort: "2025上海新增11所高中介绍",
  530. TitleImage: "doc_2200.png",
  531. Content: [{
  532. Name: "doc_2201.png"
  533. },{
  534. Name: "doc_2202.png",
  535. Fun: "goto",
  536. Url: "school?ID=985"
  537. },{
  538. Name: "doc_2203.png",
  539. Fun: "goto",
  540. Url: "school?ID=986"
  541. },{
  542. Name: "doc_2204.png",
  543. Fun: "goto",
  544. Url: "school?ID=124"
  545. },{
  546. Name: "doc_2205.png",
  547. Fun: "goto",
  548. Url: "school?ID=127"
  549. },{
  550. Name: "doc_2206.png",
  551. Fun: "goto",
  552. Url: "school?ID=989"
  553. },{
  554. Name: "doc_2207.png",
  555. Fun: "goto",
  556. Url: "school?ID=990"
  557. },{
  558. Name: "doc_2208.png",
  559. Fun: "goto",
  560. Url: "school?ID=991"
  561. },{
  562. Name: "doc_2209.png",
  563. Fun: "goto",
  564. Url: "school?ID=992"
  565. },{
  566. Name: "doc_2210.png",
  567. Fun: "goto",
  568. Url: "school?ID=993"
  569. },{
  570. Name: "doc_2211.png",
  571. Fun: "goto",
  572. Url: "school?ID=994"
  573. },{
  574. Name: "doc_2212.png",
  575. Fun: "goto",
  576. Url: "school?ID=995"
  577. },{
  578. Name: "doc_2213.png",
  579. Fun: "goto",
  580. Url: "search"
  581. },
  582. ]
  583. },
  584. {
  585. ID: 20,
  586. Category: "2024",
  587. IsPageShow:1,
  588. Logo: "icon_sys_02.png",
  589. Title: "2024年国际课程班和中外合作办学自主招生计划情况",
  590. TitleShort: "2024上海国际班中考自招信息",
  591. TitleImage: "doc_2000.png",
  592. Content: [{
  593. Name: "doc_2001.png"
  594. },
  595. {
  596. Name: "doc_2002.png"
  597. },
  598. {
  599. Name: "doc_2003.png",
  600. Fun: "showImage",
  601. Url: "post_2001.png"
  602. },
  603. {
  604. Name: "doc_2004.png"
  605. },
  606. {
  607. Name: "doc_2005.png"
  608. },
  609. {
  610. Name: "doc_2006.png"
  611. }
  612. ]
  613. },
  614. {
  615. ID: 19,
  616. Category: "2024",
  617. IsPageShow:1,
  618. Logo: "icon_sys_02.png",
  619. Title: "2024年市级艺术骨干学生招收学校和项目",
  620. TitleShort: "2024上海艺术骨干生中招信息",
  621. TitleImage: "doc_1900.png",
  622. Content: [{
  623. Name: "doc_1901.png"
  624. },
  625. {
  626. Name: "doc_1902.png"
  627. },
  628. {
  629. Name: "doc_1903.png",
  630. Fun: "showImage",
  631. Url: "post_1901.png"
  632. },
  633. {
  634. Name: "doc_1904.png"
  635. },
  636. {
  637. Name: "doc_1905.png",
  638. Fun: "showImage",
  639. Url: "post_1902.png"
  640. }
  641. ]
  642. },
  643. {
  644. ID: 18,
  645. Category: "2024",
  646. IsPageShow:1,
  647. Logo: "icon_sys_02.png",
  648. Title: "2024年市级优秀体育学生招收学校和项目",
  649. TitleShort: "2024上海优秀体育生中招信息",
  650. TitleImage: "doc_1800.png",
  651. Content: [{
  652. Name: "doc_1801.png"
  653. },
  654. {
  655. Name: "doc_1802.png"
  656. },
  657. {
  658. Name: "doc_1803.png",
  659. Fun: "showImage",
  660. Url: "post_1801.png"
  661. },
  662. {
  663. Name: "doc_1804.png"
  664. },
  665. {
  666. Name: "doc_1805.png"
  667. }
  668. ]
  669. },
  670. {
  671. ID: 17,
  672. Category: "2024",
  673. IsPageShow:0,
  674. Logo: "icon_sys_02.png",
  675. Title: "2024年市特色普通高中自主招生情况",
  676. TitleShort: "2024上海特色高中自招信息",
  677. TitleImage: "doc_1700.png",
  678. Content: [{
  679. Name: "doc_1701.png"
  680. },
  681. {
  682. Name: "doc_1702.png",
  683. Fun: "showImage",
  684. Url: "post_1701.png"
  685. },
  686. {
  687. Name: "doc_1703.png",
  688. Fun: "goto",
  689. Url: "school?ID=82"
  690. },
  691. {
  692. Name: "doc_1704.png",
  693. Fun: "goto",
  694. Url: "school?ID=94"
  695. },
  696. {
  697. Name: "doc_1705.png",
  698. Fun: "goto",
  699. Url: "school?ID=100"
  700. },
  701. {
  702. Name: "doc_1706.png",
  703. Fun: "goto",
  704. Url: "school?ID=114"
  705. },
  706. {
  707. Name: "doc_1707.png",
  708. Fun: "goto",
  709. Url: "school?ID=115"
  710. },
  711. {
  712. Name: "doc_1708.png",
  713. Fun: "goto",
  714. Url: "school?ID=116"
  715. },
  716. {
  717. Name: "doc_1709.png",
  718. Fun: "goto",
  719. Url: "school?ID=117"
  720. },
  721. {
  722. Name: "doc_1710.png",
  723. Fun: "goto",
  724. Url: "school?ID=132"
  725. },
  726. {
  727. Name: "doc_1711.png",
  728. Fun: "goto",
  729. Url: "school?ID=143"
  730. },
  731. {
  732. Name: "doc_1712.png",
  733. Fun: "goto",
  734. Url: "school?ID=167"
  735. },
  736. {
  737. Name: "doc_1713.png",
  738. Fun: "goto",
  739. Url: "school?ID=181"
  740. },
  741. {
  742. Name: "doc_1714.png",
  743. Fun: "goto",
  744. Url: "school?ID=192"
  745. },
  746. {
  747. Name: "doc_1715.png",
  748. Fun: "goto",
  749. Url: "school?ID=193"
  750. },
  751. {
  752. Name: "doc_1716.png",
  753. Fun: "goto",
  754. Url: "school?ID=194"
  755. },
  756. {
  757. Name: "doc_1717.png",
  758. Fun: "goto",
  759. Url: "school?ID=239"
  760. },
  761. {
  762. Name: "doc_1718.png",
  763. Fun: "goto",
  764. Url: "school?ID=241"
  765. },
  766. {
  767. Name: "doc_1719.png",
  768. Fun: "goto",
  769. Url: "school?ID=268"
  770. },
  771. {
  772. Name: "doc_1720.png",
  773. Fun: "goto",
  774. Url: "school?ID=91"
  775. },
  776. {
  777. Name: "doc_1721.png",
  778. Fun: "goto",
  779. Url: "school?ID=256"
  780. },
  781. {
  782. Name: "doc_1722.png",
  783. Fun: "goto",
  784. Url: "search"
  785. },
  786. {
  787. Name: "doc_1723.png"
  788. },
  789. {
  790. Name: "doc_1724.png"
  791. },
  792. ]
  793. },
  794. {
  795. ID: 10,
  796. Category: "2024",
  797. IsPageShow:0,
  798. Logo: "icon_sys_02.png",
  799. Title: "2024年闵行、宝山、浦东、松江、青浦新增15所高中介绍",
  800. TitleShort: "2024上海新增15所高中情况",
  801. TitleImage: "doc_1000.png",
  802. Content: [{
  803. Name: "doc_1001.png"
  804. },
  805. {
  806. Name: "doc_1002.png",
  807. Fun: "goto",
  808. Url: "school?ID=849"
  809. },
  810. {
  811. Name: "doc_1003.png",
  812. Fun: "goto",
  813. Url: "school?ID=850"
  814. },
  815. {
  816. Name: "doc_1004.png",
  817. Fun: "goto",
  818. Url: "school?ID=851"
  819. },
  820. {
  821. Name: "doc_1005.png",
  822. Fun: "goto",
  823. Url: "school?ID=852"
  824. },
  825. {
  826. Name: "doc_1006.png",
  827. Fun: "goto",
  828. Url: "school?ID=853"
  829. },
  830. {
  831. Name: "doc_1007.png",
  832. Fun: "goto",
  833. Url: "school?ID=854"
  834. },
  835. {
  836. Name: "doc_1008.png",
  837. Fun: "goto",
  838. Url: "school?ID=855"
  839. },
  840. {
  841. Name: "doc_1009.png",
  842. Fun: "goto",
  843. Url: "school?ID=856"
  844. },
  845. {
  846. Name: "doc_1010.png",
  847. Fun: "goto",
  848. Url: "school?ID=857"
  849. },
  850. {
  851. Name: "doc_1011.png",
  852. Fun: "goto",
  853. Url: "school?ID=858"
  854. },
  855. {
  856. Name: "doc_1012.png",
  857. Fun: "goto",
  858. Url: "school?ID=859"
  859. },
  860. {
  861. Name: "doc_1013.png",
  862. Fun: "goto",
  863. Url: "school?ID=860"
  864. },
  865. {
  866. Name: "doc_1014.png",
  867. Fun: "goto",
  868. Url: "school?ID=861"
  869. },
  870. {
  871. Name: "doc_1015.png",
  872. Fun: "goto",
  873. Url: "school?ID=862"
  874. },
  875. {
  876. Name: "doc_1016.png",
  877. Fun: "goto",
  878. Url: "school?ID=863"
  879. },
  880. {
  881. Name: "doc_1017.png",
  882. Fun: "goto",
  883. Url: "search"
  884. },
  885. ]
  886. },
  887. {
  888. ID: 6,
  889. Category: "小知识",
  890. IsPageShow:1,
  891. Logo: "icon_sys_01.png",
  892. Title: "中考有哪些科目,分数如何分配",
  893. TitleShort: "上海中考科目和分值设置",
  894. TitleImage: "doc_0600.png",
  895. Content: [{
  896. Name: "doc_0601.png"
  897. },
  898. {
  899. Name: "doc_0602.png",
  900. Fun: "showImage",
  901. Url: "post_0601.png"
  902. },
  903. {
  904. Name: "doc_0603.png"
  905. },
  906. {
  907. Name: "doc_0604.png"
  908. }
  909. ]
  910. },
  911. {
  912. ID: 11,
  913. Category: "小知识",
  914. IsPageShow:1,
  915. Logo: "icon_sys_01.png",
  916. Title: "图说上海市中招志愿类别和招生录取批次",
  917. TitleShort: "上海中招志愿类别和录取流程",
  918. Content: [{
  919. Name: "doc_1101.png"
  920. },
  921. {
  922. Name: "doc_1102.png"
  923. },
  924. {
  925. Name: "doc_1103.png",
  926. Fun: "showImage",
  927. Url: "post_1101.png"
  928. },
  929. {
  930. Name: "doc_1104.png"
  931. },
  932. {
  933. Name: "doc_1105.png",
  934. Fun: "showImage",
  935. Url: "post_1102.png"
  936. }
  937. ]
  938. },
  939. {
  940. ID: 8,
  941. Category: "小知识",
  942. IsPageShow:1,
  943. Logo: "icon_sys_01.png",
  944. Title: "各区教育局官方网站、公众号汇总",
  945. TitleShort: "上海各区中考招生官网汇总",
  946. TitleImage: "doc_0800.png",
  947. Content: [{
  948. Name: "doc_0801.png"
  949. },
  950. {
  951. Name: "doc_0802.png",
  952. Fun: "showImage",
  953. Url: "post_0801.png"
  954. },
  955. {
  956. Name: "doc_0803.png",
  957. Fun: "showImage",
  958. Url: "post_0801.png"
  959. }
  960. ]
  961. },
  962. {
  963. ID: 1,
  964. Category: "小知识",
  965. IsPageShow:0,
  966. Logo: "icon_sys_01.png",
  967. Title: "高中阶段可以报考哪些类型的学校",
  968. TitleShort: "上海中考报考学校类型",
  969. Content: [{
  970. Name: "doc_0101.png"
  971. },
  972. {
  973. Name: "doc_0102.png"
  974. },
  975. {
  976. Name: "doc_0103.png",
  977. },
  978. {
  979. Name: "doc_0104.png",
  980. Fun: "reLaunch",
  981. Url: "default"
  982. },
  983. {
  984. Name: "doc_0105.png"
  985. }
  986. ]
  987. },
  988. {
  989. ID: 13,
  990. Category: "小知识",
  991. IsPageShow:0,
  992. Logo: "icon_sys_01.png",
  993. Title: "自主招生有哪几种",
  994. TitleShort: "上海中考自主招生介绍",
  995. Content: [{
  996. Name: "doc_1301.png"
  997. },
  998. {
  999. Name: "doc_1302.png"
  1000. },
  1001. {
  1002. Name: "doc_1303.png",
  1003. Fun: "reLaunch",
  1004. Url: "default"
  1005. },
  1006. {
  1007. Name: "doc_1304.png",
  1008. },
  1009. {
  1010. Name: "doc_1305.png",
  1011. },
  1012. {
  1013. Name: "doc_1306.png"
  1014. }
  1015. ]
  1016. },
  1017. {
  1018. ID: 14,
  1019. Category: "小知识",
  1020. IsPageShow:0,
  1021. Logo: "icon_sys_01.png",
  1022. Title: "什么是名额分配综合评价录取志愿",
  1023. TitleShort: "上海中考名额分配介绍",
  1024. Content: [{
  1025. Name: "doc_1401.png"
  1026. },
  1027. {
  1028. Name: "doc_1402.png"
  1029. },
  1030. {
  1031. Name: "doc_1403.png",
  1032. },
  1033. {
  1034. Name: "doc_1404.png",
  1035. }
  1036. ]
  1037. },
  1038. {
  1039. ID: 15,
  1040. Category: "小知识",
  1041. IsPageShow:0,
  1042. Logo: "icon_sys_01.png",
  1043. Title: "什么是统一招生录取志愿",
  1044. TitleShort: "上海中考统一招生介绍",
  1045. Content: [{
  1046. Name: "doc_1501.png"
  1047. },
  1048. {
  1049. Name: "doc_1502.png"
  1050. }
  1051. ]
  1052. },
  1053. {
  1054. ID: 12,
  1055. Category: "小知识",
  1056. IsPageShow:0,
  1057. Logo: "icon_sys_01.png",
  1058. Title: "招生代码怎么用",
  1059. TitleShort: "上海中考招生代码介绍",
  1060. Content: [{
  1061. Name: "doc_1201.png"
  1062. },
  1063. {
  1064. Name: "doc_1202.png"
  1065. }
  1066. ]
  1067. },
  1068. {
  1069. ID: 7,
  1070. Category: "小知识",
  1071. IsPageShow:0,
  1072. Logo: "icon_sys_01.png",
  1073. Title: "政策性照顾加分和同分优待情况",
  1074. TitleShort: "上海中考加分优待信息",
  1075. TitleImage: "doc_0700.png",
  1076. Content: [{
  1077. Name: "doc_0701.png"
  1078. },
  1079. {
  1080. Name: "doc_0702.png"
  1081. },
  1082. {
  1083. Name: "doc_0703.png",
  1084. Fun: "showImage",
  1085. Url: "post_0701.png"
  1086. },
  1087. {
  1088. Name: "doc_0704.png"
  1089. }
  1090. ]
  1091. },
  1092. {
  1093. ID: 16,
  1094. Category: "小知识",
  1095. IsPageShow:0,
  1096. Logo: "icon_sys_01.png",
  1097. Title: "末位同分时怎么处理",
  1098. TitleShort: "上海中考末位同分介绍",
  1099. Content: [{
  1100. Name: "doc_1601.png"
  1101. },
  1102. {
  1103. Name: "doc_1602.png"
  1104. },
  1105. {
  1106. Name: "doc_1603.png"
  1107. }
  1108. ]
  1109. },
  1110. {
  1111. ID: 9,
  1112. Category: "小知识",
  1113. IsPageShow:0,
  1114. Logo: "icon_sys_01.png",
  1115. Title: "招生志愿信息样表长什么样",
  1116. TitleShort: "上海中招录取志愿样表",
  1117. Content: [{
  1118. Name: "doc_0901.png"
  1119. },
  1120. {
  1121. Name: "doc_0902.png",
  1122. Fun: "showImage",
  1123. Url: "post_0901.png"
  1124. },
  1125. ]
  1126. },
  1127. {
  1128. ID: 2,
  1129. Category: "2023",
  1130. IsPageShow:1,
  1131. Logo: "icon_sys_02.png",
  1132. Title: "2023年19所市特色普通高中自主招生情况",
  1133. TitleShort: "2023上海特色高中自招信息",
  1134. TitleImage: "doc_0200.png",
  1135. Content: [{
  1136. Name: "doc_0201.png"
  1137. },
  1138. {
  1139. Name: "doc_0202.png",
  1140. Fun: "showImage",
  1141. Url: "post_0201.png"
  1142. },
  1143. {
  1144. Name: "doc_0203.png",
  1145. Fun: "goto",
  1146. Url: "school?ID=82"
  1147. },
  1148. {
  1149. Name: "doc_0204.png",
  1150. Fun: "goto",
  1151. Url: "school?ID=94"
  1152. },
  1153. {
  1154. Name: "doc_0205.png",
  1155. Fun: "goto",
  1156. Url: "school?ID=100"
  1157. },
  1158. {
  1159. Name: "doc_0206.png",
  1160. Fun: "goto",
  1161. Url: "school?ID=114"
  1162. },
  1163. {
  1164. Name: "doc_0207.png",
  1165. Fun: "goto",
  1166. Url: "school?ID=115"
  1167. },
  1168. {
  1169. Name: "doc_0208.png",
  1170. Fun: "goto",
  1171. Url: "school?ID=116"
  1172. },
  1173. {
  1174. Name: "doc_0209.png",
  1175. Fun: "goto",
  1176. Url: "school?ID=117"
  1177. },
  1178. {
  1179. Name: "doc_0210.png",
  1180. Fun: "goto",
  1181. Url: "school?ID=132"
  1182. },
  1183. {
  1184. Name: "doc_0211.png",
  1185. Fun: "goto",
  1186. Url: "school?ID=143"
  1187. },
  1188. {
  1189. Name: "doc_0212.png",
  1190. Fun: "goto",
  1191. Url: "school?ID=167"
  1192. },
  1193. {
  1194. Name: "doc_0213.png",
  1195. Fun: "goto",
  1196. Url: "school?ID=181"
  1197. },
  1198. {
  1199. Name: "doc_0214.png",
  1200. Fun: "goto",
  1201. Url: "school?ID=192"
  1202. },
  1203. {
  1204. Name: "doc_0215.png",
  1205. Fun: "goto",
  1206. Url: "school?ID=193"
  1207. },
  1208. {
  1209. Name: "doc_0216.png",
  1210. Fun: "goto",
  1211. Url: "school?ID=194"
  1212. },
  1213. {
  1214. Name: "doc_0217.png",
  1215. Fun: "goto",
  1216. Url: "school?ID=239"
  1217. },
  1218. {
  1219. Name: "doc_0218.png",
  1220. Fun: "goto",
  1221. Url: "school?ID=241"
  1222. },
  1223. {
  1224. Name: "doc_0219.png",
  1225. Fun: "goto",
  1226. Url: "school?ID=268"
  1227. },
  1228. {
  1229. Name: "doc_0220.png",
  1230. Fun: "goto",
  1231. Url: "school?ID=91"
  1232. },
  1233. {
  1234. Name: "doc_0221.png",
  1235. Fun: "goto",
  1236. Url: "school?ID=256"
  1237. },
  1238. {
  1239. Name: "doc_0222.png",
  1240. Fun: "goto",
  1241. Url: "search"
  1242. },
  1243. {
  1244. Name: "doc_0223.png"
  1245. },
  1246. {
  1247. Name: "doc_0224.png"
  1248. },
  1249. ]
  1250. },
  1251. {
  1252. ID: 3,
  1253. Category: "2023",
  1254. IsPageShow:1,
  1255. Logo: "icon_sys_02.png",
  1256. Title: "2023年体育“一条龙”市级优秀体育学生招收学校和项目",
  1257. TitleShort: "2023上海优秀体育生中招信息",
  1258. TitleImage: "doc_0300.png",
  1259. Content: [{
  1260. Name: "doc_0301.png"
  1261. },
  1262. {
  1263. Name: "doc_0302.png"
  1264. },
  1265. {
  1266. Name: "doc_0303.png",
  1267. Fun: "showImage",
  1268. Url: "post_0301.png"
  1269. },
  1270. {
  1271. Name: "doc_0304.png"
  1272. },
  1273. {
  1274. Name: "doc_0305.png"
  1275. }
  1276. ]
  1277. },
  1278. {
  1279. ID: 4,
  1280. Category: "2023",
  1281. IsPageShow:1,
  1282. Logo: "icon_sys_02.png",
  1283. Title: "2023年艺术“一条龙”市级艺术骨干学生招收学校、项目和艺术团汇总",
  1284. TitleShort: "2023上海艺术骨干生中招信息",
  1285. TitleImage: "doc_0400.png",
  1286. Content: [{
  1287. Name: "doc_0401.png"
  1288. },
  1289. {
  1290. Name: "doc_0402.png"
  1291. },
  1292. {
  1293. Name: "doc_0403.png",
  1294. Fun: "showImage",
  1295. Url: "post_0401.png"
  1296. },
  1297. {
  1298. Name: "doc_0404.png"
  1299. },
  1300. {
  1301. Name: "doc_0405.png",
  1302. Fun: "showImage",
  1303. Url: "post_0402.png"
  1304. }
  1305. ]
  1306. },
  1307. {
  1308. ID: 5,
  1309. Category: "2023",
  1310. IsPageShow:0,
  1311. Logo: "icon_sys_02.png",
  1312. Title: "2023年国际课程班和中外合作办学自主招生计划情况",
  1313. TitleShort: "2023上海国际班中考自招信息",
  1314. TitleImage: "doc_0500.png",
  1315. Content: [{
  1316. Name: "doc_0501.png"
  1317. },
  1318. {
  1319. Name: "doc_0502.png"
  1320. },
  1321. {
  1322. Name: "doc_0503.png",
  1323. Fun: "showImage",
  1324. Url: "post_0501.png"
  1325. },
  1326. {
  1327. Name: "doc_0504.png"
  1328. },
  1329. {
  1330. Name: "doc_0505.png"
  1331. },
  1332. {
  1333. Name: "doc_0506.png"
  1334. }
  1335. ]
  1336. },
  1337. ];
  1338. ctx.body = {errcode: 10000, result: articles};
  1339. }
  1340. // 更新用户昵称和头像
  1341. export async function UpdateMPSUserNickNameAndAvatar(ctx) {
  1342. const param = ctx.request.body;
  1343. param.UserID = ctx.query.UserID;
  1344. if (!param.NickName) {
  1345. param.NickName = "陌生用户";
  1346. }
  1347. await mps.UpdateUsersByUserID(param);
  1348. ctx.body = {"errcode": 10000};
  1349. }
  1350. // 提交祝福语
  1351. export async function MPSWish(ctx) {
  1352. const param = ctx.request.body;
  1353. const param2 = {WishType: "person"};
  1354. if (param.ToName) {
  1355. param.ToName = param.ToName.replace(/\r/g, "").replace(/\n/g, "");
  1356. }
  1357. if (!param.ID || param.ID == 0) {
  1358. param.CreateTime = moment().format('YYYY-MM-DD HH:mm:ss');
  1359. param.UpdateTime = moment().format('YYYY-MM-DD HH:mm:ss');
  1360. param.Flag = 0;
  1361. const addInfo = await mps.AddWish(param);
  1362. param2.ID = addInfo.insertId;
  1363. } else {
  1364. param.UpdateTime = moment().format('YYYY-MM-DD HH:mm:ss');
  1365. await mps.UpdateMPSWish(param);
  1366. param2.ID = param.ID;
  1367. }
  1368. let result = await mps.GetMPSWish(param2);
  1369. result = buildWish(result[0]);
  1370. ctx.body = {errcode: 10000, result:result};
  1371. }
  1372. function buildWish(item,wishType){
  1373. let nickName2=item.NickName;
  1374. if (nickName2 && nickName2.length>10)
  1375. nickName2=nickName2.substr(0,8)+"…";
  1376. item.NickName2=nickName2;
  1377. let str=item.ToName;
  1378. if (!str || item.IsOpen==0) {
  1379. if (item.ToWhom=="给自己") {
  1380. str="我";
  1381. }
  1382. else if (item.ToWhom=="给孩子") {
  1383. str="孩子";
  1384. }
  1385. else if (item.ToWhom=="给同学") {
  1386. str="大家";
  1387. }
  1388. }
  1389. if (wishType=="schoolAll") {
  1390. item.WishWhom = "祝" + str + "考上";
  1391. }
  1392. else {
  1393. if (str && str.length > 8)
  1394. str = str.substr(0, 8) + "…";
  1395. item.WishWhom = "祝" + str + "考上";
  1396. }
  1397. if (item.ToName)
  1398. item.WishWhom2 = "祝"+item.ToName+"考上";
  1399. else
  1400. item.WishWhom2 = "祝"+str+"考上";
  1401. if (wishType=="schoolAll") {
  1402. item.WishContentItem = item.WishContent;
  1403. }
  1404. else {
  1405. if (item.WishContent && item.WishContent.length>40)
  1406. item.WishContentItem=item.WishContent.substr(0,39)+ "…";
  1407. else if (item.WishContent)
  1408. item.WishContentItem = item.WishContent;
  1409. else {
  1410. item.WishContentItem = "";
  1411. }
  1412. }
  1413. if (item.IsOpen==0){
  1414. item.WishContentItem="";
  1415. }
  1416. return item;
  1417. }
  1418. export async function Ping(ctx) {
  1419. ctx.body = {errcode: 10000};
  1420. }