diff --git a/app/controllers/ecloud_controller.rb b/app/controllers/ecloud_controller.rb index d88ec86a..3d025b15 100644 --- a/app/controllers/ecloud_controller.rb +++ b/app/controllers/ecloud_controller.rb @@ -1,6 +1,9 @@ +#encoding=utf-8 require 'net/http' - class EcloudController < ApplicationController + skip_before_filter :verify_authenticity_token + + def index render file: 'public/react-oschina/build/index.html', :layout => false @@ -21,12 +24,49 @@ class EcloudController < ApplicationController redirect_to "https://gitee.com/oauth/authorize?client_id=#{CLIENT_ID}&redirect_uri=#{ROOT_URl}/oschina/login_cb&response_type=code" end - def open_bs - Eclouduser.create(ecloudeuser_params) + # 企业开通 + def bs_new + + end + + # 企业更新 + def bs_update + end - def destroy_bs + # 用户业务开通接口 + def ps_new + begin + ecloud_user = EcloudUser.where(:custid => params['custid'], :user_id => params['users']['userid']).first + if ecloud_user.present? + render :json => {code: 501, msg: "你已开通过该业务"} + else + EcloudUser.create!(custid: params['custid'], opttype: params['users']['opttype'], userid: params['users']['userid'], + username: params['users']['username'], useralias: params['users']['useralias'], + mobile: params['users']['mobile'], email: params['users']['email'], begintime: params['users']['begintime'].to_s, + endtime: params['users']['endtime'].to_s) + render :json => {success: true, errmsg: ""} + end + rescue Exception => e + logger.error(e.message) + render :json => {code: 500, msg: "#{e.message}"} + end + end + # 用户业务变更、销毁接口 + def ps_update + begin + ecloud_user = EcloudUser.where(:custid => params['custid'], :user_id => params['users']['userid']).first + if ecloud_user.present? + ecloud_user.update_attributes(opttype: params['users']['opttype']) + render :json => {code: 501, msg: "你已开通过该业务"} + else + render :json => {code: 404, errmsg: ""} + end + rescue Exception => e + logger.error(e.message) + render :json => {code: 500, msg: "#{e.message}"} + end end def ecloud_login_callback @@ -35,8 +75,8 @@ class EcloudController < ApplicationController # logger.debug params url = "https://221.176.54.92:9081/restful/services/oauth2/authorization?grant_type=authorization_code" + - "&client_id=#{CLIENT_ID}&scope=&redirect_uri=&code=#{params[:code]}" - # url = "https://gitee.com/oauth/token?grant_type=authorization_code"+ + "&client_id=#{CLIENT_ID}&scope=&redirect_uri=&code=#{params[:code]}" + # url = "https://gitee.com/oauth/token?grant_type=authorization_code"+ # "&code=#{params[:code]}&client_id=#{CLIENT_ID}&redirect_uri=#{ROOT_URl}/oschina/login_cb&client_secret=#{CLIENT_SECRET}" res = post(url) @@ -101,4 +141,8 @@ class EcloudController < ApplicationController end end + private + def ecloudeuser_params + {} + end end diff --git a/app/models/ecloud.rb b/app/models/ecloud.rb index 3c251d41..dc14eddc 100644 --- a/app/models/ecloud.rb +++ b/app/models/ecloud.rb @@ -1,5 +1,5 @@ class Ecloud < ActiveRecord::Base attr_accessible :applyno, :begintime, :bossorderid, :custcode, :custid, :custname, :custtype, :ecordercode, :endtime, :mobile, :opttype, :productcode, :registersource, :string, :trial, :useralias, :userid, :username - has_many :ecloud_userses, destroy: :dependence + has_many :ecloud_users, destroy: :dependence has_many :ecloud_services, destroy: :dependence end diff --git a/app/models/ecloud_user.rb b/app/models/ecloud_user.rb new file mode 100644 index 00000000..9266adb7 --- /dev/null +++ b/app/models/ecloud_user.rb @@ -0,0 +1,3 @@ +class EcloudUser < ActiveRecord::Base + attr_accessible :begintime, :email, :endtime, :mobile, :opttype, :paras, :useralias, :userid, :username, :custid +end diff --git a/app/models/eclouduser.rb b/app/models/eclouduser.rb deleted file mode 100644 index d472e3f3..00000000 --- a/app/models/eclouduser.rb +++ /dev/null @@ -1,7 +0,0 @@ -class Eclouduser < ActiveRecord::Base - attr_accessible :applyno, :begintime, :bossorderid, :code, :custcod, :custid, :custname, :custtype, :ecordercoder, :email, - :endtime, :key, :moblile, :opttype, :productcode, :registersource, :trial, - :useralias, :userid, :username, :productparas, :services - serialize :productparas, Hash - serialize :services, Hash -end diff --git a/config/routes.rb b/config/routes.rb index 8e414caa..e94cb41d 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -34,6 +34,7 @@ RedmineApp::Application.routes.draw do ## oauth相关 match 'oauth/userinfo', to: 'oauth#get_userinfo', :via => :get match 'ecloud/ecloud_login_callback', to: 'ecloud#ecloud_login_callback', :via => :get + match 'ecloud/bs_new', to: 'ecloud#bs_new', :via => :post resources :ec_course_evaluations do diff --git a/db/migrate/20190312021600_create_ecloud_user.rb b/db/migrate/20190312021600_create_ecloud_user.rb index b4be20d4..6a3221e3 100644 --- a/db/migrate/20190312021600_create_ecloud_user.rb +++ b/db/migrate/20190312021600_create_ecloud_user.rb @@ -1,4 +1,4 @@ -class CreateEcloudUsers < ActiveRecord::Migration +class CreateEcloudUser < ActiveRecord::Migration def change create_table :ecloud_users do |t| t.integer :opttype diff --git a/db/migrate/20190312030525_create_ecloud.rb b/db/migrate/20190312030525_create_ecloud.rb new file mode 100644 index 00000000..989804bb --- /dev/null +++ b/db/migrate/20190312030525_create_ecloud.rb @@ -0,0 +1,25 @@ +class CreateEcloud < ActiveRecord::Migration + def change + create_table :eclouds do |t| + t.string :applyno + t.string :ecordercode + t.integer :opttype + t.boolean :trial + t.string :bossorderid + t.integer :custid + t.string :custcode + t.integer :registersource + t.integer :custtype + t.string :custname + t.integer :userid + t.string :username + t.string :useralias + t.string :mobile + t.string :productcode + t.string :begintime + t.string :endtime + + t.timestamps + end + end +end diff --git a/db/migrate/20190312030722_create_ecloud_service.rb b/db/migrate/20190312030722_create_ecloud_service.rb new file mode 100644 index 00000000..2c1c64d9 --- /dev/null +++ b/db/migrate/20190312030722_create_ecloud_service.rb @@ -0,0 +1,13 @@ +class CreateEcloudService < ActiveRecord::Migration + def change + create_table :ecloud_services do |t| + t.integer :opttype + t.string :code + t.string :begintime + t.string :endtime + t.integer :ecloud_id + + t.timestamps + end + end +end