+
    j]                     4    ^ RI HtHt ^ RIHt ^ RIHt R tR# )    )requestjsonify)get_db)admin_requiredc                 @   V P                  R R.R7      R 4       pV P                  RR.R7      R 4       pV P                  RR.R7      \        R 4       4       pV P                  R R.R7      \        R	 4       4       pV P                  RR
.R7      \        R 4       4       pR# )z	/api/newsGET)methodsc            
      @   \        \        P                  P                  R ^4      4      p \        \        P                  P                  R^
4      4      pV ^,
          V,          p\	        4       pVP                  4       p VP                  R4       VP                  4       ^ ,          pVP                  RW34       VP                  4       pV Uu. uF  p\        V4      NK  	  pp\        RVRVR V RV/4      VP                  4        # u upi   TP                  4        i ; i)pagelimitz4SELECT COUNT(*) FROM news WHERE status = "published"z
                SELECT * FROM news WHERE status = "published" 
                ORDER BY sort_order ASC, created_at DESC 
                LIMIT ? OFFSET ?
            itemstotal)intr   argsgetr   cursorexecutefetchonefetchalldictr   close)	r   r   offsetconnr   r   rowsrowr   s	            'E:\Work\BangBang\backend\routes\news.pyget_news&register_news_routes.<locals>.get_news   s    7<<##FA./GLL$$Wb12(e#x	NNQROO%a(ENN  	"
 ??$D*./$3T#Y$E/GUGUFD'SXYZJJL	 0 JJLs   >AD D!D D Dz/api/news/<int:news_id>c                 >   \        4       pVP                  4       p VP                  R V 34       VP                  4       pV'       d%   \	        \        V4      4      VP                  4        # \	        RR/4      R3VP                  4        #   TP                  4        i ; i)z8SELECT * FROM news WHERE id = ? AND status = "published"error   资讯不存在  )r   r   r   r   r   r   r   )news_idr   r   r   s   &   r   get_news_item+register_news_routes.<locals>.get_news_item   sz    x		NNUX_Wab//#CtCy) JJL ):;<cAJJLDJJLs   >B
 +B
 
BPUTc                    \         P                  pVP                  R 4      '       g   \        RR/4      R3# \	        4       pVP                  4       p VP                  RVP                  R 4      VP                  RR4      VP                  RR4      VP                  RR4      VP                  R	R
4      VP                  R^ 4      V 34       VP                  4        VP                  ^ 8X  d    \        RR/4      R3VP                  4        # \        RR/4      VP                  4        #   \         d   pTP                  4        ThRp?ii ; i  TP                  4        i ; i)titler       标题不能为空  aJ  
                UPDATE news SET 
                    title = ?, 
                    summary = ?,
                    content = ?, 
                    image_url = ?, 
                    status = ?, 
                    sort_order = ?,
                    updated_at = CURRENT_TIMESTAMP
                WHERE id = ?
            summary content	image_urlstatusdraft
sort_orderr!   r"   successTN)r   jsonr   r   r   r   r   commitrowcountr   	Exceptionrollback)r#   datar   r   es   &    r   update_news)register_news_routes.<locals>.update_news.   s1    ||xx  G%9:;S@@x	NN 
 !B'B'b)7+q)( KKM!#):;<cA JJL It,-
 JJL	  	MMOG	 JJLs+   B'D' 
D' 'E	2EE		E EPOSTc                  |   \         P                  p V P                  R 4      '       g   \        RR/4      R3# \	        4       pVP                  4       p VP                  RV P                  R 4      V P                  RR4      V P                  RR4      V P                  RR4      V P                  R	R
4      V P                  R^ 4      34       VP                  pVP                  4        \        RVRR/4      VP                  4        #   \         d   pTP                  4        ThRp?ii ; i  TP                  4        i ; i)r(   r    r)   r*   z
                INSERT INTO news (title, summary, content, image_url, status, sort_order)
                VALUES (?, ?, ?, ?, ?, ?)
            r+   r,   r-   r.   r/   r0   r1   idr2   TN)r   r3   r   r   r   r   r   	lastrowidr4   r   r6   r7   )r8   r   r   r#   r9   s        r   create_news)register_news_routes.<locals>.create_newsY   s    ||xx  G%9:;S@@x	NN  !B'B'b)7+q)
 &&GKKMD'9d;<
 JJL	  	MMOG	 JJLs%   B!D D&D!!D&&D) )D;DELETEc                    \        4       pVP                  4       p VP                  R V 34       VP                  4        VP                  ^ 8X  d    \        RR/4      R3VP                  4        # \        RRRR/4      VP                  4        #   \         d   pTP                  4        ThRp?ii ; i  TP                  4        i ; i)	zDELETE FROM news WHERE id = ?r    r!   r"   r2   Tmessageu   删除成功N)	r   r   r   r4   r5   r   r   r6   r7   )r#   r   r   r9   s   &   r   delete_news)register_news_routes.<locals>.delete_newsz   s     x	NN:WJGKKM!#):;<cA JJL ItYGH
 JJL	  	MMOG	 JJLs*   AB /B B0B++B00B3 3CN)router   )appr   r$   r:   r@   rE   s   &     r   register_news_routesrI      s    YY{UGY, -0 	YY(5'Y: ; 	YY(5'Y:'  ;'R 	YY{VHY-  .> 	YY(8*Y=  >    N)flaskr   r   utils.databaser   
utils.authr   rI    rJ   r   <module>rO      s    " ! %FrJ   