904118851 3 месяцев назад
Родитель
Сommit
d1ba073595

+ 53 - 8
common/dbproxy/tg_main.lua

@@ -64,7 +64,7 @@ end
 
 function M.search(msg_body)
 
-    local isok ,key =  tools.checkData({"id","ads_operation_status","statistics_platform_id","converted_time_duration","cbo_status","project_type","oce_product_id","oce_product_platform_id","delivery_mode","material_platform_id","wx_miniapp_create_status","genre","template_bid","cpa_bid","page_size","page_number","main_name","running_status","custom_budget","pay_type","tg_platform_id","butler_id","tg_app_index","is_open_create_link","is_delete"},msg_body)
+    local isok ,key =  tools.checkData({"material_rule_id","parent_main_id","id","ads_operation_status","statistics_platform_id","converted_time_duration","cbo_status","project_type","oce_product_id","oce_product_platform_id","delivery_mode","material_platform_id","wx_miniapp_create_status","genre","template_bid","cpa_bid","page_size","page_number","main_name","running_status","custom_budget","pay_type","tg_platform_id","butler_id","tg_app_index","is_open_create_link","is_delete"},msg_body)
    
     if not isok then
         return false,string.format("缺少字段: %s.", key)
@@ -76,6 +76,15 @@ function M.search(msg_body)
 
     local offset = (page_number - 1) * page_size
 
+    local material_rule_id_param = ""
+    if msg_body.material_rule_id~="" then
+        material_rule_id_param =  " AND material_rule_id = "..msg_body.material_rule_id
+    end
+
+    local parent_main_id_param = ""
+    if msg_body.parent_main_id~="" then
+        parent_main_id_param =  " AND parent_main_id = "..msg_body.parent_main_id
+    end
 
     local id_param = ""
     if msg_body.id~="" then
@@ -204,7 +213,7 @@ function M.search(msg_body)
         genre_param =  string.format(" AND genre = %d ",msg_body.genre) 
     end
 
-    local param = id_param..ads_operation_status_param..statistics_platform_id_param..converted_time_duration_param..infra_status_param..cbo_script_status_param..cbo_status_param..project_type_param..oce_product_platform_id_param..oce_product_id_param..delivery_mode_param..main_name_param..tg_platform_param..running_status_param..pay_type_param..butler_id_param..tg_app_index_param..is_open_create_link_param..is_delete_param..custom_budget_param..cpa_bid_param..template_bid_param..genre_param..wx_miniapp_create_status_param..material_platform_id_param;
+    local param = material_rule_id_param..parent_main_id_param..id_param..ads_operation_status_param..statistics_platform_id_param..converted_time_duration_param..infra_status_param..cbo_script_status_param..cbo_status_param..project_type_param..oce_product_platform_id_param..oce_product_id_param..delivery_mode_param..main_name_param..tg_platform_param..running_status_param..pay_type_param..butler_id_param..tg_app_index_param..is_open_create_link_param..is_delete_param..custom_budget_param..cpa_bid_param..template_bid_param..genre_param..wx_miniapp_create_status_param..material_platform_id_param;
 
     local sql = "SELECT * FROM tg_main where 1=1 "..param..string.format(" LIMIT %d OFFSET %d ",page_size, offset)
     local res = mysqldbx.query(sql)
@@ -228,13 +237,16 @@ end
 -- `daily_new_limit` int DEFAULT '0' COMMENT '今天新上数量上限',
 
 function M.addMain(msg_body)
-    local isok ,key =  tools.checkData({"tg_day","valid_timer_like_num" ,"ads_operation_status","statistics_platform_id","hide_if_converted","converted_time_duration","cbo_script_time","cbo_script_status","cbo_status","project_type","tf_status","tf_start_time","min_book_word","max_book_word","stat_cost","hy_accountId","oce_product_id","oce_product_platform_id","material_platform_id","delivery_mode","advertiser_id","wx_miniapp_create_status","genre","ad_act","template_bid","zh_id","roi_goal","ql_bid","infra_status","pay_type","qm_id","ldy_template_site_id","yw_id","parent_platform_id","platform_shared_id","distributor_id","is_delete","ad_convert_type","aweme_id","tg_app_index","butler_id","mini_program_platform_id","landing_page","valid_timer_time","valid_timer_number","channelId","no_bid_budget","max_ad_quantity","tg_link_config","tg_platform_id","app_id","main_name","running_status","ad_quantity","cpa_bid","bid_type","bid_ratio","custom_budget","daily_new_limit","valid_time","group_id"},msg_body)
+    local isok ,key =  tools.checkData({"material_rule_id","material_rule_number","parent_main_id","tg_day","valid_timer_like_num" ,"ads_operation_status","statistics_platform_id","hide_if_converted","converted_time_duration","cbo_script_time","cbo_script_status","cbo_status","project_type","tf_status","tf_start_time","min_book_word","max_book_word","stat_cost","hy_accountId","oce_product_id","oce_product_platform_id","material_platform_id","delivery_mode","advertiser_id","wx_miniapp_create_status","genre","ad_act","template_bid","zh_id","roi_goal","ql_bid","infra_status","pay_type","qm_id","ldy_template_site_id","yw_id","parent_platform_id","platform_shared_id","distributor_id","is_delete","ad_convert_type","aweme_id","tg_app_index","butler_id","mini_program_platform_id","landing_page","valid_timer_time","valid_timer_number","channelId","no_bid_budget","max_ad_quantity","tg_link_config","tg_platform_id","app_id","main_name","running_status","ad_quantity","cpa_bid","bid_type","bid_ratio","custom_budget","daily_new_limit","valid_time","group_id"},msg_body)
     if not isok then
         return false,string.format("缺少字段: %s.", key)
     end
     local current_time = os.date("%Y-%m-%d %H:%M:%S")
     msg_body.create_time = current_time
-    local sql = string.format("INSERT INTO `tg_main` (tg_day,valid_timer_like_num,ads_operation_status,statistics_platform_id,hide_if_converted,converted_time_duration,cbo_script_time,cbo_script_status,cbo_status,project_type,tf_status,tf_start_time,min_book_word,max_book_word,stat_cost,hy_accountId,oce_product_id,oce_product_platform_id,material_platform_id,delivery_mode,advertiser_id,wx_miniapp_create_status,genre,ad_act,template_bid,zh_id,roi_goal,ql_bid,infra_status,pay_type,qm_id,ldy_template_site_id,yw_id,parent_platform_id,platform_shared_id,distributor_id,is_delete,ad_convert_type,aweme_id,tg_app_index,butler_id,mini_program_platform_id,landing_page,valid_timer_time,valid_timer_number,channelId,no_bid_budget,max_ad_quantity,tg_link_config,tg_platform_id,app_id,main_name,running_status,ad_quantity,cpa_bid,bid_type,bid_ratio,custom_budget,daily_new_limit,valid_time,group_id)  VALUES ( %d,%d,'%s',%d,'%s','%s','%s',%d,%d,%d,%d,'%s',%d,%d,%d,'%s','%s','%s',%d,'%s','%s',%d,%d,%d,%d,'%s',%d,%d,%d,%d,'%s','%s','%s',%d,%d,'%s',%d,'%s','%s', %d, %d, %d,'%s', %d, '%s', '%s',%d, %d, '%s', %d, '%s', '%s', %d, %d, %d,%d, '%s', %d, %d, '%s', '%s')",
+    local sql = string.format("INSERT INTO `tg_main` (material_rule_id,material_rule_number,parent_main_id,tg_day,valid_timer_like_num,ads_operation_status,statistics_platform_id,hide_if_converted,converted_time_duration,cbo_script_time,cbo_script_status,cbo_status,project_type,tf_status,tf_start_time,min_book_word,max_book_word,stat_cost,hy_accountId,oce_product_id,oce_product_platform_id,material_platform_id,delivery_mode,advertiser_id,wx_miniapp_create_status,genre,ad_act,template_bid,zh_id,roi_goal,ql_bid,infra_status,pay_type,qm_id,ldy_template_site_id,yw_id,parent_platform_id,platform_shared_id,distributor_id,is_delete,ad_convert_type,aweme_id,tg_app_index,butler_id,mini_program_platform_id,landing_page,valid_timer_time,valid_timer_number,channelId,no_bid_budget,max_ad_quantity,tg_link_config,tg_platform_id,app_id,main_name,running_status,ad_quantity,cpa_bid,bid_type,bid_ratio,custom_budget,daily_new_limit,valid_time,group_id)  VALUES (%d,%d, %d,%d,%d,'%s',%d,'%s','%s','%s',%d,%d,%d,%d,'%s',%d,%d,%d,'%s','%s','%s',%d,'%s','%s',%d,%d,%d,%d,'%s',%d,%d,%d,%d,'%s','%s','%s',%d,%d,'%s',%d,'%s','%s', %d, %d, %d,'%s', %d, '%s', '%s',%d, %d, '%s', %d, '%s', '%s', %d, %d, %d,%d, '%s', %d, %d, '%s', '%s')",
+    msg_body.material_rule_id,
+    msg_body.material_rule_number,
+    msg_body.parent_main_id,
     msg_body.tg_day,
     msg_body.valid_timer_like_num,
     msg_body.ads_operation_status,
@@ -297,7 +309,10 @@ function M.addMain(msg_body)
     msg_body.valid_time,
     msg_body.group_id)
     skynet.error(sql)
-    tools.dump(mysqldbx.query(sql))
+    local res = mysqldbx.query(sql)
+    if msg_body.parent_main_id ~= 0 then
+        M.updateParentMain(msg_body.parent_main_id)
+    end
     skynet.send("backmgr","lua","on_recv",nil,"ws_push_msg",cjson.encode({cmd="updateMainConfig"}))
     -- pushAddMainMsg(msg_body)
     return true
@@ -415,14 +430,14 @@ function pushAddMainMsg(msg_body)
    
 end
 function M.modifyMain(msg_body)
-    local isok ,key =  tools.checkData({"tg_day","valid_timer_like_num","ads_operation_status","statistics_platform_id","hide_if_converted","converted_time_duration","cbo_script_time","cbo_script_status","cbo_status","project_type","tf_status","tf_start_time","min_book_word","max_book_word","stat_cost","hy_accountId","oce_product_id","oce_product_platform_id","material_platform_id","delivery_mode","advertiser_id","wx_miniapp_create_status","genre","ad_act","template_bid","zh_id","roi_goal","ql_bid","infra_status","pay_type","pay_type","qm_id","ldy_template_site_id","yw_id","parent_platform_id","platform_shared_id","distributor_id","is_delete","ad_convert_type","aweme_id","tg_app_index","butler_id","mini_program_platform_id","landing_page","valid_timer_time","valid_timer_number","channelId","no_bid_budget","max_ad_quantity","tg_link_config","id","tg_platform_id","app_id","main_name","running_status","ad_quantity","cpa_bid","bid_type","bid_ratio","custom_budget","daily_new_limit","valid_time","group_id"},msg_body)
+    local isok ,key =  tools.checkData({"material_rule_id","material_rule_number","tg_day","valid_timer_like_num","ads_operation_status","statistics_platform_id","hide_if_converted","converted_time_duration","cbo_script_time","cbo_script_status","cbo_status","project_type","tf_status","tf_start_time","min_book_word","max_book_word","stat_cost","hy_accountId","oce_product_id","oce_product_platform_id","material_platform_id","delivery_mode","advertiser_id","wx_miniapp_create_status","genre","ad_act","template_bid","zh_id","roi_goal","ql_bid","infra_status","pay_type","pay_type","qm_id","ldy_template_site_id","yw_id","parent_platform_id","platform_shared_id","distributor_id","is_delete","ad_convert_type","aweme_id","tg_app_index","butler_id","mini_program_platform_id","landing_page","valid_timer_time","valid_timer_number","channelId","no_bid_budget","max_ad_quantity","tg_link_config","id","tg_platform_id","app_id","main_name","running_status","ad_quantity","cpa_bid","bid_type","bid_ratio","custom_budget","daily_new_limit","valid_time","group_id"},msg_body)
     if not isok then
         return false,string.format("缺少字段: %s.", key)
     end
     local current_time = os.date("%Y-%m-%d %H:%M:%S")
     msg_body.update_time = current_time
-    local sql = string.format("UPDATE  `tg_main` SET tg_day = %d ,  valid_timer_like_num = %d , ads_operation_status = '%s' , statistics_platform_id = %d , hide_if_converted = '%s' ,converted_time_duration = '%s' ,cbo_script_time = '%s' , cbo_script_status = %d , cbo_status = %d ,  project_type = %d ,tf_status = %d , tf_start_time = '%s' , min_book_word = %d ,  max_book_word = %d , stat_cost = %d , hy_accountId = '%s' , oce_product_id = '%s' , oce_product_platform_id = '%s' , material_platform_id = %d , delivery_mode = '%s' , advertiser_id = '%s' ,wx_miniapp_create_status = %d , genre = %d , ad_act = %d ,template_bid = %d , zh_id = '%s', roi_goal = %d , ql_bid = %d, infra_status = %d , pay_type = %d ,qm_id = '%s' , ldy_template_site_id = '%s' , yw_id = '%s' , parent_platform_id = %d , platform_shared_id = %d ,distributor_id = '%s' , is_delete = %d , ad_convert_type = '%s', aweme_id = '%s' ,tg_app_index = %d , butler_id = %d , mini_program_platform_id = %d , landing_page = '%s' , valid_timer_time = %d , valid_timer_number = %d ,channelId = '%s' , no_bid_budget = %d , max_ad_quantity = %d ,tg_platform_id = %d , app_id = '%s' ,main_name = '%s' , update_time = '%s' , running_status = %d ,ad_quantity = %d ,cpa_bid = %d ,bid_type = %d ,bid_ratio = '%s' ,custom_budget = %d ,daily_new_limit = %d ,valid_time = %d ,tg_link_config = '%s' ,group_id = '%s' WHERE id = %d ",
-    msg_body.tg_day,msg_body.valid_timer_like_num,msg_body.ads_operation_status,msg_body.statistics_platform_id,msg_body.hide_if_converted,msg_body.converted_time_duration,msg_body.cbo_script_time,msg_body.cbo_script_status,msg_body.cbo_status,msg_body.project_type,msg_body.tf_status,msg_body.tf_start_time,msg_body.min_book_word,msg_body.max_book_word,msg_body.stat_cost,msg_body.hy_accountId,msg_body.oce_product_id,msg_body.oce_product_platform_id,msg_body.material_platform_id,msg_body.delivery_mode,msg_body.advertiser_id,msg_body.wx_miniapp_create_status,msg_body.genre,msg_body.ad_act,msg_body.template_bid,msg_body.zh_id,msg_body.roi_goal,msg_body.ql_bid,msg_body.infra_status,msg_body.pay_type,msg_body.qm_id,msg_body.ldy_template_site_id,msg_body.yw_id,msg_body.parent_platform_id,msg_body.platform_shared_id,msg_body.distributor_id,msg_body.is_delete,msg_body.ad_convert_type,msg_body.aweme_id,msg_body.tg_app_index,msg_body.butler_id,msg_body.mini_program_platform_id,msg_body.landing_page,tonumber(msg_body.valid_timer_time),tonumber(msg_body.valid_timer_number),msg_body.channelId,msg_body.no_bid_budget,msg_body.max_ad_quantity,msg_body.tg_platform_id,msg_body.app_id,msg_body.main_name,msg_body.update_time,msg_body.running_status,msg_body.ad_quantity,msg_body.cpa_bid,msg_body.bid_type,msg_body.bid_ratio,msg_body.custom_budget,
+    local sql = string.format("UPDATE  `tg_main` SET material_rule_id = %d , material_rule_number = %d , tg_day = %d ,  valid_timer_like_num = %d , ads_operation_status = '%s' , statistics_platform_id = %d , hide_if_converted = '%s' ,converted_time_duration = '%s' ,cbo_script_time = '%s' , cbo_script_status = %d , cbo_status = %d ,  project_type = %d ,tf_status = %d , tf_start_time = '%s' , min_book_word = %d ,  max_book_word = %d , stat_cost = %d , hy_accountId = '%s' , oce_product_id = '%s' , oce_product_platform_id = '%s' , material_platform_id = %d , delivery_mode = '%s' , advertiser_id = '%s' ,wx_miniapp_create_status = %d , genre = %d , ad_act = %d ,template_bid = %d , zh_id = '%s', roi_goal = %d , ql_bid = %d, infra_status = %d , pay_type = %d ,qm_id = '%s' , ldy_template_site_id = '%s' , yw_id = '%s' , parent_platform_id = %d , platform_shared_id = %d ,distributor_id = '%s' , is_delete = %d , ad_convert_type = '%s', aweme_id = '%s' ,tg_app_index = %d , butler_id = %d , mini_program_platform_id = %d , landing_page = '%s' , valid_timer_time = %d , valid_timer_number = %d ,channelId = '%s' , no_bid_budget = %d , max_ad_quantity = %d ,tg_platform_id = %d , app_id = '%s' ,main_name = '%s' , update_time = '%s' , running_status = %d ,ad_quantity = %d ,cpa_bid = %d ,bid_type = %d ,bid_ratio = '%s' ,custom_budget = %d ,daily_new_limit = %d ,valid_time = %d ,tg_link_config = '%s' ,group_id = '%s' WHERE id = %d ",
+    msg_body.material_rule_id,msg_body.material_rule_number,msg_body.tg_day,msg_body.valid_timer_like_num,msg_body.ads_operation_status,msg_body.statistics_platform_id,msg_body.hide_if_converted,msg_body.converted_time_duration,msg_body.cbo_script_time,msg_body.cbo_script_status,msg_body.cbo_status,msg_body.project_type,msg_body.tf_status,msg_body.tf_start_time,msg_body.min_book_word,msg_body.max_book_word,msg_body.stat_cost,msg_body.hy_accountId,msg_body.oce_product_id,msg_body.oce_product_platform_id,msg_body.material_platform_id,msg_body.delivery_mode,msg_body.advertiser_id,msg_body.wx_miniapp_create_status,msg_body.genre,msg_body.ad_act,msg_body.template_bid,msg_body.zh_id,msg_body.roi_goal,msg_body.ql_bid,msg_body.infra_status,msg_body.pay_type,msg_body.qm_id,msg_body.ldy_template_site_id,msg_body.yw_id,msg_body.parent_platform_id,msg_body.platform_shared_id,msg_body.distributor_id,msg_body.is_delete,msg_body.ad_convert_type,msg_body.aweme_id,msg_body.tg_app_index,msg_body.butler_id,msg_body.mini_program_platform_id,msg_body.landing_page,tonumber(msg_body.valid_timer_time),tonumber(msg_body.valid_timer_number),msg_body.channelId,msg_body.no_bid_budget,msg_body.max_ad_quantity,msg_body.tg_platform_id,msg_body.app_id,msg_body.main_name,msg_body.update_time,msg_body.running_status,msg_body.ad_quantity,msg_body.cpa_bid,msg_body.bid_type,msg_body.bid_ratio,msg_body.custom_budget,
     tonumber(msg_body.daily_new_limit),tonumber(msg_body.valid_time),cjson.encode(msg_body.tg_link_config),msg_body.group_id,msg_body.id)
     tools.dump(mysqldbx.query(sql))
     skynet.send("backmgr","lua","on_recv",nil,"ws_push_msg",cjson.encode({cmd="updateMainConfig"}))
@@ -501,6 +516,36 @@ function M.search_info_by_tg_app_index(msg_body)
     return true,res
 end
 
+
+function M.updateParentMain(parent_main_id)
+    local sql = string.format("select * from `tg_main` where id = '%s'  LIMIT 1 ",parent_main_id)
+    local res = mysqldbx.query(sql)
+    local main_info = nil
+    if #res>0 then
+        main_info = res[1]
+    end
+
+    if main_info~=nil then
+        sql = string.format("select * from `tg_main` where parent_main_id = %d LIMIT 500 ",parent_main_id)
+        res = mysqldbx.query(sql)
+        local child_list = nil
+        local id_list = {}
+        if #res>0 then
+            child_list = res
+            for i = 1, #child_list, 1 do
+                table.insert(id_list,i,child_list[i].id)
+            end
+        end
+
+        if child_list ~= nil then
+            local idString = table.concat(id_list, ",")
+            sql = string.format("UPDATE `tg_main` SET child_main_list = '%s' WHERE id = %d ",idString,parent_main_id)
+            mysqldbx.query(sql)
+        end
+    end
+
+end
+
 function mysqldtaskbx.start()
     local function on_connect(db)
         db:query("set charset utf8mb4");

+ 32 - 1
service/backmgr/video_applet_product.lua

@@ -139,6 +139,29 @@ function M.set_task_weight(msg_body)
     return true,{}
 end
 
+function  M.delete(msg_body)
+    local isok ,key =  tools.checkData({"butler_id","id_list"},msg_body)
+    if not isok then
+        return false,string.format("缺少字段: %s.", key)
+    end
+
+    local table_name = "video_applet_product_"..msg_body.butler_id
+
+    if msg_body.isOrigin == 1  then
+        table_name = "video_applet_product"
+    else
+        if not M.check_table_exists(table_name) then
+            return false,string.format("不存在  %s 这个数据.", table_name)
+        end
+    end
+
+    local idString = table.concat(msg_body.id_list, ",")
+    local sql = string.format("DELETE FROM %s  WHERE id IN (%s) ",table_name,idString)
+    skynet.error("sql:",sql)
+    mysqldtaskbx.Singleton().query(sql)
+    return true,{}
+end
+
 --搜索小程序书
 --tg_platform_id 平台id
 --product_id 书id
@@ -147,6 +170,7 @@ end
 --dy_small_applet_app_id 小程序ID
 function M.search_app_book_data(msg_body)
     local isok ,key =  tools.checkData({
+    "error_info",
     "status",
     "product_name",
     "product_id",
@@ -172,6 +196,13 @@ function M.search_app_book_data(msg_body)
     local page_size = msg_body.page_size
     local page_number = msg_body.page_number
     local offset = (page_number - 1) * page_size
+
+    local error_info_param = ""
+    if msg_body.error_info~="" then
+        local searchTerm = string.gsub(msg_body.error_info, "%%", "\\%%")
+        error_info_param = string.format("  AND error_info LIKE CONCAT('%%', '%s', '%%')  ",searchTerm)
+    end
+
     local product_param = ""
     if msg_body.product_id~="" then
         product_param =string.format(" AND product_id = '%s' ",msg_body.product_id)
@@ -199,7 +230,7 @@ function M.search_app_book_data(msg_body)
         status_param = " AND status = "..msg_body.status.." "
     end
 
-    local param = product_param..product_name_param..tg_platform_param..main_param..app_param..status_param;
+    local param = error_info_param..product_param..product_name_param..tg_platform_param..main_param..app_param..status_param;
 
 
     local sql = "SELECT * FROM "..table_name.." WHERE 1=1 "..param.." ORDER BY id DESC "..string.format(" LIMIT %d OFFSET %d ",page_size, offset)

+ 1 - 2
service/backmgr/video_product.lua

@@ -167,7 +167,6 @@ function M.search_book_data_on_main(msg_body)
 
     local date_param = ""
     if msg_body.start_publish_time~="" and msg_body.end_publish_time~="" then
-        
         date_param = " AND DATE(publish_time) >= DATE(FROM_UNIXTIME(" .. (msg_body.start_publish_time / 1000) .. ")) AND DATE(publish_time) <= DATE(FROM_UNIXTIME(" .. (msg_body.end_publish_time / 1000) .. ")) "
     end
 
@@ -215,7 +214,7 @@ function M.search_book_data_on_main(msg_body)
 
     local param = date_param..stat_cost_param..word_param..product_param..product_name_param..tg_platform_param..is_auto_param..is_store_param..genre_param..alias_name_param;
 
-    local sql = "SELECT * FROM video_product where 1=1 "..param.."ORDER BY is_top DESC "..string.format(" LIMIT %d OFFSET %d ",page_size, offset)
+    local sql =  string.format("SELECT v.* FROM video_product v JOIN ( SELECT id FROM video_product WHERE  1=1 %s ORDER BY is_top DESC , id ASC LIMIT %d OFFSET %d ) AS tmp ON v.id = tmp.id",param,page_size,offset)
     
     skynet.error("sql:",sql)
     local res = mysqldtaskbx.Singleton().query(sql)