Exemplo n.º 1
0
    def get_wx_config_accesstoken(self, url):
        import time
        import hashlib

        noncestr = self.__create_nonce_str()
        data = {
            "url": url,
            "jsapi_ticket": mp.jsticket(),
            'timestamp': int(time.time()),
            "noncestr": noncestr
        }
        logger.info("get wx config %s", data)
        try:
            # response_str = "&".join([str(k)+'='+str(v) for k, v in data.items()])
            # response_str = signature_str.format(**data)
            response_str = '&'.join(
                ['%s=%s' % (key.lower(), data[key]) for key in sorted(data)])
            logger.debug("get response: %s", response_str)
            signature = hashlib.sha1(response_str.encode('utf-8')).hexdigest()
            logger.debug('get signature: %s', signature)
            data['sign'] = signature
            data['appid'] = APP_ID
        except:
            logger.exception("Get wx config error")
            return SYSTEM_ERROR
        # response = import_status("SUCCESS_GET_CONFIG", "OK")
        # response['data'] = data
        # return response
        return data
Exemplo n.º 2
0
 def login(self):
     """超级用户登录"""
     json_data = request.json
     suname = json_data.get('suname').encode('utf8')
     supassword = json_data.get('supassword')
     logger.debug("super user login data is %s", json_data)
     # if not suname or not supassword:
     #     return PARAMS_MISS
     parameter_required('suname', 'supassword')
     try:
         suuser = self.ssuperuser.verify_super(suname, supassword)
         # if not suuser:
         #     return SYSTEM_ERROR
         if suuser.SUlevel == 0:
             level = 'customerservice'
         if suuser.SUlevel == 1:
             level = 'ordinaryadmin'
         if suuser.SUlevel == 2:
             level = 'superadmin'
         token = usid_to_token(suuser.SUid, 'SuperUser')
         token_data = {
             'token': token,
             'level': level,
             'head': suuser.SUheader
         }
         data = import_status('generic_token_success', 'OK')
         data['data'] = token_data
         return data
     except:
         logger.exception('super user login in error')
         raise SYSTEM_ERROR(u'用户名或密码错误')
Exemplo n.º 3
0
 def del_address(self):
     if is_tourist():
         return TOKEN_ERROR(u"未登录, 或token错误")
     data = request.json
     logger.info("this is del address data %s", data)
     parameter_required("UAid")
     try:
         logger.debug("del address")
         del_address = self.suesraddress.delete_address(data.get("UAid"))
         if not del_address:
             return SYSTEM_ERROR
         exist_default = self.suesraddress.get_default_address_by_usid(
             request.user.id)
         if not exist_default:
             no_default_address = self.suesraddress.get_first_no_default_address(
                 request.user.id)
             if no_default_address:
                 self.suesraddress.change_default_address_status(
                     no_default_address.UAid, {'UAdefault': True})
         response = import_status("delete_useraddress_success", "OK")
         response['data'] = {"uaid": data.get("UAid")}
         return response
     except:
         logger.exception("del address error")
         return SYSTEM_ERROR
Exemplo n.º 4
0
 def add_useraddress(self):
     if not hasattr(request, 'user'):
         return TOKEN_ERROR(u"未登录, 或token错误")
     parameter_required("areaid", "UAname", "UAphone", "UAtext")
     data = request.json
     logger.info("this is useraddress data %s", data)
     try:
         uaid = str(uuid.uuid1())
         logger.debug("get default address by usid")
         exist_default = self.suesraddress.get_default_address_by_usid(
             request.user.id)
         uadefault = True if not exist_default else data.get("UAdefault")
         if str(uadefault) not in ['True', 'False']:
             raise PARAMS_ERROR(u'uadefault参数不合法')
         if uadefault is True and exist_default:
             self.suesraddress.change_default_address_status(
                 exist_default.UAid, {'UAdefault': False})
         self.suesraddress.add_model(
             "UserAddress", **{
                 "UAid": uaid,
                 "USid": request.user.id,
                 "UAname": data.get("UAname"),
                 "UAphone": data.get("UAphone"),
                 "UAtext": data.get("UAtext"),
                 "areaid": data.get("areaid"),
                 "UAdefault": uadefault
             })
         response = import_status("add_address_success", "OK")
         response['data'] = {"UAid": uaid}
         return response
     except:
         logger.exception("add user address error")
         return SYSTEM_ERROR
Exemplo n.º 5
0
    def get_all(self):
        """活动所有热文"""
        if is_tourist():
            raise TOKEN_ERROR(u'未登录')
        args = request.args.to_dict()
        logger.debug("get hotmessage args is %s", args)
        lasting = args.get('lasting', 'true')
        htfilter = 1 if is_partner() else 0
        if is_admin():
            htfilter = [0, 1]
        try:
            hot_list = self.s_hotmessage.get_hotmsg_list_by_filter(htfilter)
            if str(lasting) == 'true':
                hot_list = filter(
                    lambda hot: hot.HMstarttime < get_db_time_str() < hot.
                    HMendtime, hot_list)
            for hotmsg in hot_list:
                hotmsg.HMstarttime = get_web_time_str(hotmsg.HMstarttime)
                hotmsg.HMendtime = get_web_time_str(hotmsg.HMendtime)

            data = import_status("get_hotmessage_list_success", "OK")
            data['data'] = hot_list
            return data
        except:
            logger.exception("get hotmessage error")
            raise SYSTEM_ERROR(u'服务器繁忙')
Exemplo n.º 6
0
    def add_complain(self):
        if not hasattr(request, 'user'):
            return TOKEN_ERROR  # 未登录, 或token错误
        parameter_required("OIid", "COtype")
        data = request.json
        try:
            complain = self.scomplain.get_complain_by_oiid(data.get("OIid"))
            logger.debug("get complain by oiid %s", complain)
            if complain:
                return import_status("complain_repeat_error", "WD_ERROR",
                                     "error_complain_exit")
            coid = str(uuid.uuid1())
            cotype_list = [str(i) for i in data.get("COtype", [])]

            self.scomplain.add_model(
                "Complain", **{
                    "COid": coid,
                    "COcontent": data.get("COcontent"),
                    "COtype": ",".join(cotype_list),
                    "OIid": data.get("OIid"),
                    "USid": request.user.id,
                    "COtreatstatus": 1,
                })
            response = import_status("complain_success", "OK")
            response['data'] = {"COid": coid}
            return response
        except:
            logger.exception("add complain error")
            return SYSTEM_ERROR
Exemplo n.º 7
0
 def update_address(self):
     if not hasattr(request, 'user'):
         return TOKEN_ERROR(u"未登录, 或token错误")
     args = request.args.to_dict()
     logger.debug("this is address args %s", args)
     data = request.json
     logger.debug("this is address data %s", data)
     uaid = args.get('uaid')
     uadefault = data.get("UAdefault")
     try:
         exist_default = self.suesraddress.get_default_address_by_usid(
             request.user.id)
         parameter_required("uaid", "areaid", "UAname", "UAphone", "UAtext",
                            "UAdefault")
         if uadefault == True and exist_default:
             self.suesraddress.change_default_address_status(
                 exist_default.UAid, {'UAdefault': False})
         update_address = self.suesraddress.update_address(
             uaid, {
                 "areaid": data.get("areaid"),
                 "UAname": data.get("UAname"),
                 "UAphone": data.get("UAphone"),
                 "UAtext": data.get("UAtext"),
                 "UAdefault": uadefault
             })
         logger.info("update address succress ")
         if not update_address:
             raise SYSTEM_ERROR(u'数据更新错误')
         response = import_status("update_useraddress_success", "OK")
         response['data'] = {"uaid": args["uaid"]}
         return response
     except:
         logger.exception("update address error")
         return SYSTEM_ERROR
Exemplo n.º 8
0
    def get_complain_by_usid(self):
        """后台管理查看投诉记录"""
        if not hasattr(request, 'user'):
            raise TOKEN_ERROR()  # 未登录, 或token错误
        args = request.args.to_dict()
        logger.debug("get complain args is %s", args)
        page_size = args.get('page_size')
        page_size = 10 if not page_size else int(page_size)
        page_num = args.get('page_num')
        page_num = 1 if not page_num else int(page_num)
        try:
            complain_list = self.scomplain.admin_get_all_complain(
                page_size, page_num)
            complain_list_length = self.scomplain.admin_get_complain_count()
            from WeiDian.config.enums import complain_type
            data = import_status("get_complain_success", "OK")
            for complain in complain_list:
                colist = str(complain.COtype).split(",")
                logger.debug('get colist %s', colist)
                complaintype = ",".join([complain_type.get(i) for i in colist])
                logger.debug('convert complain type %s', complaintype)
                complain.COtype = complaintype
                user_info = self.suser.get_user_by_user_id(complain.USid)
                complain.fill(user_info.USname, 'usname')
                complain.COcreatetime = get_web_time_str(complain.COcreatetime)

            data['data'] = complain_list
            data['count'] = complain_list_length
            logger.debug("get complain by usid %s", complain_list)
            return data
        except:
            logger.exception("get complain by usid error")
            raise SYSTEM_ERROR(u'获取数据错误')
Exemplo n.º 9
0
 def add_bankcard(self):
     if not hasattr(request, 'user'):
         return TOKEN_ERROR(u"未登录, 或token错误")
     data = request.json
     logger.info("this add bankcard info %s", data)
     parameter_required('BCusername', 'BCnumber', 'BCbankname', 'BCaddress')
     banknumber = str(data.get('BCnumber')).strip()
     self._verify_cardnum(banknumber, error='raise')
     usid = request.user.id
     try:
         bankcard = self.sbankcard.update_bankcard_by_usid(
             usid, {'BCisdelete': True})
         logger.debug("bankcard count is %s", bankcard)
         bcid = str(uuid.uuid1())
         self.sbankcard.add_model(
             "BankCard", **{
                 "BCid": bcid,
                 "USid": usid,
                 "BCusername": data.get("BCusername"),
                 "BCnumber": banknumber,
                 "BCbankname": data.get("BCbankname"),
                 "BCaddress": data.get("BCaddress")
             })
         response = import_status("add_bank_card_success", "OK")
         response['data'] = {"BCid": bcid}
         return response
     except:
         logger.exception("add bankcard error")
         return SYSTEM_ERROR
Exemplo n.º 10
0
    def share_activity(self):
        if is_tourist():
            raise TOKEN_ERROR(u'未登录')
        data = request.json
        logger.debug("share qrcode data is %s", data)
        # data_url = data.get("dataurl")
        data_url = self.get_share_url(data.get("dataurl"))
        try:
            logger.info("get user info")
            user = self.suser.get_user_by_user_id(request.user.id)
            if not user:
                raise SYSTEM_ERROR(u'找不到该用户')
            save_path = LinuxRoot + LinuxImgs + "/qrcode/" + user.openid + '.png' if platform.system(
            ) == "Linux" else WindowsRoot + "qrcode/" + user.openid + '.png'
            make_qrcode(user.USheader, data_url, save_path)
            response = import_status("make_qrcode_success", "OK")
            response[
                "qrcodeurl"] = QRCODEHOSTNAME + '/' + LinuxImgs + '/qrcode/' + user.openid + '.png'
            response[
                "components"] = QRCODEHOSTNAME + '/' + LinuxImgs + '/components.png'
            logger.debug('response url is %s', response["qrcodeurl"])

            url = data_url.split('#')[-1]
            from WeiDian.common.get_url_params import GetUrlParams
            parse_dict = GetUrlParams.url_params_to_dict(url)
            if 'baid' in parse_dict or 'prid' in parse_dict:
                # 分享时更改转发数
                paramstype = bool(not 'baid' in parse_dict)
                filter_parameter = {
                    'AClinkvalue':
                    parse_dict['prid'] if paramstype else parse_dict['baid'],
                    'ACSkipType':
                    2 if paramstype else 1,
                    'ACisdelete':
                    False
                }
                act_list = self.sactivity.get_acid_by_filterid(
                    filter_parameter)
                for act in act_list:
                    if act.ACforwardFakenum != 0:
                        self.sactivity.update_forward_fakenum(act.ACid)
                    else:
                        self.sactivity.add_model(
                            'ActivityFoward', **{
                                'AFid': str(uuid.uuid1()),
                                'USid': request.user.id,
                                'ACid': act.ACid
                            })

                if is_partner():

                    self.do_shoppingtask_or_forwardtask(1)
            return response
        except:
            logger.exception("make qrcode error")
            return SYSTEM_ERROR(u'服务器繁忙')
Exemplo n.º 11
0
 def get_province(self):
     try:
         province_list = self.suesraddress.get_province()
         logger.debug("get province")
         # map(lambda x: x.hide('_id'), province_list)
         res = import_status("get_province_list_success", "OK")
         res["data"] = province_list
         return res
     except:
         logger.exception("get province error")
         return SYSTEM_ERROR
Exemplo n.º 12
0
 def get_one(self):
     """通过acid获取活动及活动下的评论
     """
     if is_tourist():
         return AUTHORITY_ERROR(u"未登录或token错误")
     args = request.args.to_dict()
     logger.info("get one act args is %s", args)
     parameter_required('acid')
     acid = args.get('acid')  # 活动id
     try:
         activity = self.sactivity.get_activity_by_acid(acid)
         logger.debug("get one act access")
         if not activity:
             raise SYSTEM_ERROR(u'数据错误,无此内容')
         self.sactivity.update_view_num(activity.ACid)
         self.fill_detail(activity)
         self.fill_like_num(activity)
         self.fill_type(activity)
         if activity.ACSkipType == 0:
             self.fill_comment_two(activity)
             activity.fill('none_skip', 'skip_type')
             activity.fill('无跳转类型', 'zh_skip_type')
         elif activity.ACSkipType == 1:
             baid = activity.AClinkvalue
             activity.fill('bigactivity', 'skip_type')
             activity.fill('专题', 'zh_skip_type')
             bigactivity = self.sbigactivity.get_one_big_act(baid)
             if not bigactivity:
                 # raise NOT_FOUND()
                 pass
             else:
                 bigactivity_type = bigactivity.BAtype
                 big_activity_content = {'type': bigactivity_type}
                 big_activity_content.setdefault('baid', bigactivity.BAid)
                 # 图片类型专题
                 if bigactivity_type == 0:
                     big_activity_content.setdefault(
                         'baimage', bigactivity.BAlongimg)  # 返回字段不修改
                     big_activity_content.setdefault(
                         'baid', bigactivity.BAid)
                 activity.fill(big_activity_content, 'bigactivity')
         elif activity.ACSkipType == 2:
             self.fill_soldnum(activity)
             self.fill_product(activity)
             activity.fill('product', 'skip_type')
             activity.fill('商品', 'zh_skip_type')
         activity.ACstarttime = get_web_time_str(activity.ACstarttime)
         activity.ACendtime = get_web_time_str(activity.ACendtime)
         data = import_status("get_activity_info_success", "OK")
         data["data"] = activity
         return data
     except:
         logger.exception("get one act error")
         return SYSTEM_ERROR(u"服务器繁忙")
Exemplo n.º 13
0
 def get_wx_response(self, url, urltype):
     try:
         req = urllib2.Request(url)
         response = urllib2.urlopen(req)
         strResult = response.read()
         response.close()
         logger.info("%s is %s", urltype, strResult)
         return json.loads(strResult)
     except:
         logger.exception("%s error", urltype)
         raise NETWORK_ERROR
Exemplo n.º 14
0
 def get_all_task_level(self):
     if not is_admin():
         raise AUTHORITY_ERROR(u"未登录")
     try:
         task_level_list = self.stask.get_task_level_all()
         map(self.fill_reward, task_level_list)
         response = import_status('get_task_success', 'OK')
         response['data'] = task_level_list
     except:
         logger.exception('get all task level error')
         raise SYSTEM_ERROR(u"服务器繁忙")
     return response
Exemplo n.º 15
0
    def add_or_update_task_level(self):
        if not is_admin():
            raise AUTHORITY_ERROR(u"权限不足")
        parameter_required(*self.add_task_level)
        data = request.json
        logger.debug('get request data : %s', data)
        reward_list = data.get("reward")
        try:
            tasklevel = self.stask.get_tasklevel_by_level(
                int(data.get("TAlevel")))

            if not tasklevel:
                tlid = str(uuid.uuid1())
                self.stask.add_model(
                    "TaskLevel", **{
                        "TLid":
                        tlid,
                        "TAlevel":
                        data.get("TAlevel"),
                        "TArole":
                        data.get("TArole"),
                        "TAcomplateNotifications":
                        data.get("TAcomplateNotifications"),
                        "TLisdelete":
                        0
                    })

                for reward in reward_list:
                    self.add_task_raward(tlid, reward)

            else:
                update_result = self.stask.update_task_level(
                    tasklevel.TLid, {
                        "TAlevel":
                        data.get("TAlevel", 0),
                        "TArole":
                        data.get("TArole"),
                        "TAcomplateNotifications":
                        data.get("TAcomplateNotifications")
                    })
                if not update_result:
                    return import_status("update_data_error", "WEIDIAN_ERROR",
                                         "error_update_data")
                self.sraward.delte_task_raward_by_tlid(tasklevel.TLid)
                for reward in reward_list:
                    self.add_task_raward(tasklevel.TLid, reward)
            return import_status('add_task_success', 'OK')
        except:
            logger.exception('add or update task level error')
            return SYSTEM_ERROR(u"服务器繁忙")
Exemplo n.º 16
0
 def get_useraddress(self):
     if not hasattr(request, 'user'):
         return TOKEN_ERROR(u"未登录, 或token错误")
     try:
         adderss_list = self.suesraddress.get_address_list_by_usid(
             request.user.id)
         logger.debug("get address list")
         self.fill_areainfo_by_areaid(adderss_list)
         data = import_status("get_useraddress_success", "OK")
         data['data'] = adderss_list
         return data
     except:
         logger.exception("get useraddress by usid error ")
         return SYSTEM_ERROR
Exemplo n.º 17
0
 def get_exist_tags(self):
     if not is_admin():
         raise AUTHORITY_ERROR(u'非管理员权限')
     args = request.args.to_dict()
     logger.debug("get tags args is %s", args)
     try:
         tags_list = self.stags.get_exist_tags()
         logger.info("try to get tags")
         response = import_status("messages_get_item_ok", "OK")
         response['data'] = {"tags_list": tags_list}
         return response
     except Exception as e:
         logger.exception("get exist tags error")
         raise SYSTEM_ERROR(u"数据错误")
Exemplo n.º 18
0
 def get_area_by_citynum(self):
     args = request.args.to_dict()
     logger.info("get area args is %s", args)
     parameter_required('cityid')
     city_id = args['cityid']
     try:
         logger.debug("get arealist by cityid")
         area_list = self.suesraddress.get_arealist_by_cityid(city_id)
         # map(lambda x: x.hide('_id'), area_list)
         res = import_status("get_area_list_success", "OK")
         res["data"] = area_list
         return res
     except:
         logger.exception("get area list error")
         return SYSTEM_ERROR
Exemplo n.º 19
0
 def batch_delete_prlike(self):
     if is_tourist():
         return TOKEN_ERROR(u'未登录')
     data = request.json
     plid_list = data.get("plid").split(
         ',') if data and 'plid' in data else None
     logger.info("batch del prlike data is %s", data)
     print plid_list
     try:
         self.sproductlike.batch_delete_prlike(plid_list)
         response = import_status('delete_activity_success', 'OK')
         response['data'] = {"plidlist": plid_list}
         return response
     except:
         logger.exception("batch del prlike error")
         return SYSTEM_ERROR
Exemplo n.º 20
0
 def inner(self, *args, **kwargs):
     try:
         result = fn(self, *args, **kwargs)
         if isinstance(result,
                       (tuple, list)) or isinstance(result, BaseModel):
             self.session.expunge_all()
         self.session.commit()
         return result
     except Exception as e:
         print("DBERROR" + e.message)
         logger.exception("DBERROR")
         self.session.rollback()
         # raise e
         raise dberror()
     finally:
         self.session.close()
Exemplo n.º 21
0
 def get_city_by_provincenum(self):
     args = request.args.to_dict()
     logger.info("get city list args is %s", args)
     parameter_required("provinceid")
     province_id = args["provinceid"]
     try:
         logger.debug("get citylist by province_id")
         city_list = self.suesraddress.get_citylist_by_provinceid(
             province_id)
         # map(lambda x: x.hide('_id'), city_list)
         res = import_status("get_city_list_success", "OK")
         res["data"] = city_list
         return res
     except:
         logger.exception("get city list error")
         return SYSTEM_ERROR
Exemplo n.º 22
0
    def get_like_list(self):
        """获取用户的收藏列表"""
        if is_tourist():
            return TOKEN_ERROR(u'未登录')
        args = request.args.to_dict()
        logger.debug("get like list args is %s", args)
        parameter_required("page_size", "page_num")
        page_num = args.get("page_num")
        page_size = args.get("page_size")
        page_num = 1 if not page_num else int(page_num)
        page_size = 5 if not page_size else int(page_size)
        try:
            productlike_list = self.sproductlike.get_productlike_list_by_usid(
                request.user.id, page_num, page_size)
            if not productlike_list:
                raise NOT_FOUND(u'用户无收藏信息')
            logger.info("get product like list success")
            map(self.fill_productinfo, productlike_list)
            # 获取转发数
            from WeiDian.service.SActivity import SActivity
            from WeiDian.service.SActivityFoward import SActivityFoward
            total_forward = 0
            for prlike in productlike_list:
                forward_act = SActivity().get_acid_by_filterid({
                    'AClinkvalue':
                    prlike.PRid,
                    'ACSkipType':
                    2,
                })
                for act in forward_act:
                    forward_num = SActivityFoward().get_fowardnum_by_acid(
                        act.ACid)
                    total_forward = total_forward + forward_num

                prlike.forwardnum = total_forward
                prlike.add("forwardnum")
            prlikecount = self.sproductlike.get_prlike_count_by_usid(
                request.user.id)
            data = import_status("get_product_like_success", "OK")
            data["count"] = prlikecount
            data["data"] = productlike_list
            return data
        except Exception as e:
            logger.exception("get product like error")
            raise SYSTEM_ERROR(u'收藏信息不存在')
Exemplo n.º 23
0
 def del_bankcard(self):
     if not hasattr(request, 'user'):
         return TOKEN_ERROR(u"未登录, 或token错误")
     data = request.json
     logger.info("this is del bankcard data %s", data)
     parameter_required("BCid")
     try:
         logger.debug("del bankcard")
         del_bankcard = self.sbankcard.del_bankcard(data.get("BCid"),
                                                    request.user.id)
         if not del_bankcard:
             return SYSTEM_ERROR
         response = import_status("delete_bankcard_success", "OK")
         response['data'] = {"bcid": data.get("BCid")}
         return response
     except:
         logger.exception("del address error")
         return SYSTEM_ERROR
Exemplo n.º 24
0
    def get_bankcard(self):
        if not hasattr(request, 'user'):
            return TOKEN_ERROR(u"未登录, 或token错误")
        args = request.args.to_dict()
        logger.info("get bankcard this is args %s", args)
        try:
            logger.debug("get bankcard")
            my_bankcard = self.sbankcard.get_bankcard_by_usid(request.user.id)

            if not my_bankcard or not my_bankcard.BCnumber or not my_bankcard.BCusername:
                my_bankcard = None

            response = import_status("get_bankcard_success", "OK")
            response['data'] = my_bankcard
            return response
        except:
            logger.exception("get bankcard error")
            return SYSTEM_ERROR
Exemplo n.º 25
0
 def add_one(self):
     """添加活动热文, 需要管理员登录"""
     if not is_admin():
         return AUTHORITY_ERROR  # 权限不足
     data = request.json
     logger.debug("add hotmessage data is ", data)
     parameter_required('HMtext', 'HMsort', 'HMSkipType')
     now_time = datetime.strftime(datetime.now(), format_for_db)
     HMstarttime = get_db_time_str(data.get('HMstarttime',
                                            now_time))  # 热文开始时间
     hmstarttime_str_to_time = datetime.strptime(HMstarttime, format_for_db)
     # 7天以后
     seven_days_later = datetime.strftime(
         hmstarttime_str_to_time + timedelta(days=7), format_for_db)
     HMendtime = get_db_time_str(data.get(
         'HMendtime', seven_days_later))  # 热文结束时间, 默认7天以后
     # if not self.sproduct.get_product_by_prid(prid):
     #     return SYSTEM_ERROR
     HMSkipType = data.get('HMSkipType')
     if str(HMSkipType) not in self.hotmessage_type:
         raise SYSTEM_ERROR(u'HMSkipType参数错误')
     HMdisplaytype = data.get("HMdisplaytype")
     if str(HMdisplaytype) not in self.hotmessage_display_type:
         raise SYSTEM_ERROR(u'HMdisplaytype参数错误')
     try:
         HMid = str(uuid.uuid1())
         self.s_hotmessage.add_model(
             'HotMessage', **{
                 'HMid': HMid,
                 'HMtext': data.get('HMtext'),
                 'HMstarttime': HMstarttime,
                 'HMendtime': HMendtime,
                 'HMsort': data.get('HMsort'),
                 'HMSkipType': HMSkipType,
                 "HMcontent": data.get("HMcontent"),
                 "HMdisplaytype": HMdisplaytype
             })
         response_make_hotmesasge = import_status('add_hotmessage_success',
                                                  'OK')
         response_make_hotmesasge['data'] = {'HMid': HMid}
         return response_make_hotmesasge
     except:
         logger.exception("create hotmessage error")
         return SYSTEM_ERROR(u'服务器繁忙')
Exemplo n.º 26
0
    def add_admin_by_superadmin(self):
        """超级管理员添加普通管理"""
        if not is_superadmin():
            raise AUTHORITY_ERROR(u'当前非超管权限')
        data = request.json
        logger.debug("add admin data is %s", data)
        parameter_required('suname', 'password', 'suheader')
        suid = str(uuid.uuid1())
        password = data.get('password')

        if len(password) < 4:
            raise PARAMS_ERROR(u'密码长度低于4位')
        zh_pattern = re.compile(u'[\u4e00-\u9fa5]+')
        match = zh_pattern.search(password)
        if match:
            raise PARAMS_ERROR(u'密码包含中文字符')

        suname = data.get('suname')
        sulevel = data.get('sulevel')
        sulevel = 1 if not sulevel else int(sulevel)
        if sulevel not in [0, 1]:
            raise PARAMS_ERROR(u'sulevel参数错误')
        sufilter = {'SUisdelete': False, 'SUname': suname}
        suexist = self.ssuperuser.get_existuser_by_name(sufilter)
        if suexist:
            raise SYSTEM_ERROR(u'用户名已存在')
        try:
            self.ssuperuser.add_model(
                'SuperUser', **{
                    'SUid': suid,
                    'SUname': suname,
                    'SUpassword': generate_password_hash(password),
                    'SUheader': data.get('suheader'),
                    'SUlevel': sulevel,
                })
            response = import_status("add_admin_success", "OK")
            response["data"] = {'suid': suid}
            return response
        except Exception as e:
            logger.exception("add admin error")
            raise SYSTEM_ERROR(u'添加管理员信息错误')
Exemplo n.º 27
0
 def update_bankcard(self):
     if not hasattr(request, 'user'):
         return TOKEN_ERROR(u"未登录, 或token错误")
     args = request.args.to_dict()
     logger.info("this is update bankcard args %s", args)
     data = request.json
     logger.info("this is update bankcard data %s", data)
     try:
         parameter_required("bcid", "BCusername", "BCnumber", "BCbankname",
                            "BCaddress")
         update_bankcard = self.sbankcard.update_bankcard(
             args["bcid"], data)
         logger.debug("update bankcard accress")
         if not update_bankcard:
             return SYSTEM_ERROR
         response = import_status("update_bankcard_success", "OK")
         response["data"] = {"bcid": args["bcid"]}
         return response
     except:
         logger.exception("update bankcard error")
         return SYSTEM_ERROR
Exemplo n.º 28
0
 def get_levelrules(self):
     if is_tourist():
         return AUTHORITY_ERROR(u"未登录")
     try:
         lr_list = self.slevelrules.get_rule_list()
         logger.debug("get level rules")
         map(lambda x: setattr(x, 'LRtext', re.sub('\s', '', x.LRtext)),
             lr_list)
         user = self.suser.get_user_by_user_id(request.user.id)
         if user.USlevel == 0:
             user.level = 'ordinary'
         if user.USlevel > 0:
             user.level = 'partner'
         user.add('level').hide('USid', 'USname', 'USheader')
         data = import_status("get_levelrules_success", "OK")
         data['data'] = lr_list
         data['userlevel'] = user.level
         return data
     except:
         logger.exception("get level rules error")
         return SYSTEM_ERROR
Exemplo n.º 29
0
 def get_image(self):
     if is_tourist():
         return AUTHORITY_ERROR(u"未登录")
     args = request.args.to_dict()
     lasting = args.get('lasting', 'true')
     logger.debug("get image args is %s", args)
     try:
         logger.info("get my image list")
         adimage_list = self.sadimage.get_myimage()
         if lasting == 'true':
             now_time = datetime.strftime(datetime.now(), format_for_db)
             adimage_list = filter(
                 lambda adimage: adimage.AIstarttime < now_time < adimage.
                 AIendtime, adimage_list)
         for adimage in adimage_list:
             adimage.hide('AIurl')
         data = import_status("get_adimage_success", "OK")
         data['data'] = adimage_list
         return data
     except:
         logger.exception("get ad_image by aiid error")
         return SYSTEM_ERROR(u"无底部图片")
Exemplo n.º 30
0
 def upload_tags(self):
     if not is_admin():
         raise AUTHORITY_ERROR(u'非管理员权限')
     data = request.json
     logger.debug("upload tags data is %s", data)
     tags = data.get('tags')
     atid_list = []
     try:
         for tag in tags:
             atid = str(uuid.uuid1())
             self.stags.add_model(
                 'ActivityTag', **{
                     'ATid': atid,
                     'ACid': 'customupload',
                     'ATname': tag.get('atname'),
                 })
             atid_list.append(atid)
         res = import_status("save_photo_success", "OK")
         res['data'] = {'atid_list': atid_list}
         return res
     except Exception as e:
         logger.exception("upload tags error")
         raise SYSTEM_ERROR(u"上传数据错误")