示例#1
0
class CompanyHandlerList(AdminBaseHandler):

    def get(self,code = None,*args, **kwargs):
        self.company_service = CompanyServices(self.db)
        self.get_companys(code)
        page_html = ''
        if self.page_data:
            page_html = self.page_data.render_page_html()
        context={'page_data':self.page_data,'page_html':page_html,'code':code}
        if code == 'recommend':
            self.echo('ops/home/companys.html',context)
        else:
            self.echo('ops/company/company_list.html',context)

    def get_companys(self,code = None):
        self.get_paras_dict()
        if code == '1':
            query = self.db.query(Company).filter(Company.Fdeleted == 1)
        else:
            query = self.company_service.get_companys(**self.qdict)
        self.page_data = self.get_page_data(query)

    def get_user_by_id(self,user_id):
        query = self.db.query(Users).filter(Users.Fdeleted==0,Users.Fid==user_id).scalar()
        return query
示例#2
0
    def get(self, name=None):
        company_db = CompanyServices(self.db)
        query = company_db.get_companys()

        if name:
            query = query.filter(Company.Fcompany_name.like("%" + name + "%"))

        page_data = self.get_page_data(query)
        self.echo('ops/weixin/list.html', {
            'name': name,
            'companies': page_data.result,
            'page_html': '',
        })
示例#3
0
    def get(self, company_id):
        if not company_id:
            return self.echo('view/login/404.html', layout='')

        company_db = CompanyServices(self.db)
        query = company_db.get_companys()
        query = query.filter(Company.Fid == int(company_id))
        company = query.scalar()

        #获取menu code对应的菜单名称
        wxService = WxService(self.db)
        company_menu_name = ''
        if company.Fmenu_codes:
            for code in company.Fmenu_codes.split(','):
                if len(code) > 0:
                    company_menu_name = company_menu_name + ',' + wxService.query_name_by_code(
                        code)
            company_menu_name = company_menu_name.strip(',')
        else:
            company.Fmenu_codes = ''

        #查询所有菜单
        wxService = WxService(self.db)
        menus = wxService.query_menus()
        for menu in menus:
            if menu.type == 'view':
                menu.url = setting.WX_APP_URL + menu.url
                print 'menu.url=' + menu.url
                if menu.is_common == 0:  #url中存在参数
                    menu.url = menu.url % (company.Fuser_id)

        self.echo(
            'ops/weixin/menu.html', {
                'error': '',
                'company': company,
                'company_menu_name': company_menu_name,
                'menus': menus,
                'page_html': '',
            })
示例#4
0
    def get(self, company_id, menu_code):
        if not company_id:
            return self.echo('view/login/404.html', layout='')

        error = u''
        company_db = CompanyServices(self.db)
        company = company_db.get_company_by_id(int(company_id))
        wxService = WxService(self.db)

        #获取当前menu code对应的菜单名称
        company_menu_name = ''
        if company.Fmenu_codes:
            for code in company.Fmenu_codes.split(','):
                if len(code) > 0:
                    company_menu_name = company_menu_name + ',' + wxService.query_name_by_code(
                        code)
            company_menu_name = company_menu_name.strip(',')

        #查询当前所有菜单
        menus = wxService.query_menus()

        try:
            wxService = WxService(self.db)
            error = u''

            company_db = CompanyServices(self.db)
            query = company_db.get_companys()
            query = query.filter(Company.Fid == int(company_id))
            company = query.scalar()

            menu_codes = ''
            if company.Fmenu_codes.find(menu_code) > -1:  #已绑定
                menu_codes = company.Fmenu_codes.replace(menu_code, '')
            else:
                menu_codes = company.Fmenu_codes

            #整理code顺序
            menu_codes_order = ''
            menus = wxService.query_menus()
            for menu in menus:
                if menu_codes.find(menu.code) > -1:
                    menu_codes_order = menu_codes_order + ',' + menu.code
            menu_codes = menu_codes_order.strip(',')

            #更新公众号菜单
            menuManager = MenuManager()
            dic_accessToken = menuManager.getAccessToken(
                company.Fapp_id, company.Fapp_secret)
            if len(menu_codes) == 0:  #
                menuManager.delMenu(dic_accessToken.get("access_token"))
            else:
                menus = wxService.query_menus()
                all_menu_str = wx_util.getMenuStr(menus, menu_codes,
                                                  company.Fuser_id)
                print("all_menu_str=" + all_menu_str)

                result = menuManager.refreshMenu(
                    dic_accessToken.get("access_token"), all_menu_str)
                if result <> 'ok':
                    error = u'绑定失败'
                    raise error

            #更新menu_codes
            if menu_codes <> company.Fmenu_codes:
                company_db.update_company_by_id(int(company_id),
                                                Fmenu_codes=menu_codes)

            #获取menu code对应的菜单名称
            company_menu_name = ''
            if menu_codes:
                for code in menu_codes.split(','):
                    if len(code) > 0:
                        company_menu_name = company_menu_name + ',' + wxService.query_name_by_code(
                            code)
                company_menu_name = company_menu_name.strip(',')
            else:
                company.Fmenu_codes = ''

            #查询所有菜单
            wxService = WxService(self.db)
            menus = wxService.query_menus()
            for menu in menus:
                if menu.type == 'view':
                    menu.url = setting.WX_APP_URL + menu.url
                    if menu.is_common == 0:  #url中存在参数
                        menu.url = menu.url % (company.Fuser_id)

            self.echo(
                'ops/weixin/menu.html', {
                    'error': error,
                    'company': company,
                    'company_menu_name': company_menu_name,
                    'menus': menus,
                    'page_html': '',
                })
        except Exception, e:
            e = sys.exc_info()[0](traceback.format_exc())
            print(e)

            self.echo(
                'ops/weixin/menu.html', {
                    'error': error,
                    'company': company,
                    'company_menu_name': company_menu_name,
                    'menus': menus,
                    'page_html': '',
                })