| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 | 
							- 'use strict';
 
- /**
 
-  * 客户信息数据模型
 
-  *
 
-  * @author CaiAoLin
 
-  * @date 2017/11/14
 
-  * @version
 
-  */
 
- module.exports = app => {
 
-     class Customer extends app.BaseService {
 
-         /**
 
-          * 构造函数
 
-          *
 
-          * @param {Object} ctx - egg全局变量
 
-          * @return {void}
 
-          */
 
-         constructor(ctx) {
 
-             super(ctx);
 
-             this.tableName = 'customer';
 
-         }
 
-         /**
 
-          * 数据规则
 
-          *
 
-          * @param {String} scene - 场景
 
-          * @return {Object} - 返回规则数据
 
-          */
 
-         rule(scene) {
 
-             let rule = {};
 
-             switch (scene) {
 
-                 case 'boot':
 
-                     rule = {
 
-                         name: { type: 'string', required: true, min: 2 },
 
-                         company: { type: 'string', required: true, min: 2 },
 
-                         province: { type: 'string', required: true },
 
-                         company_type: { type: 'string', allowEmpty: true },
 
-                         scale: { type: 'string', allowEmpty: true },
 
-                     };
 
-                     break;
 
-                 default:
 
-                     break;
 
-             }
 
-             return rule;
 
-         }
 
-         /**
 
-          * 查询过虑
 
-          *
 
-          * @param {Object} data - 筛选表单中的get数据
 
-          * @return {void}
 
-          */
 
-         searchFilter(data) {
 
-             this.initSqlBuilder();
 
-         }
 
-         /**
 
-          * 新增SSO用户
 
-          *
 
-          * @param {Object} data - 接口返回的数据
 
-          * @return {Number} - 返回新增数据的id
 
-          */
 
-         async addSSOUser(data) {
 
-             let result = 0;
 
-             if (Object.keys(data).length <= 0 || data.useremail === undefined) {
 
-                 return result;
 
-             }
 
-             // 先查找是否存在
 
-             const customerData = await this.db.get(this.tableName, { email: data.useremail });
 
-             if (customerData !== null) {
 
-                 // 存在则直接返回id
 
-                 const updateData = {
 
-                     id: customerData.id,
 
-                     email: data.useremail,
 
-                     mobile: data.mobile,
 
-                     name: data.username,
 
-                 };
 
-                 await this.db.update(this.tableName, updateData);
 
-                 return customerData.id;
 
-             }
 
-             const insertData = {
 
-                 email: data.useremail,
 
-                 mobile: data.mobile,
 
-                 name: data.username,
 
-             };
 
-             result = await this.db.insert(this.tableName, insertData);
 
-             return result.insertId;
 
-         }
 
-         /**
 
-          * 判断是否需要初始化信息
 
-          *
 
-          * @param {Object} postData - 表单post过来的数据
 
-          * @return {Boolean} - 返回是否需要初始化结果
 
-          */
 
-         async isNeedBoot(postData) {
 
-             if (postData.username === undefined) {
 
-                 return false;
 
-             }
 
-             const customer = await this.getDataByCondition({ email: postData.username });
 
-             if (customer === null) {
 
-                 return false;
 
-             }
 
-             return customer.company === '';
 
-         }
 
-         /**
 
-          * 初始化用户信息
 
-          *
 
-          * @param {Object} postData - 表单post过来的数据
 
-          * @return {Boolean} - 返回初始化结果
 
-          */
 
-         async boot(postData) {
 
-             const sessionUser = this.ctx.session.sessionUser;
 
-             delete postData._csrf_j;
 
-             const result = await this.update(postData, { email: sessionUser.account });
 
-             return result;
 
-         }
 
-     }
 
-     return Customer;
 
- };
 
 
  |