[关闭]
@joshsulin 2015-09-07T06:02:57.000000Z 字数 1947 阅读 552

U站图片服务器端逻辑

公司zhe800


tao800_fire 项目共提供了 3 个接口为U站服务.

  1. 描述: 提供U站需要上传的deal图片
    url: http://zapi.zhe800.com/inner/taobao_image_urls?page=1
    type: Get
  1. #u站商品图片链接上传接口
  2. def taobao_image_urls
  3. deals = Redis.current.lrange('redis_taobao_deal_id',100*(params[:page].to_i - 1),100* params[:page].to_i - 1)
  4. if deals.present?
  5. items = Deal.select('id,image').where(id: deals)
  6. else
  7. items = Deal.select('deals.id,deals.image').joins(:deal_info)
  8. .not_expired.where("deal_infos.taobao_image_url = ''")
  9. .order('deals.updated_at DESC').page(params[:page]).per(100)
  10. end
  11. result = {}
  12. items.each do |item|
  13. result["deal-#{item.id}"] = item.image_url(:normal) if item.image_url(:normal).present?
  14. end
  15. render :json => {:result => result}
  16. end

把 taobao deal id 放在 redis里面,是由 http://redmine.tuan800-inc.com/issues/90922 这个工单审核的。

  1. 描述: 提供U站需要上传的 品牌团 logo 图片
    url: http://zapi.zhe800.com/inner/taobao_brand_image_urls?page=1
    type: Get
  1. #u站品牌图片链接上传接口
  2. def taobao_brand_image_urls
  3. brands = Brand.where("(`uz_logo_small_image_url` = '' AND logo_image <> '') OR
  4. (`uz_logo_normal_image_url` = '' AND logo_image <> '') OR
  5. (`uz_banner_image_url` = '' AND banner_image <> '')
  6. ").order('updated_at DESC')
  7. items = brands.page(params[:page]).per(100)
  8. result = {}
  9. items.each do |item|
  10. result["brand-#{item.id}-logo_small_image"] = item.logo_image_url(:small) if item.logo_image_url(:small).present?
  11. result["brand-#{item.id}-logo_normal_image"] = item.logo_image_url(:normal) if item.logo_image_url(:normal).present?
  12. result["brand-#{item.id}-banner_image"] = item.banner_image_url if item.banner_image_url.present?
  13. end
  14. render :json => {:result => result}
  15. end

这段代码逻辑也不用说了,一看就明白了

  1. 描述:接受U站上传后的图片,更新tao800_fire数据库
    url: http://zapi.zhe800.com/inner/taobao_image_urls
    type: Post
  1. def update_taobao_image_urls
  2. JSON.parse(params[:result]).each do |key,image_url|
  3. key = key.split("-")
  4. if key[0].to_s == 'deal'
  5. info = DealInfo.find_by_deal_id(key[1].to_i)
  6. info.update_attributes(:taobao_image_url => image_url)
  7. else
  8. attribute = "uz_#{key[2]}_url=".to_sym
  9. brand = Brand.find_by_id(key[1].to_i)
  10. brand.send(attribute, image_url)
  11. brand.save(:validate => false)
  12. end
  13. end
  14. render :text => ""
  15. end

这段代码一看就能明白的

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注