diff --git a/.gitignore b/.gitignore index b6b5a571..22dd62ec 100644 --- a/.gitignore +++ b/.gitignore @@ -45,4 +45,8 @@ config/oneapm.yml /public/react-mobile7/build/.project /public/npm-debug.log /vendor -/workspace/* \ No newline at end of file +/workspace/* + + +.ruby-gemset +.rvmrc \ No newline at end of file diff --git a/app/controllers/ecloud_controller.rb b/app/controllers/ecloud_controller.rb index d88ec86a..5cc3d926 100644 --- a/app/controllers/ecloud_controller.rb +++ b/app/controllers/ecloud_controller.rb @@ -1,6 +1,14 @@ +#encoding=utf-8 require 'net/http' - class EcloudController < ApplicationController + skip_before_filter :verify_authenticity_token + + before_filter :user_setup + before_filter :require_login, only: [:authorize] + + + skip_before_filter :verify_authenticity_token, only: [:ps_new, :ps_edit] + def index render file: 'public/react-oschina/build/index.html', :layout => false @@ -21,12 +29,59 @@ 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) + # 企业开通 + # ecordercode 唯一标志一个企业的订购关系 + def bs_new + begin + Ecloud.create!(applyno: params['applyno'], ecordercode: params['ecordercode'], opttype: params['opttype'], trial: params['trial'], + bossorderid: params['bossorderid'], custid: params['custid'], custcode: params['custcode']) + + render :json => {result: true, errmsg: ""} + rescue Exception => e + logger.error(e.message) + render :json => {code: 500, msg: "#{e.message}"} + end end - def destroy_bs + # 企业更新 + def bs_update + + end + # 用户业务开通接口 + def ps_new + begin + logger.info("11111######params") + 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 +90,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 +156,8 @@ class EcloudController < ApplicationController end end + private + def ecloudeuser_params + {} + end end diff --git a/app/models/ecloud.rb b/app/models/ecloud.rb new file mode 100644 index 00000000..a089b6fd --- /dev/null +++ b/app/models/ecloud.rb @@ -0,0 +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_users + has_many :ecloud_services +end diff --git a/app/models/ecloud_service.rb b/app/models/ecloud_service.rb new file mode 100644 index 00000000..cc227eb1 --- /dev/null +++ b/app/models/ecloud_service.rb @@ -0,0 +1,3 @@ +class EcloudService < ActiveRecord::Base + attr_accessible :begintime, :code, :endtime, :opttype +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/ecloud_users.rb b/app/models/ecloud_users.rb new file mode 100644 index 00000000..9266adb7 --- /dev/null +++ b/app/models/ecloud_users.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/gitlab_config.rb b/config/gitlab_config.rb new file mode 100755 index 00000000..0ec8f6e9 --- /dev/null +++ b/config/gitlab_config.rb @@ -0,0 +1,9 @@ +Gitlab.configure do |config| + # config.endpoint = 'http://192.168.41.130:3000/trustie/api/v3' # API endpoint URL, default: ENV['GITLAB_API_ENDPOINT'] + # config.private_token = 'cK15gUDwvt8EEkzwQ_63' # user's private token, default: ENV['GITLAB_API_PRIVATE_TOKEN'] + config.endpoint = 'http://testbdgit.trustie.net/api/v3' # API endpoint URL, default: ENV['GITLAB_API_ENDPOINT'] + config.private_token = 's89kqsMPtF8YLZSLyVmF' # user's private token, default: ENV['GITLAB_API_PRIVATE_TOKEN'] + # Optional + # config.user_agent = 'Custom User Agent' # user agent, default: 'Gitlab Ruby Gem [version]' + # config.sudo = 'user' # username for sudo mode, default: nil +end diff --git a/config/routes.rb b/config/routes.rb index 8e414caa..525290a5 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -34,6 +34,10 @@ 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 + match 'ecloud/bs_edit', to: 'ecloud#bs_edit', :via => :post + match 'ecloud/ps_new', to: 'ecloud#ps_new', :via => :post + match 'ecloud/ps_edit', to: 'ecloud#ps_edit', :via => :post resources :ec_course_evaluations do diff --git a/db/migrate/20190311082918_create_ecloudusers.rb b/db/migrate/20190311082918_create_ecloudusers.rb index 5d4698ae..c6e9af60 100644 --- a/db/migrate/20190311082918_create_ecloudusers.rb +++ b/db/migrate/20190311082918_create_ecloudusers.rb @@ -4,23 +4,23 @@ class CreateEcloudusers < ActiveRecord::Migration t.string :applyno t.string :ecordercoder t.string :string - t.int :opttype + t.integer :opttype t.boolean :trial t.string :bossorderid - t.int :custid + t.integer :custid t.string :custcod t.string :string - t.int :custtype - t.int :registersource + t.integer :custtype + t.integer :registersource t.string :custname - t.int :userid + t.integer :userid t.string :username t.string :useralias t.string :moblile t.string :email t.string :productcode - t.long :begintime - t.long :endtime + t.datetime :begintime + t.datetime :endtime t.string :productparas t.string :services diff --git a/db/migrate/20190312021600_create_ecloud_user.rb b/db/migrate/20190312021600_create_ecloud_user.rb new file mode 100644 index 00000000..6a3221e3 --- /dev/null +++ b/db/migrate/20190312021600_create_ecloud_user.rb @@ -0,0 +1,18 @@ +class CreateEcloudUser < ActiveRecord::Migration + def change + create_table :ecloud_users do |t| + t.integer :opttype + t.integer :userid + t.string :username + t.string :useralias + t.string :mobile + t.string :email + t.string :begintime + t.string :endtime + t.string :paras + t.integer :custid + + t.timestamps + end + end +end diff --git a/db/migrate/20190312030525_create_eclouds.rb b/db/migrate/20190312030525_create_eclouds.rb new file mode 100644 index 00000000..4a3b88b0 --- /dev/null +++ b/db/migrate/20190312030525_create_eclouds.rb @@ -0,0 +1,25 @@ +class CreateEclouds < 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_services.rb b/db/migrate/20190312030722_create_ecloud_services.rb new file mode 100644 index 00000000..32a58506 --- /dev/null +++ b/db/migrate/20190312030722_create_ecloud_services.rb @@ -0,0 +1,13 @@ +class CreateEcloudServices < 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 diff --git a/db/migrate/20190312060516_add_index_to_ecloud.rb b/db/migrate/20190312060516_add_index_to_ecloud.rb new file mode 100644 index 00000000..1a5db7c3 --- /dev/null +++ b/db/migrate/20190312060516_add_index_to_ecloud.rb @@ -0,0 +1,5 @@ +class AddIndexToEcloud < ActiveRecord::Migration + def change + add_index :eclouds, [:ecordercode, :custcode], :unique => true, :name => 'ecorder_cust_code' + end +end diff --git a/spec/factories/ecloud_services.rb b/spec/factories/ecloud_services.rb new file mode 100644 index 00000000..0beea4d1 --- /dev/null +++ b/spec/factories/ecloud_services.rb @@ -0,0 +1,9 @@ +FactoryGirl.define do + factory :ecloud_service do + opttype 1 +code "MyString" +begintime "MyString" +endtime "MyString" + end + +end diff --git a/spec/factories/ecloud_users.rb b/spec/factories/ecloud_users.rb new file mode 100644 index 00000000..3494494c --- /dev/null +++ b/spec/factories/ecloud_users.rb @@ -0,0 +1,14 @@ +FactoryGirl.define do + factory :ecloud_user, :class => 'EcloudUsers' do + opttype 1 +userid 1 +username "MyString" +useralias "MyString" +mobile "MyString" +email "MyString" +begintime 1 +endtime 1 +paras "MyString" + end + +end diff --git a/spec/factories/eclouds.rb b/spec/factories/eclouds.rb new file mode 100644 index 00000000..38573918 --- /dev/null +++ b/spec/factories/eclouds.rb @@ -0,0 +1,23 @@ +FactoryGirl.define do + factory :ecloud do + applyno "MyString" +string "MyString" +ecordercode "MyString" +opttype 1 +trial false +bossorderid "MyString" +custid 1 +custcode "MyString" +registersource 1 +custtype 1 +custname "MyString" +userid 1 +username "MyString" +useralias "MyString" +mobile "MyString" +productcode "MyString" +begintime "MyString" +endtime "MyString" + end + +end diff --git a/spec/models/ecloud_service_spec.rb b/spec/models/ecloud_service_spec.rb new file mode 100644 index 00000000..3e163414 --- /dev/null +++ b/spec/models/ecloud_service_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe EcloudService, :type => :model do + pending "add some examples to (or delete) #{__FILE__}" +end diff --git a/spec/models/ecloud_spec.rb b/spec/models/ecloud_spec.rb new file mode 100644 index 00000000..1e1d812f --- /dev/null +++ b/spec/models/ecloud_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe Ecloud, :type => :model do + pending "add some examples to (or delete) #{__FILE__}" +end diff --git a/spec/models/ecloud_users_spec.rb b/spec/models/ecloud_users_spec.rb new file mode 100644 index 00000000..37a7a7a4 --- /dev/null +++ b/spec/models/ecloud_users_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe EcloudUsers, :type => :model do + pending "add some examples to (or delete) #{__FILE__}" +end