Explorar el Código

增加复制商品功能

abiao hace 5 años
padre
commit
1654269542

+ 1 - 1
app/models/product_picture.rb

@@ -9,7 +9,7 @@ class ProductPicture < ActiveRecord::Base
 
     IMG_STORE_PATH = "product_pictures" 
 
-    PIC_TYPE_ENUM = [["视频封面图",2],["详情图",1],["轮播图",0]]
+    PIC_TYPE_ENUM = [["详情图",1],["轮播图",0]]
 
     rails_admin do
         navigation_label '商品管理'

+ 6 - 1
config/initializers/rails_admin.rb

@@ -13,6 +13,7 @@ require Rails.root.join('lib', 'rails_admin', 'correct_takecash')
 require Rails.root.join('lib', 'rails_admin', 'update_intro_user')
 require Rails.root.join('lib', 'rails_admin', 'order_dispatch')
 require Rails.root.join('lib', 'rails_admin', 'create_xcx_qrcode')
+require Rails.root.join('lib', 'product', 'copy_product')
 
 
 RailsAdmin::Config::Actions.register(RailsAdmin::Config::Actions::GenerateMenu)
@@ -29,6 +30,8 @@ RailsAdmin::Config::Actions.register(RailsAdmin::Config::Actions::CorrectTakecas
 RailsAdmin::Config::Actions.register(RailsAdmin::Config::Actions::UpdateIntroUser)
 RailsAdmin::Config::Actions.register(RailsAdmin::Config::Actions::OrderDispatch)
 RailsAdmin::Config::Actions.register(RailsAdmin::Config::Actions::CreateXcxQrcode)
+RailsAdmin::Config::Actions.register(RailsAdmin::Config::Actions::CopyProduct)
+
 
 
 RailsAdmin.config do |config|
@@ -126,7 +129,9 @@ RailsAdmin.config do |config|
     takecash_at_once do
       only ["TakeCashOrder"]
     end
-
+    copy_product do
+      only ["Product"]
+    end
     add_wxku_commodity do
       only ["WxkuCommodity"]
     end

+ 2 - 3
config/locales/rails_admin.zh-CN.yml

@@ -87,7 +87,8 @@ zh-CN:
         menu: "查微信库商品"
       check_wxku_commodity:
         menu: "查询微信库商品导入更新状态"
-
+      copy_product:
+        menu: "复制"
       refuse_takecash:
         title: "%{model_label_plural}拒绝提现"
         menu: "拒绝提现"
@@ -116,8 +117,6 @@ zh-CN:
         menu: "推送"
       push_xcx_tmpl_redirect:
         menu: "推送"
-      copy_project:
-        menu: "复制"
       correct_takecash:
         menu: "提现冲正"
       deposit_unlock:

+ 82 - 0
lib/product/copy_product.rb

@@ -0,0 +1,82 @@
+# encoding:utf-8
+# 商品复制
+module RailsAdmin
+  module Config
+    module Actions     
+      class CopyProduct < RailsAdmin::Config::Actions::Base
+        register_instance_option :visible? do
+          if not bindings[:object].blank?
+            authorized?
+          else
+            authorized?
+          end
+        end
+        # We want the action on members, not the Users collection
+        register_instance_option :member do
+          true
+        end
+
+        register_instance_option :link_icon do
+          'icon-refresh'
+        end
+        # You may or may not want pjax for your action
+        register_instance_option :pjax? do
+          false
+        end
+
+        register_instance_option :controller do
+          Proc.new do
+            if !@object.blank?
+              @copy_product = Product.new
+              @copy_product.name = @object.name
+              @copy_product.ptype = @object.ptype
+              @copy_product.merchant_id = @object.merchant_id
+              @copy_product.category_id = @object.category_id
+              @copy_product.detail = @object.detail
+              @copy_product.price = @object.price
+              @copy_product.robo_balance_price = @object.robo_balance_price
+              @copy_product.buy_price = @object.buy_price
+              @copy_product.user_sale_price = @object.user_sale_price
+              @copy_product.count = @object.count
+              @copy_product.recommend = @object.recommend
+              @copy_product.status = @object.status
+              @copy_product.virtual_sold_count = @object.virtual_sold_count
+              @copy_product.purchase_limit_count = @object.purchase_limit_count
+              @copy_product.share_content = @object.share_content
+              @copy_product.share_img = @object.share_img
+              @copy_product.deliver_stop_at = @object.deliver_stop_at
+              @copy_product.deliver_start_at = @object.deliver_start_at
+              @copy_product.seckill_start = @object.seckill_start
+              @copy_product.seckill_end = @object.seckill_end
+              @copy_product.seckill_price = @object.seckill_price
+              @copy_product.specification = @object.specification
+              @copy_product.no_delivery_area = @object.no_delivery_area
+              @copy_product.video_state = @object.video_state
+              @copy_product.video_url = @object.video_url
+              @copy_product.relate_product_id = @object.relate_product_id
+              begin
+                @copy_product.save
+              rescue Exception => e
+                p "************ copy product save fail . #{e.to_s}"
+              end
+              
+              # 复制商品图片
+              pictures = ProductPicture.find_by_sql("select * from product_pictures where pit_type=0 and product_id = #{@object.id} limit 1")
+              # 创建商品图片
+              pictures.each do |u|
+                ProductPicture.create({
+                    :product_id => @copy_product.id,
+                    :img => u.img,
+                    :pic_type => u.pic_type,
+                    :sort => 0,
+                  })
+              end              
+              redirect_to :back, notice: "已复制!"
+              # redirect_to "https://d5ctest.oss-cn-shanghai.aliyuncs.com/temp/20180910.xlsx"
+            end
+          end
+        end
+      end
+    end
+  end
+end