diff --git a/app/controllers/ecloud_controller.rb b/app/controllers/ecloud_controller.rb index 63c9ad27..216df8df 100644 --- a/app/controllers/ecloud_controller.rb +++ b/app/controllers/ecloud_controller.rb @@ -53,41 +53,56 @@ class EcloudController < ApplicationController def bs_new ActiveRecord::Base.transaction do begin + ecloud_id = 0 if params['opttype'] == 0 # 开通企业/个人业务 ecloud = Ecloud.create!(eloud_params) - # 业务列表 - services = params['services'] - if services.present? - services.each do |service| - es = EcloudService.create(opttype: service['opttype'], code: service['code'], begintime: service['begintime'], - endtime: service['endtime'], ecloud_id: ecloud.try(:id)) - if service['serviceparas'].present? - service['serviceparas'].each do |servicepara| - EcloudServieceServicepara.create!(ecloud_service_id: es.id, key: servicepara['key'], value: servicepara['value']) - end + ecloud_id = ecloud.try(:id) + elsif params['opttype'] == 2 # 试用转商用 # 变更企业/个人业务 + ecloud = Ecloud.where(custid: params['custid'], custcode: params['custcode']).first + ecloud.update_attributes!(eloud_params) + ecloud.ecloud_productparas.destroy + ecloud.ecloud_services.destroy + ecloud_id = ecloud.try(:id) + elsif params['opttype'] == 1 # 业务变更 + ecloud = Ecloud.where(bossorderid: params['bossorderid']).first + ecloud.update_attributes!(eloud_params) + ecloud.ecloud_productparas.destroy + ecloud.ecloud_services.destroy + + ecloud_id = ecloud.try(:id) + + elsif params['opttype'] == 4 # 再次重复开通 + REDO + ecloud = Ecloud.where(bossorderid: params['bossorderid']).first + end + + # 业务列表 + services = params['services'] + if services.present? + services.each do |service| + es = EcloudService.create(opttype: service['opttype'], code: service['code'], begintime: service['begintime'], + endtime: service['endtime'], ecloud_id: ecloud_id) + if service['serviceparas'].present? + service['serviceparas'].each do |servicepara| + EcloudServieceServicepara.create!(ecloud_service_id: es.id, key: servicepara['key'], value: servicepara['value']) end end end + end - # 应用开通参数 - productparas = params['productparas'] - if productparas.present? - productparas.each do |productpara| - EcloudProductpara.create!(key: productpara['key'], value: productpara['value'], ecloud_id: ecloud.try(:id)) - end + # 应用开通参数 + productparas = params['productparas'] + if productparas.present? + productparas.each do |productpara| + EcloudProductpara.create!(key: productpara['key'], value: productpara['value'], ecloud_id: ecloud_id) end + end - # 为管理员单独创建一条账号,企业账号 + # 非试用情况下,为管理员单独创建一条账号,企业账号 + unless params['trial'] EcloudUser.create!(ecloud_id: ecloud.try(:id), opttype: params['opttype'], userid: params['userid'], username: params['username'], useralias: params['useralias'], mobile: params['mobile'], email: params['email']) - - elsif params['opttype'] == 1 # 变更企业/个人业务 - ecloud = Ecloud.where(custid: params['custid'], custcode: params['custcode']).first - ecloud.update_attributes!(eloud_params) - ecloud.ecloud_productparas.destroy - ecloud.ecloud_service.destroy - end render :json => {result: true, errmsg: ""} @@ -103,7 +118,7 @@ class EcloudController < ApplicationController def bs_update ActiveRecord::Base.transaction do begin - ecloud = Ecloud.where(custid: params['custid']).first + ecloud = Ecloud.where(custid: params['custid'], custcode: params['custcode']).first ecloud.update_attributes!(applyno: params['applyno'], ecordercode: params['ecordercode'], opttype: params['opttype'], custid: params['custid'], custcode: params['custcode'], productcode: params['productcode'], operatime: params['operatime'], effecttime: params['effecttime']) diff --git a/app/models/ecloud.rb b/app/models/ecloud.rb index b9f81d5b..293948f3 100644 --- a/app/models/ecloud.rb +++ b/app/models/ecloud.rb @@ -4,8 +4,8 @@ class Ecloud < ActiveRecord::Base :mobile, :opttype, :productcode, :registersource, :string, :trial, :useralias, :userid, :username, :email, :effecttime, :operatime - has_many :ecloud_service # 业务列表 - has_many :ecloud_productparas # 开通参数列表 + has_many :ecloud_services, :dependent => :destroy # 业务列表 + has_many :ecloud_productparas, :dependent => :destroy # 开通参数列表 has_one :ecloud_user end