def get(self, merchant_id): try: company_service, series_service = CompanyServices(self.db), WeddingCompanySeriesService(self.db) work_service = WeddingCompanyWorkService(self.db) company = company_service.get_company_by_id(merchant_id) company_gift = company_service.get_gift(company.Fuser_id,1).scalar() #到店礼 order_gift = company_service.get_gift(company.Fuser_id,2).scalar() #订单礼 works = work_service.query_work(order_by='Fcreate_time',merchant_id=company.Fuser_id) work_count = works.count() works = works.limit(6).offset(0) series = series_service.query_series(order_by='Fcreate_time',merchant_id=company.Fuser_id) series_count = series.count() recommend_series = series.limit(3).offset(0) series = series.limit(6).offset(0) #1.商户订单,2.套系订单 3.作品订单 order_url = '/order/create/1/'+str(company.Fuser_id)+'/'+str(company.Fuser_id) self.echo('view/weddingcompany/merchant_detail.html',{ 'company':company, 'order_gift':order_gift, 'company_gift':company_gift, 'works':works, 'series':series, 'series_count':series_count, 'work_count':work_count, 'recommend_series':recommend_series, 'merchant_id':company.Fuser_id, 'order_url':order_url }) except Exception,e: self.captureException(*sys.exc_info())
def get(self,company_id,*args,**kwargs): company_service = CompanyServices(self.db) user_services = UserServices(self.db) company = company_service.get_company_by_id(company_id) user = user_services.get_user_by_id(company.Fuser_id) self.echo('ops/company/company_edit.html',{'company':company,'user':user})
def post(self, *args, **kwargs): self.get_paras_dict() self.qdict['merchant_id'], self.qdict[ 'user_id'] = self.current_user.get( 'Fmerchant_id'), self.current_user.get('Fid') try: series_service = WeddingCompanySeriesService(self.db) series_service.add_series(**self.qdict) #更新公司最低价与最高价 company_service = CompanyServices(self.db) company_service.update_range_price( self.current_user.get('Fmerchant_id'), WeddingCompanySeriesService(self.db), WeddingCompanyWorkService(self.db)) #删除套系数量缓存 self.delete_package_count(self.current_user.get('Fmerchant_id')) self.delete_essence() self.write(ujson.dumps({'stat': 'ok', 'info': '提交成功'})) except Exception, e: self.write( ujson.dumps({ 'stat': 'error', 'info': '错误:' + e.message })) self.captureException(*sys.exc_info())
def post(self, work_id): try: work_service = WeddingCompanyWorkService() work_service.set_db(self.db) work_service.delete_work(work_id) #更新公司最低价与最高价 company_service = CompanyServices(self.db) company_service.update_range_price( self.current_user.get('Fmerchant_id'), WeddingCompanySeriesService(self.db), WeddingCompanyWorkService(self.db)) #删除套系数量缓存 self.delete_product_count(self.current_user.get('Fmerchant_id')) self.write(ujson.dumps({'stat': 'ok', 'info': '提交成功'})) except Exception, e: self.write( ujson.dumps({ 'stat': 'error', 'info': '错误:' + e.message })) self.captureException(*sys.exc_info())
def post(self, series_id): self.get_paras_dict() self.qdict['merchant_id'], self.qdict[ 'user_id'] = self.current_user.get( 'Fmerchant_id'), self.current_user.get('Fid') try: series_service = WeddingDressSeriesService() series_service.set_db(self.db) series_service.update_series(series_id, **self.qdict) #更新公司最低价与最高价 company_service = CompanyServices(self.db) company_service.update_range_price( self.current_user.get('Fmerchant_id'), WeddingDressSeriesService(self.db), WeddingDressWorkService(self.db)) self.write(ujson.dumps({'stat': 'ok', 'info': '提交成功'})) except Exception, e: self.write( ujson.dumps({ 'stat': 'error', 'info': '错误:' + e.message })) self.captureException(*sys.exc_info())
def get(self): self.get_paras_dict() between_price = self.qdict.get('between_price','') area = self.qdict.get('area','') order = self.qdict.get('order','Fcreate_time') page = self.qdict.get('page',1) company_service = CompanyServices(self.db) location_service = LocationServices(self.db) series_service = WeddingCompanySeriesService(self.db) try: query = company_service.get_companys_by_role('merchant_weddingcompany', **self.qdict) #婚庆公司role_code: merchant_weddingcompany companys = self.get_page_data(query,page_size=PAGE_SIZE,page=page) areas = location_service.get_location_name_list(type='area',father_id=73) top_banner = self.get_banner('merchant_banner') self.echo('view/weddingcompany/merchant_list.html',{ 'page_html':companys.render_admin_html_web(), 'companys':companys, 'company_count':companys.total, 'query_area':areas, 'query_price':_QUERY_PRICE, 'between_price':between_price, 'area':area, 'order':order, 'top_banner':top_banner }) except Exception,e: self.captureException(*sys.exc_info())
def get(self, company_id): if not company_id: return self.echo('view/login/404.html', layout='') company_db = CompanyServices(self.db) company = company_db.get_company_by_id(int(company_id)) self.echo('ops/weixin/delete.html', { 'company': company, })
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(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': '', })
def post(self, company_id,*args, **kwargs): rsg = { 'stat':'err', 'msg':'' } self.get_paras_dict() if not self.qdict.get('Fcompany_name') or not self.qdict.get('Fdetail_address') or not self.qdict.get('nick_name') \ or not self.qdict.get('user_mobi'): rsg['msg'] = '不能为空!' return self.write(ujson.dumps(rsg)) company_service = CompanyServices(self.db) company_service.update_company_by_id(company_id,**self.qdict) rsg['stat'] = 'ok' return self.write(ujson.dumps(rsg))
def get(self,company_id): rsg = { 'stat':'err', 'msg':'' } try: company_service = CompanyServices(self.db) company_service.delete_company_by_id(company_id) rsg['stat'] = 'ok' return self.write(ujson.dumps(rsg)) except Exception,e: if self.settings.get('debug'): self.write(str(e)) raise e self.echo('apps_crm/404.html')
def post(self,mct_id): rsg = {'stat':'error','info':''} try: self.get_paras_dict() is_success,info = self.get_valid_args() if not is_success: rsg['info'] = info return self.write(ujson.dumps(rsg)) company_service = CompanyServices(self.db) is_ok = company_service.create_login_account(mct_id,**self.qdict) if not is_ok: rsg['info'] = '添加不成功' return self.write(ujson.dumps(rsg)) except Exception,e: print e
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
def get(self, work_id): try: work_service, company_service = WeddingCompanyWorkService(self.db), CompanyServices(self.db) work, images = work_service.query_work(work_id=work_id).scalar(), work_service.query_work_images(work_id=work_id).all() recent_works = work_service.query_work(merchant_id=work.Fmerchant_id,order_by='Fcreate_time').limit(3).offset(0) company = company_service.get_company_by_uid(work.Fmerchant_id) #公司信息 company_gift = company_service.get_gift(work.Fmerchant_id,1).scalar() #到店礼 order_gift = company_service.get_gift(work.Fmerchant_id,2).scalar() #y优惠 #1.商户订单,2.套系订单 3.作品订单 order_url = '/order/create/3/'+str(work_id)+'/'+str(company.Fuser_id) category = _WEDDING_COMPANY_CATEGORY.get(work.Fcategory) if _WEDDING_COMPANY_CATEGORY.get(work.Fcategory) else work.Fcategory color = _WEDDING_COMPANY_COLOR.get(work.Fcolor) if _WEDDING_COMPANY_COLOR.get(work.Fcolor) else work.Fcolor style = _WEDDING_COMPANY_STYLE.get(work.Fstyle) if _WEDDING_COMPANY_STYLE.get(work.Fstyle) else work.Fstyle self.echo('view/weddingcompany/work_detail.html',{ 'work':work, 'images':images, 'recent_works':recent_works, 'company':company, 'order_gift':order_gift, 'company_gift':company_gift, 'order_url':order_url, 'category': category, 'color': color, 'style': style }) except Exception,e: self.captureException(*sys.exc_info())
def get(self, series_id): try: series_service, company_service = WeddingCompanySeriesService(), CompanyServices() series_service.set_db(self.db) company_service.set_db(self.db) series = series_service.query_series(series_id=series_id).scalar() images = series_service.query_series_images(series_id=series_id) recommend_series = series_service.query_series(order_by='Fcreate_time').limit(3).offset(0) conpany = company_service.get_company_by_uid(series.Fmerchant_id) #公司信息 company_gift = company_service.get_gift(series.Fmerchant_id,1).scalar() #到店礼 order_gift = company_service.get_gift(series.Fmerchant_id,2).scalar() #订单礼 #1.商户订单,2.套系订单 3.作品订单 order_url = '/order/create/2/'+str(series_id)+'/'+str(conpany.Fuser_id) self.echo('view/weddingCompany/series_detail.html',{ 'series':series, 'recommend_series':recommend_series, 'company':conpany, 'order_gift':order_gift, 'company_gift':company_gift, 'images':images, 'order_url':order_url }) except Exception, e: self.captureException(*sys.exc_info())
def get(self, company_id): if not company_id: return self.echo('view/login/404.html', layout='') company_db = CompanyServices(self.db) company = company_db.get_company_by_id(int(company_id)) app_url = '' if company.Fapp_url: app_url = company.Fapp_url else: app_url = setting.WX_APP_URL + '/' + str( company.Fid) #使用公司id作为app url的关键参数 company_db.update_company_by_id(company.Fid, Fapp_url=app_url) app_token = '' if company.Fapp_token: app_token = company.Fapp_token else: uuid_str = uuid.uuid3( uuid.NAMESPACE_DNS, str(company.Fid) + str(company.Fuser_id)) #使用id+user_id生产uuid作为token app_token = str(uuid_str) app_token = app_token.replace('-', '') company_db.update_company_by_id(company.Fid, Fapp_token=app_token) self.echo('ops/weixin/detail.html', { 'company': company, 'app_url': app_url, 'app_token': app_token, })
def post(self): rsp = {'stat': 'err', 'msg': ''} uid_mct = self.get_current_user().get('Fmerchant_id') self.get_paras_dict() del self.qdict['_xsrf'] company_db = CompanyServices(self.db) # status, info = self.get_valid_args() # if not status: # rsp['msg'] = info # return self.write(rsp) if 'desc' in self.qdict: self.qdict['Fdescription'] = self.qdict.get('desc') del self.qdict['Fdescription'] if not company_db.get_company_by_uid(uid_mct): company_db.create_company(uid_mct, self.qdict.get('Fcompany_name', ''), self.qdict.get('Fdetail_address', ''), self.qdict.get('Fphone', ''), self.qdict.get('Fmail', ''), **self.qdict) else: company_db.update_company_by_uid(uid_mct, **self.qdict) rsp['stat'] = 'ok' rsp['id'] = uid_mct cookies = ujson.loads(self.get_secure_cookie('loginuser')) if cookies['Fcompany_name'] != self.qdict['Fcompany_name']: cookies['Fcompany_name'] = self.qdict['Fcompany_name'] self.set_secure_cookie('loginuser', ujson.dumps(cookies), expires_days=1) return self.write(ujson.dumps(rsp))
def post(self, company_id): rspDic = {} rspDic["stat"] = "ok" #返回页面的字典,ok,fail rspDic["msg"] = "" if not company_id: rspDic["stat"] = "fail" rspDic["msg"] = u"公司不存在" return self.write(json.dumps(rspDic)) try: company_db = CompanyServices(self.db) company = company_db.get_company_by_id(int(company_id)) if company.Fmenu_codes: rspDic["stat"] = "fail" rspDic["msg"] = u"解除绑定前,请先解除菜单绑定!" return self.write(json.dumps(rspDic)) dic_app = {} dic_app['Fapp_url'] = '' dic_app['Fapp_token'] = '' dic_app['Fapp_id'] = '' dic_app['Fapp_secret'] = '' company_db = CompanyServices(self.db) company_db.update_company_by_id(int(company_id), **dic_app) except Exception, e: rspDic["stat"] = "fail" rspDic["msg"] = u"微信删除失败"
def get(self, company_id=None): try: #获取输入参数 query = self.request.query qdict = urlparse.parse_qs(query) print('AccessHandler get() qdict=' + str(qdict)) if not qdict: print('qdict is null.') return if not company_id: print('company_id is null.') return #获取token company_db = CompanyServices(self.db) company = company_db.get_company_by_id(int(company_id)) if not company: print('no user!') return #校验 isFromWeixin = self.checkSignature(company.Fapp_token, **qdict) if isFromWeixin: #匹配成功 print('weixin check ok!') if qdict.has_key('echostr'): self.write(qdict.get('echostr')[0]) else: self.write('') else: print('weixin check error!') self.write('[ERROR]not Weixin!') except Exception, e: e = sys.exc_info()[0](traceback.format_exc()) print(e) print('weixin access error!') return
def get(self): uid_mct = self.get_current_user().get('Fmerchant_id') company_db = CompanyServices(self.db) company_info = company_db.get_company_by_uid(uid_mct) province_db = LocationServices(self.db) province = province_db.get_location_name_list('province') if not province: return self.write("t_province no data") if company_info: city, area = province_db.get_city_area_list( company_info.Fprovince, company_info.Fcity) else: city, area = province_db.get_city_area_list(province.first().Fid) return self.echo('crm/merchant/edit_info_py.html', { 'company': company_info if company_info else {}, 'type_class': 'base_setting', 'province': province, 'city': city, 'area': area }, layout='crm/common/base.html')
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': '', })
def post(self, company_id): #界面参数解析 self.get_paras_dict() rspDic = {} rspDic["stat"] = "ok" #返回页面的字典,ok,fail rspDic["msg"] = "" if not company_id: rspDic["stat"] = "fail" rspDic["msg"] = u"公司不存在" return self.write(json.dumps(rspDic)) try: dic_app = {} dic_app['Fapp_url'] = self.qdict.get('app_url') dic_app['Fapp_token'] = self.qdict.get('app_token') app_id = self.qdict.get('app_id') dic_app['Fapp_id'] = app_id.strip() app_secret = self.qdict.get('app_secret') dic_app['Fapp_secret'] = app_secret.strip() #check menuManager = MenuManager() access_Token = menuManager.getAccessToken(dic_app['Fapp_id'], dic_app['Fapp_secret']) if access_Token.has_key('errcode'): rspDic["stat"] = "fail" rspDic["msg"] = u"验证失败" else: company_db = CompanyServices(self.db) company_db.update_company_by_id(int(company_id), **dic_app) except Exception, e: print e rspDic["stat"] = "fail" rspDic["msg"] = u"微信绑定失败"
def get(self,mct_id): permission_service = PermissionsServices(self.db) company_service = CompanyServices(self.db) permissions = permission_service.get_permissions() company_name = company_service.get_company_by_uid(mct_id).Fcompany_name self.echo('ops/company/accountable_create.html',{'permissions':permissions,'company_name':company_name})
def post(self, company_id=None): #获取输入参数 print('AccessHandler post()') query = self.request.query qdict = urlparse.parse_qs(query) print('AccessHandler post() qdict=' + str(qdict)) if company_id: print('company_id=' + str(company_id)) #获取token company_db = CompanyServices(self.db) company = company_db.get_company_by_id(int(company_id)) if not company: print('no company!') return #校验 isFromWeixin = self.checkSignature(company.Fapp_token, **qdict) if not isFromWeixin: #匹配不成功 print('not match!') self.write('') return else: print('no company id') self.write('') return nonce = qdict.get('nonce')[0] request_data = str(self.request.body) print('request_data=' + request_data) request_xml = etree.fromstring(request_data) #进行XML解析 msgType = request_xml.find("MsgType").text fromUser = request_xml.find("FromUserName").text toUser = request_xml.find("ToUserName").text result_msg = '' print('msgType=' + msgType) if msgType == 'event': #事件 event = request_xml.find("Event").text #获得事件内容 print('event=' + event) if event == 'subscribe': #关注事件 result_msg = WX_MESSAGE.REPLY_TEXT % ( fromUser, toUser, int(time.time()), unicode('欢迎关注%s!' % (company.Fcompany_name))) elif event == 'unsubscribe': #取消关注事件 result_msg = '' #???后台清理 elif event == 'CLICK': #菜单点击事件 eventKey = request_xml.find("EventKey").text #获得事件KEY值 print('eventKey=' + eventKey) if eventKey == Constant.EVENT_CONTACT: #联系我们 #读取联系信息 msgx_content = '' if company.Fcompany_name: msgx_content = msgx_content + u'名称:' + company.Fcompany_name + '\n' if company.Faddress: msgx_content = msgx_content + u'地址:' + company.Faddress + '\n' if company.Fcontact: msgx_content = msgx_content + u'联系人:' + company.Fcontact + '\n' if company.Fphone: msgx_content = msgx_content + u'电话:' + company.Fphone + '\n' if company.Fqq: msgx_content = msgx_content + u'QQ:' + company.Fqq + '\n' if company.Fmail: msgx_content = msgx_content + u'邮箱:' + company.Fmail result_msg = WX_MESSAGE.REPLY_TEXT % ( fromUser, toUser, int(time.time()), msgx_content) elif event == 'VIEW': #取消关注事件 eventKey = request_xml.find("EventKey").text #获得事件KEY值 print('VIEW url=' + eventKey) #result_msg = WX_MESSAGE.REPLY_TEXT %(fromUser, toUser, int(time.time()), u'未绑定用户,请在菜单中进行绑定.') result_msg = nonce else: content = request_xml.find("Content").text #获得用户所输入的内容 result_msg = WX_MESSAGE.REPLY_TEXT % ( fromUser, toUser, int( time.time()), unicode('欢迎关注%s!' % (company.Fcompany_name))) self.write(result_msg)
#encoding:utf-8 __author__ = 'binpo' from common.base import BaseApiHandler from services.series.series_services import SeriesServices from services.company.company_services import CompanyServices company_service = CompanyServices() series_service = SeriesServices() class SeriesQueryhandler(BaseApiHandler): def get(self, *args, **kwargs): pass class SeriesDetailhandler(BaseApiHandler): def get(self, series_id, **kwargs): series_service.set_db(self.db) company_service.set_db(self.db) series = series_service.get_series_by_id(series_id) images = series_service.get_series_iamges_by_id(series_id) recommend_series = series_service.query_series( order_by='Fcreate_time').limit(3).offset(0) conpany = company_service.get_company_by_uid( series.Fmerchant_id) #公司信息 company_gift = company_service.get_gift(series.Fmerchant_id, 1).scalar() #到店礼 order_gift = company_service.get_gift(series.Fmerchant_id,
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': '', })