示例#1
0
    def remove_kind(self, kind_id):
        try:
            Kind.objects.get(id=kind_id).delete()

        except Exception, e:
            debug.get_debug_detail(e)
            return 99900, dict_err.get(99900)
示例#2
0
def test_paycallback(request):
    """
    @note: 测试回调
    """
    params = request.REQUEST

    if request.user.id in (u'd081652b603211e48a41685b35d0bf16',):
        buyer_email = params.get('buyer_email')
        buyer_id = params.get('buyer_id')
        trade_no = params.get('trade_no')
        trade_id = params.get('out_trade_no')
        total_fee = float(params.get('total_fee'))

        errcode, errmsg = 0, "支付成功"
        try:
            ob = OrderBase()
            pay_info = 'trade_no:%s, buyer_email:%s, buyer_id:%s' % (trade_no, buyer_email, buyer_id)

            if trade_id.startswith("W"):
                errcode, errmsg = ob.order_pay_callback(trade_id=trade_id, payed_fee=total_fee, pay_info=pay_info)
            elif trade_id.startswith("R"):
                errcode, errmsg = CashOrderBase().cash_order_pay_callback(trade_id=trade_id, payed_fee=total_fee, pay_info=pay_info)

            status = u'success' if errcode == 0 else 'fail'
        except Exception, e:
            debug.get_debug_detail(e)
            status = u'fail'
            errmsg = u'支付遇到问题: %s' % str(e)

        if errcode == 20301:    # 不存在的订单返回成功防止一直补发
            return HttpResponse('success')

        return HttpResponse(u"status is:%s\nerrmsg is:%s" % (status, errmsg))
示例#3
0
文件: interface.py 项目: cash2one/zx
    def modify_article_type(self,
                            type_id,
                            name,
                            domain,
                            sort_num=0,
                            state=True):
        if None in (name, domain):
            return 99800, dict_err.get(99800)

        objs = ArticleType.objects.filter(id=type_id)
        if not objs:
            return 90105, dict_err.get(90105)

        objs = objs[0]

        temp = ArticleType.objects.filter(name=name)
        if temp and objs.id != temp[0].id:
            return 90103, dict_err.get(90103)

        temp = ArticleType.objects.filter(domain=domain)
        if temp and objs.id != temp[0].id:
            return 90104, dict_err.get(90104)

        try:
            objs.name = name
            objs.domain = domain
            objs.sort_num = sort_num
            objs.state = state
            objs.save()

        except Exception, e:
            debug.get_debug_detail(e)
            return 99900, dict_err.get(99900)
示例#4
0
文件: interface.py 项目: lantianlz/zx
    def modify_article_type(self, type_id, name, domain, sort_num=0, state=True):
        if None in (name, domain):
            return 99800, dict_err.get(99800)

        objs = ArticleType.objects.filter(id=type_id)
        if not objs:
            return 90105, dict_err.get(90105)

        objs = objs[0]

        temp = ArticleType.objects.filter(name=name)
        if temp and objs.id != temp[0].id:
            return 90103, dict_err.get(90103)

        temp = ArticleType.objects.filter(domain=domain)
        if temp and objs.id != temp[0].id:
            return 90104, dict_err.get(90104)

        try:
            objs.name = name
            objs.domain = domain
            objs.sort_num = sort_num
            objs.state = state
            objs.save()

        except Exception, e:
            debug.get_debug_detail(e)
            return 99900, dict_err.get(99900)
示例#5
0
def test_paycallback(request):
    """
    @note: 测试回调
    """
    params = request.REQUEST

    if request.user.id in (u'd081652b603211e48a41685b35d0bf16',):
        buyer_email = params.get('buyer_email')
        buyer_id = params.get('buyer_id')
        trade_no = params.get('trade_no')
        trade_id = params.get('out_trade_no')
        total_fee = float(params.get('total_fee'))

        errcode, errmsg = 0, "支付成功"
        try:
            ob = OrderBase()
            pay_info = 'trade_no:%s, buyer_email:%s, buyer_id:%s' % (trade_no, buyer_email, buyer_id)

            if trade_id.startswith("W"):
                errcode, errmsg = ob.order_pay_callback(trade_id=trade_id, payed_fee=total_fee, pay_info=pay_info)
            elif trade_id.startswith("R"):
                errcode, errmsg = CashOrderBase().cash_order_pay_callback(trade_id=trade_id, payed_fee=total_fee, pay_info=pay_info)

            status = u'success' if errcode == 0 else 'fail'
        except Exception, e:
            debug.get_debug_detail(e)
            status = u'fail'
            errmsg = u'支付遇到问题: %s' % str(e)

        if errcode == 20301:    # 不存在的订单返回成功防止一直补发
            return HttpResponse('success')

        return HttpResponse(u"status is:%s\nerrmsg is:%s" % (status, errmsg))
示例#6
0
    def create_feed(self, stock_id_or_object, question_content, answer_content,
                    belong_market, origin_id=None, create_time=None, create_question_time=None):
        try:
            from www.timeline.interface import FeedBase
            try:
                assert stock_id_or_object and question_content and answer_content
                assert belong_market is not None
            except:
                transaction.rollback(using=DEFAULT_DB)
                return 99800, dict_err.get(99800)

            stock = stock_id_or_object
            now = datetime.datetime.now()
            ps = dict(stock=stock, question_content=question_content, answer_content=answer_content, belong_market=belong_market, origin_id=origin_id)
            ps.update(create_time=create_time or now, create_question_time=create_question_time or now)
            feed = StockFeed.objects.create(**ps)

            stock.feed_count += 1
            stock.save()

            # 产生feed
            FeedBase().create_feed(stock.id, feed.id, feed_type=4)

            transaction.commit(using=DEFAULT_DB)

            return 0, feed
        except Exception, e:
            debug.get_debug_detail(e)
            transaction.rollback(using=DEFAULT_DB)
            return 99900, dict_err.get(99900)
示例#7
0
    def modify_kind(self, kind_id, name, stocks, group=0, sort=0):
        

        if not name or not stocks or not kind_id:
            return 99800, dict_err.get(99800)

        try:
            kind = self.get_kind_by_id(kind_id)

            kind.name = name
            kind.group = group
            kind.sort = sort
            kind.save()

            StockKind.objects.filter(kind_id=kind_id).delete()

            for stock in stocks:
                StockKind.objects.create(kind=kind, stock_id=stock)
            
            # KindDataBase().update_kind_data(kind_id)

            # 异步调用
            from www.tasks import async_update_kind_data
            async_update_kind_data.delay(kind_id)

            transaction.commit(using=DEFAULT_DB)

        except Exception, e:
            debug.get_debug_detail(e)
            transaction.rollback(using=DEFAULT_DB)
            return 99900, dict_err.get(99900)
示例#8
0
文件: interface.py 项目: cash2one/zx
    def modify_district(self, district_id, **kwargs):

        if not district_id:
            return 99800, dict_err.get(99800)

        district = self.get_district_by_id(district_id)

        if not district:
            return 99800, dict_err.get(99800)

        # if kwargs.get('pinyin'):
        #     temp = self.get_city_by_pinyin(kwargs.get('pinyin'))
        #     if temp and temp.id != city.id:
        #         return 50105, dict_err.get(50105)

        # if kwargs.get('pinyin_abbr'):
        #     temp = self.get_city_by_pinyin_abbr(kwargs.get('pinyin_abbr'))
        #     if temp and temp.id != city.id:
        #         return 50106, dict_err.get(50106)

        try:
            for k, v in kwargs.items():
                setattr(district, k, v)

            district.save()

        except Exception, e:
            debug.get_debug_detail(e)
            return 99900, dict_err.get(99900)
示例#9
0
文件: interface.py 项目: cash2one/zx
    def add_department(self,
                       company_id,
                       name,
                       des,
                       addr,
                       tel,
                       city_id,
                       district_id,
                       sort_num=0):
        if None in (company_id, name):
            return 99800, dict_err.get(99800)

        if len(self.get_departments_by_name(name)) > 0:
            return 50109, dict_err.get(50109)

        import time
        try:
            obj = Department.objects.create(company_id=company_id,
                                            name=name,
                                            des=des,
                                            addr=addr,
                                            tel=tel,
                                            city_id=city_id,
                                            district_id=district_id,
                                            sort_num=sort_num,
                                            unique_id=int(time.time()))

            company = CompanyBase().get_company_by_id(company_id)
            company.department_count += 1
            company.save()

        except Exception, e:
            debug.get_debug_detail(e)
            return 99900, dict_err.get(99900)
示例#10
0
    def create_activity(self, user_id, title, content, start_date, end_date, sign_up_end_date, addr, assembly_point, activity_cover):
        try:

            content = utils.filter_script(content)
            if not all((user_id, title, content, start_date, end_date, sign_up_end_date, activity_cover, addr, assembly_point)):
                transaction.rollback(using=ACTIVITY_DB)
                return 99800, dict_err.get(99800)

            errcode, errmsg = JourneyBase().validate_journey_element(title, content, min_title_len=5)
            if not errcode == 0:
                transaction.rollback(using=ACTIVITY_DB)
                return errcode, errmsg

            # 检测时间是否正常
            errcode, errmsg = self.check_date(start_date, end_date, sign_up_end_date)
            if not errcode == 0:
                transaction.rollback(using=ACTIVITY_DB)
                return errcode, errmsg

            activity = Activity.objects.create(user_id=user_id, title=title, content=content, start_date=start_date, end_date=end_date,
                                               sign_up_end_date=sign_up_end_date, activity_cover=activity_cover, addr=addr, assembly_point=assembly_point)

            transaction.commit(using=ACTIVITY_DB)
            return 0, activity
        except Exception, e:
            debug.get_debug_detail(e)
            transaction.rollback(using=ACTIVITY_DB)
            return 99900, dict_err.get(99900)
示例#11
0
文件: interface.py 项目: lantianlz/zx
    def modify_department(self, department_id, **kwargs):
        if not department_id:
            return 99800, dict_err.get(99800)

        department = self.get_department_by_id(department_id)
        if not department:
            return 50101, dict_err.get(50101)

        company_id = kwargs.get("company_id")
        if company_id and str(company_id) != str(department.company_id):
            old_company = department.company
            old_company.department_count -= 1
            old_company.save()

            new_company = CompanyBase().get_company_by_id(company_id)
            new_company.department_count += 1
            new_company.save()

        try:
            for k, v in kwargs.items():
                setattr(department, k, v)

            department.save()
        except Exception, e:
            debug.get_debug_detail(e)
            return 99900, dict_err.get(99900)
示例#12
0
    def send_template_msg(self, app_key, openid, content, template_id):
        """
        @note: 发送模板消息
        """
        access_token = self.get_weixin_access_token(app_key)
        url = '%s/cgi-bin/message/template/send?access_token=%s' % (weixin_api_url, access_token)
        jump_url = ('https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx23cca542b396c669&redirect_uri='
                    'http%3A%2F%2Fwww.84che.com%2Faccount%2Foauth%2Fweixin&response_type=code&scope=snsapi_base&state=order_code#wechat_redirect'
                    )
        data = u'''
        {
           "touser":"******",
           "template_id":"%(template_id)s",
           "url":"%(jump_url)s",
           "data":%(content)s
       }
       ''' % dict(openid=openid, template_id=template_id, jump_url=jump_url, content=content)
        data = data.encode('utf8')

        errcode, errmsg = 0, dict_err.get(0)
        try:
            r = requests.post(url, data=data, timeout=20, verify=False)
            text = r.text
            r.raise_for_status()
            result = json.loads(text)
            errcode, errmsg = result["errcode"], result["errmsg"]
        except Exception, e:
            debug.get_debug_detail(e)
            errcode, errmsg = 70100, dict_err.get(70100)
示例#13
0
    def join_activity(self, activity, user_id, real_name, mobile, partner_count, state=0):
        try:
            if not all((user_id, real_name, mobile)):
                transaction.rollback(using=ACTIVITY_DB)
                return 99800, dict_err.get(99800)

            if ActivityPerson.objects.filter(activity=activity, user_id=user_id):
                transaction.rollback(using=ACTIVITY_DB)
                return 30806, dict_err.get(30806)

            ap = ActivityPerson.objects.create(activity=activity, user_id=user_id, real_name=real_name, mobile=mobile,
                                               partner_count=partner_count, state=state)

            user = UserBase().get_user_by_id(user_id)

            if state > 0:
                activity.person_count += partner_count
                activity.save()
            else:
                UnreadCountBase().add_system_message(
                    activity.user_id,
                    content=u'用户<a href="/p/%s" class="co5 pr-5 pl-5" >%s</a>申请报名你创建的活动:<a class="co5 pr-5 pl-5" href="/activity/%s">%s</a>, 立刻去<a class="co5 pr-5 pl-5" href="/admin/sign#search/0/%s/1">审核</a>' % (
                        user.id, user.nick, activity.id, activity.title, real_name)
                )

            transaction.commit(using=ACTIVITY_DB)
            return 0, dict_err.get(0)
        except Exception, e:
            debug.get_debug_detail(e)
            transaction.rollback(using=ACTIVITY_DB)
            return 99900, dict_err.get(99900)
示例#14
0
    def send_template_msg(self, app_key, openid, content, template_id, jump_url=''):
        """
        @note: 发送模板消息
        """
        access_token = self.get_weixin_access_token(app_key)
        url = '%s/cgi-bin/message/template/send?access_token=%s' % (weixin_api_url, access_token)

        data = u'''
        {
           "touser":"******",
           "template_id":"%(template_id)s",
           "url":"%(jump_url)s",
           "data":%(content)s
       }
       ''' % dict(openid=openid, template_id=template_id, jump_url=jump_url, content=content)
        data = data.encode('utf8')

        errcode, errmsg = 0, dict_err.get(0)
        try:
            r = requests.post(url, data=data, timeout=20, verify=False)
            text = r.text
            r.raise_for_status()
            result = json.loads(text)
            errcode, errmsg = result["errcode"], result["errmsg"]
        except Exception, e:
            debug.get_debug_detail(e)
            errcode, errmsg = 70100, dict_err.get(70100)
示例#15
0
def test_paycallback(request):
    """
    @note: 测试回调
    """
    params = request.REQUEST

    if request.user.id in (u'f02d7bea3c2b11e58be400163e001bb1',):
        buyer_email = params.get('buyer_email')
        buyer_id = params.get('buyer_id')
        trade_no = params.get('trade_no')
        trade_id = params.get('out_trade_no')
        total_fee = float(params.get('total_fee'))

        errcode, errmsg = 0, "支付成功"
        try:
            pay_info = 'trade_no:%s, buyer_email:%s, buyer_id:%s' % (trade_no, buyer_email, buyer_id)

            errcode, errmsg = RechargeOrderBase().order_pay_callback(trade_id=trade_id, payed_fee=total_fee, pay_info=pay_info)

            status = u'success' if errcode == 0 else 'fail'
        except Exception, e:
            debug.get_debug_detail(e)
            status = u'fail'
            errmsg = u'支付遇到问题: %s' % str(e)

        if errcode == 21301:    # 不存在的订单返回成功防止一直补发
            return HttpResponse('success')

        return HttpResponse(u"status is:%s\nerrmsg is:%s" % (status, errmsg))
示例#16
0
    def add_sight(self, name, province, des, code=None, imgs=[]):
        if None in (name, province, des):
            return 99800, dict_err.get(99800)

        if not imgs:
            return 50101, dict_err.get(50101)

        if Sight.objects.filter(name=name):
            return 50102, dict_err.get(50102)

        sight = None
        try:
            sight = Sight.objects.create(name=name,
                                         code=code,
                                         province_key=province,
                                         des=des)

            for img in imgs:
                SightImg.objects.create(sight=sight,
                                        img=img.replace('!600m0', ''))

            transaction.commit()
        except Exception, e:
            transaction.rollback()
            debug.get_debug_detail(e)
            return 99900, dict_err.get(99900)
示例#17
0
文件: interface.py 项目: lantianlz/zx
    def modify_city(self, city_id, **kwargs):

        if not city_id:
            return 99800, dict_err.get(99800)

        city = self.get_city_by_id(city_id)

        if not city:
            return 99800, dict_err.get(99800)

        if kwargs.get('pinyin'):
            temp = self.get_city_by_pinyin(kwargs.get('pinyin'))
            if temp and temp.id != city.id:
                return 50105, dict_err.get(50105)

        if kwargs.get('pinyin_abbr'):
            temp = self.get_city_by_pinyin_abbr(kwargs.get('pinyin_abbr'))
            if temp and temp.id != city.id:
                return 50106, dict_err.get(50106)

        try:
            for k, v in kwargs.items():
                setattr(city, k, v)

            city.save()

        except Exception, e:
            debug.get_debug_detail(e)
            return 99900, dict_err.get(99900)
示例#18
0
文件: interface.py 项目: lantianlz/zx
    def modify_district(self, district_id, **kwargs):

        if not district_id:
            return 99800, dict_err.get(99800)

        district = self.get_district_by_id(district_id)

        if not district:
            return 99800, dict_err.get(99800)

        # if kwargs.get('pinyin'):
        #     temp = self.get_city_by_pinyin(kwargs.get('pinyin'))
        #     if temp and temp.id != city.id:
        #         return 50105, dict_err.get(50105)

        # if kwargs.get('pinyin_abbr'):
        #     temp = self.get_city_by_pinyin_abbr(kwargs.get('pinyin_abbr'))
        #     if temp and temp.id != city.id:
        #         return 50106, dict_err.get(50106)

        try:
            for k, v in kwargs.items():
                setattr(district, k, v)

            district.save()

        except Exception, e:
            debug.get_debug_detail(e)
            return 99900, dict_err.get(99900)
示例#19
0
文件: interface.py 项目: cash2one/zx
    def modify_city(self, city_id, **kwargs):

        if not city_id:
            return 99800, dict_err.get(99800)

        city = self.get_city_by_id(city_id)

        if not city:
            return 99800, dict_err.get(99800)

        if kwargs.get('pinyin'):
            temp = self.get_city_by_pinyin(kwargs.get('pinyin'))
            if temp and temp.id != city.id:
                return 50105, dict_err.get(50105)

        if kwargs.get('pinyin_abbr'):
            temp = self.get_city_by_pinyin_abbr(kwargs.get('pinyin_abbr'))
            if temp and temp.id != city.id:
                return 50106, dict_err.get(50106)

        try:
            for k, v in kwargs.items():
                setattr(city, k, v)

            city.save()

        except Exception, e:
            debug.get_debug_detail(e)
            return 99900, dict_err.get(99900)
示例#20
0
    def save_static_page(self, footer_about='', about='', agreement='', contact=''):
        obj = StaticPage.objects.all()

        try:

            if obj:
                obj = obj[0]

                obj.footer_about = footer_about
                obj.about = about
                obj.agreement = agreement
                obj.contact = contact
                obj.save()
            else:
                obj = StaticPage.objects.create(
                    footer_about=footer_about,
                    about=about,
                    agreement=agreement,
                    contact=contact
                )
            self.get_static_page(must_update_cache=True)

        except Exception, e:
            debug.get_debug_detail(e)
            return 99900, dict_err.get(99900)
示例#21
0
文件: interface.py 项目: cash2one/zx
    def modify_department(self, department_id, **kwargs):
        if not department_id:
            return 99800, dict_err.get(99800)

        department = self.get_department_by_id(department_id)
        if not department:
            return 50101, dict_err.get(50101)

        company_id = kwargs.get("company_id")
        if company_id and str(company_id) != str(department.company_id):
            old_company = department.company
            old_company.department_count -= 1
            old_company.save()

            new_company = CompanyBase().get_company_by_id(company_id)
            new_company.department_count += 1
            new_company.save()

        try:
            for k, v in kwargs.items():
                setattr(department, k, v)

            department.save()
        except Exception, e:
            debug.get_debug_detail(e)
            return 99900, dict_err.get(99900)
示例#22
0
    def modify_kit(self,
                   kit,
                   user,
                   kit_title,
                   kit_content,
                   ip='127.0.0.1',
                   is_hide_user=None):
        try:
            # 防止xss漏洞
            kit_title = utils.filter_script(kit_title)
            kit_content = utils.filter_script(kit_content)

            errcode, errmsg = self.validate_kit_element(kit_title, kit_content)
            if not errcode == 0:
                transaction.rollback(using=KIT_DB)
                return errcode, errmsg

            kit.title = kit_title
            kit.content = kit_content
            kit.ip = ip
            if is_hide_user:
                kit.is_hide_user = True
            kit.save()

            # 更新summary
            self.get_kit_summary_by_id(kit, must_update_cache=True)

            transaction.commit(using=KIT_DB)
            return 0, kit
        except Exception, e:
            debug.get_debug_detail(e)
            transaction.rollback(using=KIT_DB)
            return 99900, dict_err.get(99900)
示例#23
0
文件: interface.py 项目: cash2one/zx
    def add_friendly_link(self,
                          name,
                          href,
                          link_type=0,
                          city_id=None,
                          img=None,
                          des=None,
                          sort_num=0):
        try:
            try:
                assert name and href
                if link_type == 0:
                    assert city_id
            except:
                return 99800, dict_err.get(99800)
            obj = FriendlyLink.objects.create(name=name,
                                              href=href,
                                              city_id=city_id,
                                              img=img,
                                              link_type=link_type,
                                              sort_num=sort_num,
                                              des=des)

            # 更新缓存
            self.get_all_friendly_link(must_update_cache=True)
        except Exception, e:
            debug.get_debug_detail(e)
            return 99900, dict_err.get(99900)
示例#24
0
    def create_kit(self,
                   user_id,
                   kit_title,
                   kit_content,
                   ip='127.0.0.1',
                   is_hide_user=None):
        try:
            # 防止xss漏洞
            kit_title = utils.filter_script(kit_title)
            kit_content = utils.filter_script(kit_content)

            errcode, errmsg = self.validate_kit_element(kit_title, kit_content)
            if not errcode == 0:
                transaction.rollback(using=KIT_DB)
                return errcode, errmsg

            is_hide_user = True if is_hide_user else False
            kit = Kit.objects.create(user_id=user_id,
                                     title=kit_title,
                                     content=kit_content,
                                     last_answer_time=datetime.datetime.now(),
                                     ip=ip,
                                     is_hide_user=is_hide_user)

            # 更新用户话题数信息
            # UserCountBase().update_user_count(user_id=user_id, code='user_kit_count')

            transaction.commit(using=KIT_DB)
            return 0, kit
        except Exception, e:
            debug.get_debug_detail(e)
            transaction.rollback(using=KIT_DB)
            return 99900, dict_err.get(99900)
示例#25
0
    def add_kind(self, name, stocks, group=0, sort=0):
        kind = None

        if not name or not stocks:
            return 99800, dict_err.get(99800)

        try:
            kind = Kind.objects.create(
                name=name, group=group, sort_num=sort
            )

            for stock in stocks:
                StockKind.objects.create(kind=kind, stock_id=stock)
            
            # KindDataBase().update_kind_data(kind.id)

            # 异步调用
            from www.tasks import async_update_kind_data
            async_update_kind_data.delay(kind.id)

            transaction.commit(using=DEFAULT_DB)

        except Exception, e:
            debug.get_debug_detail(e)
            transaction.rollback(using=DEFAULT_DB)
            return 99900, dict_err.get(99900)
示例#26
0
    def modify_zhuanti(self, zhuanti_id, **kwargs):
        if not zhuanti_id or not kwargs.get('title') or not kwargs.get(
                'domain'):
            return 99800, dict_err.get(99800)

        zhuanti = self.get_zhuanti_by_id_or_domain(zhuanti_id)
        if not zhuanti:
            return 70101, dict_err.get(70101)

        temp = Zhuanti.objects.filter(title=kwargs.get('title'))
        if temp and temp[0].id != zhuanti.id:
            return 70102, dict_err.get(70102)

        temp = Zhuanti.objects.filter(domain=kwargs.get('domain'))
        if temp and temp[0].id != zhuanti.id:
            return 70103, dict_err.get(70103)

        try:
            for k, v in kwargs.items():
                setattr(zhuanti, k, v)

            zhuanti.save()
        except Exception, e:
            debug.get_debug_detail(e)
            return 99900, dict_err.get(99900)
示例#27
0
    def send_template_msg(self, app_key, openid, content, template_id):
        """
        @note: 发送模板消息
        """
        access_token = self.get_weixin_access_token(app_key)
        url = '%s/cgi-bin/message/template/send?access_token=%s' % (
            weixin_api_url, access_token)
        jump_url = (
            'https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx23cca542b396c669&redirect_uri='
            'http%3A%2F%2Fwww.cekaa.com%2Faccount%2Foauth%2Fweixin&response_type=code&scope=snsapi_base&state=order_code#wechat_redirect'
        )
        data = u'''
        {
           "touser":"******",
           "template_id":"%(template_id)s",
           "url":"%(jump_url)s",
           "data":%(content)s
       }
       ''' % dict(openid=openid,
                  template_id=template_id,
                  jump_url=jump_url,
                  content=content)
        data = data.encode('utf8')

        errcode, errmsg = 0, dict_err.get(0)
        try:
            r = requests.post(url, data=data, timeout=20, verify=False)
            text = r.text
            r.raise_for_status()
            result = json.loads(text)
            errcode, errmsg = result["errcode"], result["errmsg"]
        except Exception, e:
            debug.get_debug_detail(e)
            errcode, errmsg = 70100, dict_err.get(70100)
示例#28
0
    def modify_journey(self,
                       journey,
                       user,
                       journey_title,
                       journey_content,
                       ip='127.0.0.1',
                       is_hide_user=None):
        try:
            # 防止xss漏洞
            journey_title = utils.filter_script(journey_title)
            journey_content = utils.filter_script(journey_content)

            errcode, errmsg = self.validate_journey_element(
                journey_title, journey_content)
            if not errcode == 0:
                transaction.rollback(using=JOURNEY_DB)
                return errcode, errmsg

            journey.title = journey_title
            journey.content = journey_content
            journey.ip = ip
            if is_hide_user:
                journey.is_hide_user = True
            journey.save()

            # 更新summary
            self.get_journey_summary_by_id(journey, must_update_cache=True)

            transaction.commit(using=JOURNEY_DB)
            return 0, journey
        except Exception, e:
            debug.get_debug_detail(e)
            transaction.rollback(using=JOURNEY_DB)
            return 99900, dict_err.get(99900)
示例#29
0
    def save_static_page(self,
                         footer_about='',
                         about='',
                         agreement='',
                         contact=''):
        obj = StaticPage.objects.all()

        try:

            if obj:
                obj = obj[0]

                obj.footer_about = footer_about
                obj.about = about
                obj.agreement = agreement
                obj.contact = contact
                obj.save()
            else:
                obj = StaticPage.objects.create(footer_about=footer_about,
                                                about=about,
                                                agreement=agreement,
                                                contact=contact)
            self.get_static_page(must_update_cache=True)

        except Exception, e:
            debug.get_debug_detail(e)
            return 99900, dict_err.get(99900)
示例#30
0
    def set_important(self,
                      journey,
                      user,
                      title,
                      summary,
                      author_user_id=None,
                      img='',
                      img_alt=None,
                      sort_num=0):
        try:
            if author_user_id and not UserBase().get_user_by_id(
                    author_user_id):
                transaction.rollback(using=JOURNEY_DB)
                return 99600, dict_err.get(99600)

            try:
                assert journey and user and title and summary
            except:
                transaction.rollback(using=JOURNEY_DB)
                return 99800, dict_err.get(99800)

            journey.is_important = True
            journey.save()

            transaction.commit(using=JOURNEY_DB)
            return 0, dict_err.get(0)
        except Exception, e:
            debug.get_debug_detail(e)
            transaction.rollback(using=JOURNEY_DB)
            return 99900, dict_err.get(99900)
示例#31
0
文件: interface.py 项目: cash2one/zx
    def add_article(self,
                    title,
                    content,
                    article_type,
                    weixin_mp_id,
                    from_url,
                    img,
                    sort_num=0,
                    is_silence=False):
        if None in (title, content, article_type, weixin_mp_id, from_url, img):
            return 99800, dict_err.get(99800)

        if Article.objects.filter(title=title):
            return 90107, dict_err.get(90107)

        obj = None
        try:
            obj = Article.objects.create(title=title,
                                         content=content,
                                         article_type_id=article_type,
                                         weixin_mp_id=weixin_mp_id,
                                         from_url=from_url,
                                         img=img,
                                         sort_num=sort_num,
                                         is_silence=is_silence)
        except Exception, e:
            debug.get_debug_detail(e)
            return 99900, dict_err.get(99900)
示例#32
0
    def modify_stock(self, stock_id, **kwargs):

        if not stock_id or not kwargs.get('name') or not kwargs.get('code') \
                or not kwargs.get('belong_board') or not kwargs.get('belong_market'):
            return 99800, dict_err.get(99800)

        stock = self.get_stock_by_id(stock_id, None)
        if not stock:
            return 80100, dict_err.get(80100)

        temp = Stock.objects.filter(name=kwargs.get('name'))
        if temp and temp[0].id != stock.id:
            return 80102, dict_err.get(80102)

        temp = Stock.objects.filter(code=kwargs.get('code'))
        if temp and temp[0].id != stock.id:
            return 80103, dict_err.get(80103)

        try:
            for k, v in kwargs.items():
                setattr(stock, k, v)

            stock.save()

            state = kwargs.get('state', True)
            # 修改股票动态记录的状态为false
            StockFeed.objects.filter(stock__id=stock.id).update(state=state)

        except Exception, e:
            debug.get_debug_detail(e)
            return 99900, dict_err.get(99900)
示例#33
0
    def create_invite(self, from_user_id, to_user_id, question_id):
        try:
            from www.question.interface import QuestionBase

            ub = UserBase()
            try:
                from_user = ub.get_user_by_id(from_user_id)
                to_user = ub.get_user_by_id(to_user_id)
                question = QuestionBase().get_question_by_id(question_id)

                assert from_user and to_user and question
            except:
                transaction.rollback(using=DEFAULT_DB)
                return 99800, dict_err.get(99800)

            if from_user_id == to_user_id:
                transaction.rollback(using=DEFAULT_DB)
                return 40100, dict_err.get(40100)

            # 同一个问题最多邀请6个人
            if InviteAnswerIndex.objects.filter(from_user_id=from_user_id, question_id=question_id).count() >= 6:
                transaction.rollback(using=DEFAULT_DB)
                return 40101, dict_err.get(40101)

            # 重复邀请给出提示
            if InviteAnswerIndex.objects.filter(from_user_id=from_user_id, to_user_id=to_user_id, question_id=question_id):
                transaction.rollback(using=DEFAULT_DB)
                return 40102, dict_err.get(40102)

            try:
                ia = InviteAnswer.objects.create(from_user_ids=json.dumps([from_user_id, ]), to_user_id=to_user_id, question_id=question_id)
                need_update_unread_count = True
            except:
                ia = InviteAnswer.objects.get(to_user_id=to_user_id, question_id=question_id)
                from_user_ids = json.loads(ia.from_user_ids)
                if from_user_id not in from_user_ids:
                    from_user_ids.append(from_user_id)
                ia.from_user_ids = json.dumps(from_user_ids)
                ia.save()

                need_update_unread_count = True if ia.is_read else False

            # 建立索引
            InviteAnswerIndex.objects.create(from_user_id=from_user_id, to_user_id=to_user_id, question_id=question_id)

            # 更新未读消息,新邀请或者邀请已读才更新未读数
            if need_update_unread_count:
                UnreadCountBase().update_unread_count(to_user_id, code='invite_answer')

            # 发送提醒邮件
            context = dict(user=from_user, question=question)
            async_send_email(to_user.email, u'%s 在智选邀请你回答问题' % (from_user.nick, ), utils.render_email_template('email/invite.html', context), 'html')

            transaction.commit(using=DEFAULT_DB)
            return 0, dict_err.get(0)
        except Exception, e:
            debug.get_debug_detail(e)
            transaction.rollback(using=DEFAULT_DB)
            return 99900, dict_err.get(99900)
示例#34
0
    def create_answer(self, obj, obj_type, from_user_id, content, ip=None):
        try:
            obj_type = str(obj_type)

            content = utils.filter_script(content)
            if not all((obj, obj_type, from_user_id, content)):
                transaction.rollback(using=ANSWER_DB)
                return 99800, dict_err.get(99800)

            errcode, errmsg = JourneyBase().validate_content(content)
            if not errcode == 0:
                transaction.rollback(using=ANSWER_DB)
                return errcode, errmsg

            to_user_id = obj.user_id
            answer = Answer.objects.create(from_user_id=from_user_id, to_user_id=to_user_id, content=content,
                                           obj_id=obj.id, obj_type=obj_type, ip=ip)

            from_user = UserBase().get_user_by_id(from_user_id)
            # 添加at信息
            if content.find('@') != -1:
                at_usernicks = utils.select_at(content)
                for nick in at_usernicks:
                    at_user = UserBase().get_user_by_nick(nick)
                    if at_user:
                        # 自己@自己的关系不进行存储
                        if at_user.id != from_user_id:
                            AtAnswer.objects.create(answer=answer, user_id=at_user.id)
                            if at_user.id != to_user_id:
                                # 更新@未读消息数
                                UnreadCountBase().update_unread_count(at_user.id, code='at_answer')

                                # 发送提醒邮件
                                context = dict(user=from_user, answer=answer)
                                # async_send_email(at_user.email, u'%s 在且行户外回答中@了你' % (from_user.nick, ), utils.render_email_template('email/at.html', context), 'html')

            # 更新未读消息
            if from_user_id != to_user_id:
                UnreadCountBase().update_unread_count(to_user_id, code='received_answer')

                # 发送提醒邮件
                to_user = UserBase().get_user_by_id(to_user_id)
                context = dict(user=from_user, answer=answer)
                # async_send_email(to_user.email, u'%s 在且行户外回答了你的提问' % (from_user.nick, ), utils.render_email_template('email/answer.html', context), 'html')

            # 更新用户回答统计总数
            UserCountBase().update_user_count(user_id=from_user_id, code='user_answer_count')

            # 更新回答数冗余信息
            obj.answer_count += 1
            obj.last_answer_time = datetime.datetime.now()
            obj.save()

            transaction.commit(using=ANSWER_DB)
            return 0, answer
        except Exception, e:
            debug.get_debug_detail(e)
            transaction.rollback(using=ANSWER_DB)
            return 99900, dict_err.get(99900)
示例#35
0
    def process_exception(self, request, exception):
        if type(exception) == Http404:
            return

        url = request.path
        ext_data = {"url": url, "method": request.method,
                    "query_string": ",".join(["".join([k, request.REQUEST.get(k)]) for k in request.REQUEST])}
        debug.get_debug_detail(exception)
示例#36
0
文件: views.py 项目: lantianlz/zx
def save_img(request):
    imgFile = request.FILES.get('imgFile')
    flag = False

    try:
        flag, img_name = qiniu_client.upload_img(imgFile, img_type='editor')
    except Exception, e:
        debug.get_debug_detail(e)
示例#37
0
文件: views.py 项目: cash2one/zx
def save_img(request):
    imgFile = request.FILES.get('imgFile')
    flag = False

    try:
        flag, img_name = qiniu_client.upload_img(imgFile, img_type='editor')
    except Exception, e:
        debug.get_debug_detail(e)
示例#38
0
文件: interface.py 项目: lantianlz/zx
 def sync_ext_id(requests, ext_id_dict):
     try:
         for k, v in ext_id_dict.items():
             temp = WeixinMp.objects.get(id=k)
             temp.ext_id = v
             temp.save()
     except Exception, e:
         debug.get_debug_detail(e)
         return 99900, dict_err.get(99900)
示例#39
0
    def add_cover(self, img, link, sort_num, des=""):
        if None in (img, link, sort_num):
            return 99800, dict_err.get(99800)

        try:
            obj = HomeCover.objects.create(img=img, link=link, sort_num=sort_num, des=des)
        except Exception, e:
            debug.get_debug_detail(e)
            return 99900, dict_err.get(99900)
示例#40
0
文件: interface.py 项目: lantianlz/zx
    def remove_bankey(self, key_id):
        if not key_id:
            return 90109, dict_err.get(90109)

        try:
            BanKey.objects.filter(id=key_id).delete()
        except Exception, e:
            debug.get_debug_detail(e)
            return 99900, dict_err.get(99900)
示例#41
0
文件: interface.py 项目: cash2one/zx
    def remove_bankey(self, key_id):
        if not key_id:
            return 90109, dict_err.get(90109)

        try:
            BanKey.objects.filter(id=key_id).delete()
        except Exception, e:
            debug.get_debug_detail(e)
            return 99900, dict_err.get(99900)
示例#42
0
文件: interface.py 项目: cash2one/zx
 def sync_ext_id(requests, ext_id_dict):
     try:
         for k, v in ext_id_dict.items():
             temp = WeixinMp.objects.get(id=k)
             temp.ext_id = v
             temp.save()
     except Exception, e:
         debug.get_debug_detail(e)
         return 99900, dict_err.get(99900)
示例#43
0
    def change_profile_from_weixin(self, user, app_key, openid):
        '''
        @note: 通过微信资料修改
        '''
        try:
            import urllib2
            from www.misc import qiniu_client
            from www.weixin.interface import dict_weixin_app, WexinBase

            if user.nick.startswith("weixin_"):
                user_id = user.id
                app_id = dict_weixin_app[app_key]["app_id"]

                weixin_user_info = WexinBase().get_user_info(app_key, openid)
                if weixin_user_info:
                    nick = weixin_user_info["nickname"]
                    gender = weixin_user_info["sex"]
                    errcode, errmsg = self.check_gender(gender)
                    if errcode != 0:
                        return errcode, errmsg

                    weixin_img_url = weixin_user_info.get("headimgurl")
                    user_avatar = ''
                    if weixin_img_url:
                        # 上传图片

                        flag, img_name = qiniu_client.upload_img(
                            urllib2.urlopen(weixin_img_url, timeout=20),
                            img_type='weixin_avatar')
                        if flag:
                            user_avatar = '%s/%s' % (settings.IMG0_DOMAIN,
                                                     img_name)
                        else:
                            logging.error(u'转换微信图片失败,weixin_img_url is %s' %
                                          weixin_img_url)

                    ets = list(
                        ExternalToken.objects.filter(app_id=app_id,
                                                     external_user_id=openid,
                                                     source="weixin"))
                    if ets:
                        et = ets[0]
                        et.nick = nick
                        et.save()

                    nick = self.generate_nick_by_external_nick(nick)
                    user = self.get_user_by_id(user_id)
                    user.nick = nick
                    user.avatar = user_avatar
                    user.gender = int(gender)
                    user.save()

                    # 更新缓存
                    self.get_user_by_id(user.id, must_update_cache=True)
            return 0, user
        except Exception, e:
            debug.get_debug_detail(e)
示例#44
0
文件: interface.py 项目: lantianlz/zx
    def modify_customer_manager(self, user_id, **kwargs):
        if not user_id:
            return 99800, dict_err.get(99800)

        user = UserBase().get_user_by_id(user_id)
        if not user:
            return 50100, dict_err.get(50100)

        customer_manager = self.get_customer_manager_by_user_id(user_id)
        if not customer_manager:
            return 50102, dict_err.get(50102)

        temp = CustomerManager.objects.filter(id_cert=kwargs.get('id_cert'))
        if temp and temp[0].user_id != user_id:
            transaction.rollback(using=KAIHU_DB)
            return 50108, dict_err.get(50108)

        # 如果修改了营业部,所属城市也要一并修改
        department_id = kwargs.get('department_id')
        old_department_id = customer_manager.department.id

        if department_id:
            temp = DepartmentBase().get_department_by_id(department_id)
            if not temp:
                return 50101, dict_err.get(50101)
            else:
                kwargs.update({'city_id': temp.city_id})

        try:
            if kwargs.get("state") and customer_manager.state is False:
                # 通过审核发送通知
                content = u'你的客户经理认证请求已经通过 <a href="%s/account/custom_manager">立即查看</a>' % settings.MAIN_DOMAIN
                UnreadCountBase().add_system_message(user_id, content, send_email=True)

            for k, v in kwargs.items():
                setattr(customer_manager, k, v)

            customer_manager.save()

            # 新营业部客户经理个数
            new_department = DepartmentBase().get_department_by_id(department_id)
            new_department.cm_count = new_department.get_active_custom_managers_count()
            # new_department.cm_count += 1
            new_department.save()

            # 旧营业部客户经理个数
            old_department = DepartmentBase().get_department_by_id(old_department_id)
            old_department.cm_count = old_department.get_active_custom_managers_count()
            # old_department.cm_count -= 1
            old_department.save()

            transaction.commit(using=KAIHU_DB)
        except Exception, e:
            debug.get_debug_detail(e)
            transaction.rollback(using=KAIHU_DB)
            return 99900, dict_err.get(99900)
示例#45
0
    def remove_activity(self, activity, user):
        try:
            activity.state = False
            activity.save()

            transaction.commit(using=ACTIVITY_DB)
            return 0, dict_err.get(0)
        except Exception, e:
            debug.get_debug_detail(e)
            transaction.rollback(using=ACTIVITY_DB)
            return 99900, dict_err.get(99900)
示例#46
0
def remove_cache(request):
    index = request.REQUEST.get('index')
    key = request.REQUEST.get('key_name')

    try:
        c = cache.Cache(cache.CACHE_INDEX[index][1])
        c.delete(key)
        return 0, u'删除成功!'
    except Exception, e:
        debug.get_debug_detail(e)
        return 1, u'系统错误!'
示例#47
0
    def remove_cover(self, cover_id):
        if not cover_id:
            return 99800, dict_err.get(99800)

        try:
            obj = self.get_cover_by_id(cover_id)
            obj.delete()

        except Exception, e:
            debug.get_debug_detail(e)
            return 99900, dict_err.get(99900)
示例#48
0
def get_cache(request):
    index = request.REQUEST.get('index')
    key = request.REQUEST.get('key_name')

    try:
        c = cache.Cache(cache.CACHE_INDEX[index][1])

        return 0, [c.get(key) or '', c.ttl(key) or 0]
    except Exception, e:
        debug.get_debug_detail(e)
        return 1, u'系统错误!'
示例#49
0
def get_cache(request):
    index = request.REQUEST.get('index')
    key = request.REQUEST.get('key_name')

    try:
        c = cache.Cache(cache.CACHE_INDEX[index][1])

        return 0, [c.get(key) or '', c.ttl(key) or 0]
    except Exception, e:
        debug.get_debug_detail(e)
        return 1, u'系统错误!'
示例#50
0
def remove_cache(request):
    index = request.REQUEST.get('index')
    key = request.REQUEST.get('key_name')

    try:
        c = cache.Cache(cache.CACHE_INDEX[index][1])
        c.delete(key)
        return 0, u'删除成功!'
    except Exception, e:
        debug.get_debug_detail(e)
        return 1, u'系统错误!'
示例#51
0
    def regist_user(self,
                    email,
                    nick,
                    password,
                    re_password,
                    ip,
                    mobilenumber=None,
                    username=None,
                    source=0,
                    gender=0,
                    invitation_code=None):
        '''
        @note: 注册
        '''
        try:
            if not (email and nick and password):
                transaction.rollback(using=ACCOUNT_DB)
                return 99800, dict_err.get(99800)

            if password != re_password:
                transaction.rollback(using=ACCOUNT_DB)
                return 10105, dict_err.get(10105)

            errcode, errmsg = self.check_user_info(email, nick, password,
                                                   mobilenumber)
            if errcode != 0:
                transaction.rollback(using=ACCOUNT_DB)
                return errcode, errmsg

            id = utils.uuid_without_dash()
            now = datetime.datetime.now()

            user = User.objects.create(id=id,
                                       email=email,
                                       mobilenumber=mobilenumber,
                                       last_login=now,
                                       password=self.set_password(password))
            profile = Profile.objects.create(id=id,
                                             nick=nick,
                                             ip=ip,
                                             source=source,
                                             gender=gender)
            self.set_profile_login_att(profile, user)

            transaction.commit(using=ACCOUNT_DB)

            # 发送验证邮件
            # self.send_confirm_email(user)

            return 0, profile
        except Exception, e:
            debug.get_debug_detail(e)
            transaction.rollback(using=ACCOUNT_DB)
            return 99900, dict_err.get(99900)
示例#52
0
    def remove_activity(self, activity, user):
        try:
            activity.state = False
            activity.save()

            transaction.commit(using=ACTIVITY_DB)
            return 0, dict_err.get(0)
        except Exception, e:
            debug.get_debug_detail(e)
            transaction.rollback(using=ACTIVITY_DB)
            return 99900, dict_err.get(99900)
示例#53
0
    def set_top(self, activity):
        try:
            activitys = Activity.objects.filter(state=True).order_by("-sort_num")
            max_sort_num = 1 if not activitys else (activitys[0].sort_num + 1)
            activity.sort_num = max_sort_num
            activity.save()

            return 0, dict_err.get(0)
        except Exception, e:
            debug.get_debug_detail(e)
            return 99900, dict_err.get(99900)
示例#54
0
文件: interface.py 项目: lantianlz/zx
    def add_ad(self, city_id, qq, expire_time, img):
        try:
            assert city_id and qq and expire_time and img
        except:
            return 99800, dict_err.get(99800)

        obj = None
        try:
            obj = Ad.objects.create(city_id=city_id, qq=qq, expire_time=expire_time, img=img)
        except Exception, e:
            debug.get_debug_detail(e)
            return 99900, dict_err.get(99900)