Browse Source

添加同步通讯录

thm 8 years ago
parent
commit
45550fe425
4 changed files with 134 additions and 2 deletions
  1. 71 1
      app.js
  2. 32 0
      db/addrGroupMemberProvider.js
  3. 26 0
      db/addrGroupProvider.js
  4. 5 1
      db/index.js

+ 71 - 1
app.js

@@ -3,7 +3,9 @@ var Buffer  = require('bufferhelper');
 global.config = require('./config');
 var db = require('./db'),
     usersProvider = db.usersProvider,
-    branchsProvider = db.branchsProvider;
+    branchsProvider = db.branchsProvider,
+    addrGroupProvider = db.addrGroupProvider,
+    addrGroupMemberProvider = db.addrGroupMemberProvider;
  
 var server = restify.createServer({
   name: 'target-data',
@@ -80,6 +82,74 @@ server.del('/api/users/:serverId', function(req, res)
             });
 });
 
+// add by thm 20170908 增加同步通讯录 start 
+server.post('/api/addrGroup', function(req, res){
+    if (Array.isArray(req.body)){
+        var promises = [];
+        req.body.forEach(function(element) {
+            promises.push(addrGroupProvider.insert(element))
+        }, this);
+        Promise.all(promises).then(function(){
+                // res.send('{success:true}');
+            }).catch(function(err){
+                // res.send('{success:false}');
+                 console.log('error:'+err);
+            });
+    }else{
+        addrGroupProvider.insert(req.body).then(function(){
+                // res.send('{success:true}');
+            }).catch(function(err){
+                // res.send('{success:false}');
+                 console.log('error:'+err);
+            });
+    }
+    res.send('ok');
+});
+ 
+server.del('/api/addrGroup/:serverId', function(req, res)
+{
+    addrGroupProvider.delete(req.params.serverId).then(function(){
+                res.send('{success:true}');
+            }).catch(function(err){
+                res.send('{success:false}');
+                 console.log('error:'+err);
+            });
+});
+
+server.post('/api/addrGroupMember/:serverId', function(req, res){
+    if (Array.isArray(req.body)){
+        var promises = [];
+        req.body.forEach(function(element) {
+            promises.push(addrGroupMemberProvider.insert(element, req.context.serverId))
+        }, this);
+        Promise.all(promises).then(function(){
+                // res.send('{success:true}');
+            }).catch(function(err){
+                // res.send('{success:false}');
+                 console.log('error:'+err);
+            });
+    }else{
+        addrGroupMemberProvider.insert(req.body, req.context.serverId).then(function(){
+                // res.send('{success:true}');
+            }).catch(function(err){
+                // res.send('{success:false}');
+                 console.log('error:'+err);
+            });
+    }
+    res.send('ok');
+});
+ 
+server.del('/api/addrGroupMember/:serverId', function(req, res)
+{
+    addrGroupMemberProvider.delete(req.params.serverId).then(function(){
+                res.send('{success:true}');
+            }).catch(function(err){
+                res.send('{success:false}');
+                 console.log('error:'+err);
+            });
+});
+// add by thm 20170908 增加同步通讯录 end
+
 server.listen(8080, function () {
   console.log('%s listening at %s', server.name, server.url);
 });

+ 32 - 0
db/addrGroupMemberProvider.js

@@ -0,0 +1,32 @@
+/**
+ * Created by thm on 2017/09/08.
+ */
+var seq;
+exports.delete = function(serverId) {
+    return seq.query('delete from AddrGroupMember' + serverId,
+    {
+        type: seq.QueryTypes.DELETE
+    });
+};
+
+exports.insert = function(addrGroupMember, serverId) {
+    return seq.query('insert AddrGroupMember' + serverId + '(ID, LoginName, DisplayName, Mobile, GroupId, Tel, Email, Remark, NickName, Position) ' +
+        'values(' +
+        ':ID,' +
+        ':LoginName,' +
+        ':DisplayName,' +
+        ':Mobile,' +
+        ':GroupId,' +
+        ':Tel,' +
+        ':Email,' +
+        ':Remark,' +
+        ':NickName,' +
+        ':Position)', {
+            replacements: addrGroupMember,
+            type: seq.QueryTypes.INSERT
+        });
+};
+
+exports.setSequelize = function(sequelize) {
+    seq = sequelize;
+};

+ 26 - 0
db/addrGroupProvider.js

@@ -0,0 +1,26 @@
+/**
+ * Created by thm on 2017/09/08.
+ */
+var seq;
+exports.delete = function(serverId) {
+    return seq.query("delete from AddrGroup where LoginName like '" + serverId + "-%'",
+    {
+        type: seq.QueryTypes.DELETE
+    });
+};
+
+exports.insert = function(addrGroup) {
+    return seq.query('insert AddrGroup(GroupId, GroupName, ParentID, LoginName) ' +
+        'values(' +
+        ':GroupId,' +
+        ':GroupName,' +
+        ':ParentID,' +
+        ':LoginName)', {
+            replacements: addrGroup,
+            type: seq.QueryTypes.INSERT
+        });
+};
+
+exports.setSequelize = function(sequelize) {
+    seq = sequelize;
+};

+ 5 - 1
db/index.js

@@ -4,4 +4,8 @@ var sequelize = new Sequelize(config.db.database, config.db.username, config.db.
 exports.usersProvider = require('./usersProvider');
 exports.usersProvider.setSequelize(sequelize);
 exports.branchsProvider = require('./branchsProvider');
-exports.branchsProvider.setSequelize(sequelize);
+exports.branchsProvider.setSequelize(sequelize);
+exports.addrGroupProvider = require('./addrGroupProvider');
+exports.addrGroupProvider.setSequelize(sequelize);
+exports.addrGroupMemberProvider = require('./addrGroupMemberProvider');
+exports.addrGroupMemberProvider.setSequelize(sequelize);