Browse Source

Merge branch 'master' of http://192.168.1.41:3000/SmartCost/ConstructionCost

vian 4 years ago
parent
commit
79058ccc0d

+ 52 - 0
modules/users/controllers/cld_controller.js

@@ -13,6 +13,7 @@ import UserModel from "../models/user_model"
 import CompilationModel from "../models/compilation_model";
 let online_facade = require('../facade/online_facade')
 const SMS = require('../models/sms');
+const moment = require('moment');
 
 class CLDController {
 
@@ -311,6 +312,57 @@ class CLDController {
         }
         response.json(responseData);
     }
+
+    async checkUserCompilationStatus(request, response) {
+        try {
+            let today = moment(new Date()-86400*1000).format('YYYY-MM-DD');
+            let userModel = new UserModel();
+            let userList = await userModel.getDeadlineList({upgrade_list: {$elemMatch:{ deadline: today }}});
+            if (userList.length > 0) {
+                for (let user of userList) {
+                    for (let cul of user.upgrade_list) {
+                        if (cul.deadline === today) {
+                            // cul.deadline = '';
+                            cul.isUpgrade = false;
+                        }
+                    }
+                    let condition = {ssoId: user.ssoId};
+                    await userModel.updateUser(condition, {upgrade_list: user.upgrade_list});
+                }
+            }
+            response.json({error: 0, msg: 'success', data: userList});
+        } catch (error) {
+            response.json({error: 1, msg: error});
+        }
+    }
+
+    async sendCompilationStatusSms(request, response) {
+        try {
+            let today = moment(new Date()-86400*1000).format('YYYY-MM-DD');
+            let userModel = new UserModel();
+            let userList = await userModel.getDeadlineList({upgrade_list: {$elemMatch:{ deadline: today }}});
+            if (userList.length > 0) {
+                let compilationModel = new CompilationModel();
+                const Sms = new SMS();
+                for (let user of userList) {
+                    for (let cul of user.upgrade_list) {
+                        if (cul.deadline === today) {
+                            cul.deadline = '';
+                            // cul.isUpgrade = false;
+                            // 发送短信
+                            let compilationData = await compilationModel.getCompilationById(cul.compilationID);
+                            await Sms.sendProductMsg(user.mobile, 2, user.real_name, compilationData.name, '');
+                        }
+                    }
+                    let condition = {ssoId: user.ssoId};
+                    await userModel.updateUser(condition, {upgrade_list: user.upgrade_list});
+                }
+            }
+            response.json({error: 0, msg: 'success', data: userList});
+        } catch (error) {
+            response.json({error: 1, msg: error});
+        }
+    }
 }
 
 export default CLDController;

+ 17 - 1
modules/users/models/user_model.js

@@ -386,7 +386,7 @@ class UserModel extends BaseModel {
     /**
      * 从session中判断用户是否是免费版
      * @param {String} sessionVersion
-     * @return {Boolean} 
+     * @return {Boolean}
      */
     isFreeFromSession(sessionVersion) {
         if (!sessionVersion) {
@@ -523,6 +523,22 @@ class UserModel extends BaseModel {
     getDayMsg(index){
         return this.dayMsg[index];
     }
+
+    /**
+     * 获取usercompilation到期列表
+     *
+     * @param {object} condition
+     * @param {number} page
+     * @param {Number} pageSize
+     * @return {promise}
+     */
+    async getDeadlineList(condition = null) {
+
+        let userList = await this.db.find(condition);
+        userList = userList.length > 0 ? userList : [];
+
+        return userList;
+    }
 }
 
 export default UserModel;

+ 4 - 0
modules/users/routes/cld_route.js

@@ -30,5 +30,9 @@ module.exports = function (app) {
 
     router.post('/getUserOnlineInfo', cldController.getUserOnlineInfo);
 
+    router.get('/checkUserCompilationStatus', cldController.checkUserCompilationStatus);
+
+    router.get('/sendCompilationStatusSms', cldController.sendCompilationStatusSms);
+
     app.use('/cld',router)
 };