B
    GDb
                 @   sL   d dl mZ d dlmZmZmZmZmZmZm	Z	 d dl
Z
G dd deZdS )    )ladonize)SUCCESS_CODEMESSAGE_CODESYSTEM_EXCEPTIONDATA_EXCEPTIONinterface_responserequest_validonline_employee_newNc               @   s.   e Zd ZdZeeeeeeeddd ZdS )BioTimeAppDepartmentu   
    【Department】
    )Zrtypec          
      sP  ddl m} ddlm} yt|}|jjj}|dd}	|	s|j	j
|dddd	d
}
g }	i xd|
D ]\}|d	 }|r|krg |< | |d |d |g d qh|	|d |d dd qhW  fdd tt fdd|	 |d|	 ttt|	ddS  tk
rJ } z ddl}|  ttdd|tS d}~X Y nX dS )u
  
        get department tree
        @param source:          data source(1: IOS， 2：Android)
        @param device_token:    Token for push message
        @param language:
        @param token:
        @rtype:
            success
                {"code":1, "error":"", "describe":"", "message":"", "data":[{"code":object ID,"name":"dept_name",
                "parent_id":parent dept ID,"subs":"sub depts"}]}
            fail
                {"code":-10001, "error":"", "describe":"", "message":"", "data":""}
        r   )cache)
DepartmentZapp_dept_treeN)companyidZ	dept_nameZparent_deptZ	dept_code)codename	parent_idsubs )r   r   r   c                s6    | d g }|r2x|D ]} | qW || d< d S )Nr   r   )get)objZp_subssub)get_subsr    >G:\easytimepro\master/mysite/mobile\services\app_department.pyr   2   s
    
z6BioTimeAppDepartment.pull_department.<locals>.get_subsc                s    | S )Nr   )x)r   r   r   <lambda>:       z6BioTimeAppDepartment.pull_department.<locals>.<lambda>Z
successful)Zdjango.core.cacher   Z(mysite.personnel.models.model_departmentr   r	   Z
departmentr   r   r   ZobjectsfiltervaluesZorder_byappendlistmapsetr   r   jsondumps	Exception	traceback	print_excr   r   )selfsourceZdevice_tokenZlanguagetokenr   r   ZempZ
company_idZ	dept_treeZdeptsZdeptparenter&   r   )r   r   r   pull_department   s6    

z$BioTimeAppDepartment.pull_departmentN)	__name__
__module____qualname____doc__r   r   intstrr-   r   r   r   r   r
      s   r
   )Zmysite.ladon.ladonizerr   Zmysite.mobile.utilsr   r   r   r   r   r   r	   r#   objectr
   r   r   r   r   <module>   s   $