Beispiel #1
0
    def get_activity_count(self, acfilter):
        settings = Partner()
        skiptype = settings.get_item('skip', 'skip_type')
        acfilter.add(Activity.ACisdelete == False)
        acfilter.add(Activity.ACSkipType == skiptype)

        return self.session.query(Activity).filter(*acfilter).count()
Beispiel #2
0
    def get(self):
        """verfity token test"""
        pn = Partner()

        pn.three_level_divide = 'newthree'
        pn.three_level_divide

        return 'ok'
Beispiel #3
0
 def get_show_type(self):
     if not is_admin():
         raise AUTHORITY_ERROR(u'请使用管理员登录')
     settings = Partner()
     skiptype = settings.get_item('skip', 'skip_type')
     response = import_status("messages_get_item_ok", "OK")
     response['data'] = {'skiptype': skiptype}
     return response
Beispiel #4
0
 def __init__(self):
     from WeiDian.service.SCommision import SCommision
     self.scommion = SCommision()
     from WeiDian.service.SUser import SUser
     self.suser = SUser()
     from WeiDian.control.Cuser import CUser
     self.cuser = CUser()
     from WeiDian.common.divide import Partner
     self.pn = Partner()
     self.empty = ['', {}, [], None]
Beispiel #5
0
 def get_today_total(self):
     """今日"""
     if not is_partner():
         raise TOKEN_ERROR(u'请使用vip登录')
     usid = request.user.id
     # 今日营业额
     today_orders = self.sorder.get_today_order_by_usid_status(
         usid, finished_pay_status)
     sold_mount_list = [x.OImount for x in today_orders] or [0]
     sold_mount = sum(sold_mount_list)
     # 今日赚
     today_earn = sold_mount * Partner().one_level_divide
     today_earn = round(today_earn, 2)
     # 额外赚
     # todo
     other_earn = 0
     # 新衣币
     new_cloth_bit = self.sraward.get_reward_by_usid(usid)
     bit_num_list = [x.RAnumber for x in new_cloth_bit] or [0]
     bit_num_mount = sum(bit_num_list)
     response = import_status('get_today_earn_success', 'OK')
     data = {
         'sold_mount': sold_mount,
         'today_earn': today_earn,
         'other_earn': other_earn,
         'bit_num_mount': bit_num_mount
     }
     response['data'] = data
     return response
Beispiel #6
0
    def set_share_params(self):
        if not is_admin():
            raise TOKEN_ERROR(u'请使用管理员登录')
        data = request.json
        title = data.get('title')
        # title = title.encode("utf8") if isinstance(title, unicode) else title

        content = data.get('content')
        img = data.get('img')

        parameter_required('title', 'content', 'img')
        Partner().set_item('share', 'title', title)
        Partner().set_item('share', 'content', content)
        Partner().set_item('share', 'img', img)
        response = import_status('set_success', 'OK')
        return response
Beispiel #7
0
    def post(self):
        """generic token test"""
        usid = '6882ad09-bf5f-4607-8ad1-1cd46b6158e0'
        pn = Partner()
        import ipdb

        raise BaseError(message='测试信d息')
Beispiel #8
0
    def set_schedual_show(self):
        """设置个人主页升级进度显示(vip数据统计), 素材圈显示, 待评价"""
        if not is_admin():
            raise TOKEN_ERROR(u'请使用管理员登录')
        # data = parameter_required(u'vip_match', u'material', u'wait_apply')
        data = request.json
        paras_list = ['vip_match', 'material', 'wait_apply']
        if not data or not filter(lambda x: x in paras_list, data):
            raise PARAMS_MISS()
        if 'vip_match' in data:  # vip进度, 写在model里
            vip_match_show = False if str(
                data.get('vip_match')) == '1' else True
            updated = self.spartnermatch.update_partner_match(
                1,
                {  # 更改: 这里的level没有用
                    'PSIMisclose': vip_match_show
                })
        if 'material' in data:  # 素材圈是否显示, 写在model里
            material_show = False if str(data.get('material')) == '1' else True
            updated = self.stopnav.update_topnav_by_tnidorname(
                data={'Tisdelete': material_show}, name='素材圈')

        if 'wait_apply' in data:  # 写在配置文件里
            wait_apply_show = data.get('wait_apply')
            wait_apply_show = '0' if str(wait_apply_show) == '0' else '1'
            Partner().set_item('show', 'wait_apply', wait_apply_show)
        msg = 'update_success'
        data = import_status(msg, "OK")
        return data
Beispiel #9
0
 def get_true_price(self, pskid=None, partner=False):
     """获取真实价格"""
     psk = self.session.query(ProductSkuKey).filter(
         ProductSkuKey.PSKid == pskid, ProductSkuKey.PSisdelete != 0).first()
     # prid = psk.PRid
     # product = self.session.query(Product).filter(Product.PRid == prid).first()
     profit = Decimal(str(getattr(psk, 'PSKprofict', 5) or 5))
     if partner:
         temp = profit * Decimal(str(Partner().one_level_divide))
         return float(Decimal(str(psk.PSKprice)) - temp)
     return float(Decimal(str(psk.PSKprice)))
Beispiel #10
0
    def get_share_params(self):

        args = request.args.to_dict()
        prid = args.get('prid')
        logger.debug("get share params args is %s", args)
        if prid:
            from WeiDian.service.SActivity import SActivity
            actext_by_prid = get_model_return_dict(
                SActivity().get_one_act_by_prid(prid))['ACtext']
            title = actext_by_prid.split(u'。')[0]
            content = actext_by_prid.split(u'。')[-1]
            img = get_model_return_dict(
                self.sproduct.get_prmainpic_by_prid(prid))['PRmainpic']
        else:
            settings = Partner()
            title = settings.get_item('share', 'title')
            content = settings.get_item('share', 'content')
            img = settings.get_item('share', 'img')
        response = import_status("messages_get_item_ok", "OK")
        response['data'] = {'title': title, 'content': content, 'img': img}
        return response
Beispiel #11
0
 def set_show_type(self):
     if not is_admin():
         raise TOKEN_ERROR(u'请使用管理员登录')
     data = parameter_required('skip_type')
     try:
         skip_type = str(data.get('skip_type'))
         if skip_type not in ['0', '1', '2']:
             raise TypeError()
     except TypeError as e:
         raise PARAMS_ERROR(u'参数skip_type错误')
     Partner().set_item('skip', 'skip_type', skip_type)
     response = import_status('set_success', 'OK')
     return response
Beispiel #12
0
 def get_schedual_show(self):
     """获取控制中心显示隐藏详情"""
     match = self.spartnermatch.get_lasting_partner_match(level=1)
     vip_match = 1 if match else 0
     mater = self.stopnav.get_topnav_by_name('素材圈')
     material = 0 if mater.Tisdelete else 1
     wait_apply = Partner().get_item('show', 'wait_apply')
     data = import_status('get_success', 'OK')
     data['data'] = {
         'vip_match': vip_match,
         'material': material,
         'wait_apply': wait_apply,
     }
     return data
Beispiel #13
0
 def fill_product(self, act):
     """填充活动商品"""
     # 粉丝页面显示本身价格和店主价, 以及相关商品推荐(规则?)
     prid = act.AClinkvalue
     product = self.sproduct.get_product_by_prid(prid)
     if product:
         prkeeperprice = product.PRprice * (1 - Partner().one_level_divide)
         product.prkeeperprice = ('%.2f' % prkeeperprice)
         prsavemonty = product.PRprice - prkeeperprice
         product.PRprice = ('%.2f' % product.PRprice)
         product.prsavemonty = ('%.2f' % prsavemonty)
         product.add('prkeeperprice', 'prsavemonty', 'prprice')
     act.product = product
     act.add('product')
     return act
Beispiel #14
0
 def fill_sku(self, cart):
     """
     填充选择的sku信息
     """
     pskid = cart.PSKid
     if pskid:
         sku = self.sproductskukey.get_psk_by_pskid(pskid)
         if not sku:
             return cart
         sku.add('PSKproperkey')
         # 价格计算, 合伙人优惠
         cart.PRprice = float(sku.PSKprice) * \
             Partner().one_level_divide if is_partner() else float(sku.PSKprice)
         cart.subtotal = cart.PRprice * cart.SCnums
         cart.current_sku = sku
         cart.add('current_sku', 'subtotal')
     return cart
Beispiel #15
0
 def fill_recommend_product(self, recommend):
     """日荐页中中部商品填充"""
     reid = recommend.REid
     products = self.sproduct.get_product_list_by_reid(reid)
     from WeiDian.service.SRecommend import SRecommend
     for product in products:
         product.rpsort = get_model_return_dict(
             SRecommend().get_recommendproduct_sort_by_filter({
                 'REid':
                 reid,
                 'PRid':
                 product.PRid
             }))['RPsort']
         prkeeperprice = product.PRprice * (1 - Partner().one_level_divide)
         product.prkeeperprice = ('%.2f' % prkeeperprice)
         prsavemonty = product.PRprice - prkeeperprice
         product.prsavemonty = ('%.2f' % prsavemonty)
         product.PRprice = ('%.2f' % product.PRprice)
         product.add('prkeeperprice', 'prsavemonty', 'rpsort')
     recommend.products = products
     recommend.add('products')
     return recommend
Beispiel #16
0
    def __init__(self):
        from WeiDian.service.SProduct import SProduct
        self.sproduct = SProduct()
        from WeiDian.service.SProductSkuValue import SProductSkuValue
        self.sproductskuvalue = SProductSkuValue()
        from WeiDian.service.SProductImage import SProductImage
        self.sproductimage = SProductImage()
        from WeiDian.service.SProductSkuKey import SProductSkuKey
        self.sproductskukey = SProductSkuKey()
        from WeiDian.service.SActivity import SActivity
        self.sactivity = SActivity()
        from WeiDian.service.SProductLike import SProductLike
        self.sproductlike = SProductLike()
        from WeiDian.control.Cuser import CUser
        self.cuser = CUser()
        from WeiDian.service.SBigActivity import SBigActivity
        self.sbigactivity = SBigActivity()
        from WeiDian.service.STopNav import STopNav
        self.stopnav = STopNav()
        from WeiDian.service.SOrder import SOrder
        self.sorder = SOrder()
        from WeiDian.service.SSuperUser import SSuperUser
        self.ssuperuser = SSuperUser()
        self.empty = ['', [], {}, None]
        # 后续修改
        self.partner = Partner()
        self.update_sku_params = [
            'PRid', "PSVid", 'PSKproductnum', 'PSKalias', 'PSKprice',
            'PSKpostfee', 'PSKactiviyid', 'PSKproperkey', "PSisdelete"
        ]

        self.update_product_params = [
            'PRmainpic', 'PRdetail', 'PRimporturl', 'PRishot', 'PRtitle',
            'PRname', 'Maketlias', 'PRalias', 'PRprice', 'PReditstate',
            'PRsalesvolume', 'PRoldprice', 'PRchannelname', 'PRvipprice',
            'PRlogisticsfee', 'PRchannelid', 'SUid', 'PRstock', 'PRsalestatus',
            'PRishhare', 'PRtarget', 'PRviewnum', 'PRfakeviewnum',
            'PRfakelikenum', 'PRsalefakenum', 'PRbaid'
        ]
Beispiel #17
0
    def get_all(self):
        """获取条件下的所有活动
        """
        if is_tourist():
            return AUTHORITY_ERROR(u"未登录")
        args = request.args.to_dict()
        logger.info("this is get all activity args %s", args)
        parameter_required(u'tnid')
        tnid = args.get('tnid')  # 导航id
        suid = args.get('suid')  # 管理员id
        lasting = args.get('lasting', 'true')  # 是否正在进行的活动
        acid = args.get("acid")
        if not acid:
            acid = None
        start = int(args.get('start', 0))  # 起始位置
        count = int(args.get('count', 5))  # 取出条数
        page = (args.get('page'))
        # 过滤跳转类型
        skiptype = args.get('skiptype')
        if skiptype is None:
            settings = Partner()
            skiptype = settings.get_item('skip', 'skip_type')  # 配置文件中的过滤条件(默认)
        if skiptype == 'all':
            skiptype = None
        # 分页
        if not page:
            page = int(math.floor(start / count) + 1)
        if not (tnid or suid):
            raise PARAMS_MISS(u"参数缺失")
        try:
            topnav = self.stopnav.get_topnav_by_tnid(tnid)
            if not topnav:
                raise NOT_FOUND(u'无此tnid')
            if topnav.TNtype == 2 and str(tnid) != '1':  # '1'为每日十荐页tnid
                skiptype = 0
            print(skiptype)

            now_time = None

            if str(lasting) == 'true':
                now_time = datetime.strftime(datetime.now(), format_for_db)
            activity_list = self.sactivity.get_activity_by_topnavid(
                tnid, page, count, skiptype, acid, suid, now_time)
            logger.info("get activity_list success")

            # if suid:
            #     activity_list = self.sactivity.get_activity_by_suid(suid, page, count)
            # if not activity_list:
            #     raise SYSTEM_ERROR(u'数据库错误')

            for activity in activity_list:
                self.sactivity.update_view_num(activity.ACid)
                self.fill_detail(activity)
                self.fill_like_num(activity)
                self.fill_type(activity)
                activity.fill(activity.AClinkvalue, 'aclinkvalue')
                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_list_success", "OK")
            data["count"] = request.all_count
            data["page_count"] = request.page_count
            data["data"] = activity_list
            return data
        except Exception as e:
            logger.exception("get activity error")
            generic_log(e)
            return e
Beispiel #18
0
class CCommision(object):

    def __init__(self):
        from WeiDian.service.SCommision import SCommision
        self.scommion = SCommision()
        from WeiDian.service.SUser import SUser
        self.suser = SUser()
        from WeiDian.control.Cuser import CUser
        self.cuser = CUser()
        from WeiDian.common.divide import Partner
        self.pn = Partner()
        self.empty = ['', {}, [], None]

    @verify_token_decorator
    def get_commsion_list(self):
        """后台获取佣金统计表格"""
        if not is_admin():
            raise AUTHORITY_ERROR(u'请使用管理员账号重新登录')
        args = request.args.to_dict()
        logger.debug("Get commsion list args is %s", args)
        kw = args.get('kw')
        kw = kw.encode('utf8') if kw not in self.empty else None
        time_start = args.get('time_start')
        time_start = get_db_time_str(time_start) if time_start not in self.empty else None
        time_end = args.get('time_end')
        time_end = get_db_time_str(time_end) if time_end not in self.empty else None
        pagenum, pagesize = self.cuser.get_pagesize_pagenum(args)
        user_list, count = self.suser.get_all_partner_by_filter(pagenum, pagesize, kw)
        commision_list = []
        try:
            for user in user_list:
                usid = user.USid
                data = {
                    'usname': user.USname,
                    'usphone': user.USphone,
                    'total': self._total_commision(usid),                                     # 总额
                    'sold_income': self._user_commision(usid, 0, time_start, time_end),       # !销售佣金
                    'invite_open': self._user_commision(usid, 10, time_start, time_end),      # !邀请开店佣金
                    'fans_outincome': self._user_commision(usid, 20, time_start, time_end),   # !专粉佣金
                    'group_income': self._team_commision(usid),                               # 团队佣金
                    'remain': self._remain_commision(usid),                                   # 余额
                    'reward_income': self._user_commision(usid, 40, time_start, time_end),    # 周周奖佣金
                    'novice_reward': self._user_commision(usid, 45, time_start, time_end),    # !新手任务佣金
                    'priview': self._privew_commision(usid),                                  # 预估到帐
                    'extracting': self._extract_commision(usid)                               # 正在提现的佣金
                }
                commision_list.append(data)
        except Exception as e:
            generic_log(e)
            raise e
        response = import_status('get_success', 'OK')
        response['data'] = commision_list
        response['count'] = count
        return response

    @verify_token_decorator
    def get_commission_overview(self):
        """后台佣金概况"""
        if not is_admin():
            raise AUTHORITY_ERROR(u'请使用管理员账号重新登录')
        args = request.args.to_dict()
        logger.debug("Get commsion overview args is %s", args)
        time_start, time_end = None, None
        from WeiDian.models.model import User
        user_dict = {
            'primary': 1,
            'middle': 2,
            'advanced': 3
        }
        for k, v in user_dict.items():
            user_dict[k] = self.suser.get_all_user_without_pagecut((User.USlevel == user_dict[k],))

        p_sold_income, p_invite_open, p_week_reward, p_extra_reward, p_fans_outincome, p_novice_reward = 0, 0, 0, 0, 0, 0
        for user in user_dict['primary']:
            usid = user.USid
            sold_income = self._user_commision(usid, 0, time_start, time_end)  # 销售佣金(商品佣金支出)
            p_sold_income += sold_income
            invite_open = self._user_commision(usid, 10, time_start, time_end)  # 邀请开店佣金
            p_invite_open += invite_open
            reward_income = self._user_commision(usid, 40, time_start, time_end)  # 周周奖
            p_week_reward += reward_income
            extra_reward = self._user_commision(usid, 41, time_start, time_end)  # 额外奖励
            p_extra_reward += extra_reward
            fans_outincome = self._user_commision(usid, 20, time_start, time_end)  # 专粉佣金支出
            p_fans_outincome += fans_outincome
            novice_reward = self._user_commision(usid, 45, time_start, time_end)  # 新店主任务奖励佣金
            p_novice_reward += novice_reward
        primary = {
            "levelname": u'1级',
            "sold_income": p_sold_income,
            "invite_open": p_invite_open,
            "week_reward": p_week_reward,
            "reward_income": p_extra_reward,
            "fans_outincome": p_fans_outincome,
            "novice_reward": p_novice_reward
        }

        m_sold_income, m_invite_open, m_week_reward, m_extra_reward, m_fans_outincome, m_novice_reward = 0, 0, 0, 0, 0, 0
        for user in user_dict['middle']:
            usid = user.USid
            sold_income = self._user_commision(usid, 0, time_start, time_end)  # 销售佣金(商品佣金支出)
            m_sold_income += sold_income
            invite_open = self._user_commision(usid, 10, time_start, time_end)  # 邀请开店佣金
            m_invite_open += invite_open
            reward_income = self._user_commision(usid, 40, time_start, time_end)  # 周周奖
            m_week_reward += reward_income
            extra_reward = self._user_commision(usid, 41, time_start, time_end)  # 额外奖励
            m_extra_reward += extra_reward
            fans_outincome = self._user_commision(usid, 20, time_start, time_end)  # 专粉佣金支出
            m_fans_outincome += fans_outincome
            novice_reward = self._user_commision(usid, 45, time_start, time_end)  # 新店主任务奖励佣金
            m_novice_reward += novice_reward
        middle = {
            "levelname": u'2级',
            "sold_income": m_sold_income,
            "invite_open": m_invite_open,
            "week_reward": m_week_reward,
            "reward_income": m_extra_reward,
            "fans_outincome": m_fans_outincome,
            "novice_reward": m_novice_reward
        }

        a_sold_income, a_invite_open, a_week_reward, a_extra_reward, a_fans_outincome, a_novice_reward = 0, 0, 0, 0, 0, 0
        for user in user_dict['advanced']:
            usid = user.USid
            sold_income = self._user_commision(usid, 0, time_start, time_end)  # 销售佣金(商品佣金支出)
            a_sold_income += sold_income
            invite_open = self._user_commision(usid, 10, time_start, time_end)  # 邀请开店佣金
            a_invite_open += invite_open
            reward_income = self._user_commision(usid, 40, time_start, time_end)  # 周周奖
            a_week_reward += reward_income
            extra_reward = self._user_commision(usid, 41, time_start, time_end)  # 额外奖励
            a_extra_reward += extra_reward
            fans_outincome = self._user_commision(usid, 20, time_start, time_end)  # 专粉佣金支出
            a_fans_outincome += fans_outincome
            novice_reward = self._user_commision(usid, 45, time_start, time_end)  # 新店主任务奖励佣金
            a_novice_reward += novice_reward
        advanced = {
            "levelname": u'3级',
            "sold_income": a_sold_income,
            "invite_open": a_invite_open,
            "week_reward": a_week_reward,
            "reward_income": a_extra_reward,
            "fans_outincome": a_fans_outincome,
            "novice_reward": a_novice_reward
        }
        total = {
            "levelname": u'全部',
            "sold_income": primary['sold_income'] + middle['sold_income'] + advanced['sold_income'],
            "invite_open": primary['invite_open'] + middle['invite_open'] + advanced['invite_open'],
            "week_reward": primary['week_reward'] + middle['week_reward'] + advanced['week_reward'],
            "reward_income": primary['reward_income'] + middle['reward_income'] + advanced['reward_income'],
            "fans_outincome": primary['fans_outincome'] + middle['fans_outincome'] + advanced['fans_outincome'],
            "novice_reward": primary['novice_reward'] + middle['novice_reward'] + advanced['novice_reward']
        }
        data = [total, primary, middle, advanced]
        response = import_status('get_success', 'OK')
        response['data'] = data
        return response

    @verify_token_decorator
    def set_commission(self):
        """佣金设置"""
        if not is_admin():
            raise AUTHORITY_ERROR(u'请使用管理员账号重新登录')
        # todo 设置周周奖 (开始时间/结束时间 分周)
        # todo 设置额外活动
        data = request.json
        logger.debug("SET commission data is %s", data)
        # 设置合伙人三级佣金比例
        divide_one = data.get('divide_one')
        if divide_one not in self.empty and divide_one.isdigit():
            divide_one = float(divide_one) / 100
            self.pn.one_level_divide = str(divide_one)
        divide_two = data.get('divide_two')
        if divide_two not in self.empty and divide_two.isdigit():
            divide_two = float(divide_two) / 100
            self.pn.two_level_divide = str(divide_two)
        divide_three = data.get('divide_three')
        if divide_three not in self.empty and divide_three.isdigit():
            divide_three = float(divide_three) / 100
            self.pn.three_level_divide = str(divide_three)
        # 设置专粉单数及佣金限制
        limit_time_one = data.get('time_one')  # [1,5]
        fans_price_one = data.get('fans_price_one')  # 30
        if fans_price_one not in self.empty:
            fans_price_one = float(fans_price_one) / 100
            self.pn.set_item("level_limit_1", "profit", fans_price_one)
        if limit_time_one not in self.empty:
            self.pn.set_item("level_limit_1", "min", limit_time_one[0])
            self.pn.set_item("level_limit_1", "max", limit_time_one[-1])

        limit_time_two = data.get('time_two')  # [6, 20]
        fans_price_two = data.get('fans_price_two')  # 30
        if fans_price_two not in self.empty:
            fans_price_two = float(fans_price_two) / 100
            self.pn.set_item("level_limit_1", "profit", fans_price_two)
        if limit_time_two not in self.empty:
            if limit_time_two[0] - limit_time_one[-1] != 1:
                raise PARAMS_ERROR(u'timeone 参数错误')
            self.pn.set_item("level_limit_2", "min", limit_time_two[0])
            self.pn.set_item("level_limit_2", "max", limit_time_two[-1])

        limit_time_three = data.get('time_three')  # 21
        fans_price_three = data.get('fans_price_three')  # 30
        if fans_price_three not in self.empty:
            fans_price_three = float(fans_price_three) / 100
            self.pn.set_item("level_limit_1", "profit", fans_price_three)
        if limit_time_three not in self.empty:
            if limit_time_three[0] - limit_time_two[-1] != 1:
                raise PARAMS_ERROR(u'timeone 参数错误')
            self.pn.set_item("level_limit_3", "min", limit_time_three)

        response = import_status("set_success", "OK")
        response['data'] = {
            "divide_one": self.pn.one_level_divide,
            "divide_two": self.pn.two_level_divide,
            "divide_three": self.pn.three_level_divide
        }
        return response


    def _user_commision(self, usid, type, time_start, time_end):
        """用户佣金类型"""
        commsion = self.scommion.get_usercommsion_flow_filter({
            'USid': usid,
            'UCFtype': type
        }, time_start, time_end)
        mount = sum(Decimal(x.UCFnums) for x in commsion) if commsion else 0
        return float(mount)

    def _remain_commision(self, usid):
        """佣金余额"""
        user_commision = self.scommion.get_usercommsion_by_usid(usid)
        user_commision_num = getattr(user_commision, 'UCnum', 0)
        return user_commision_num

    def _total_commision(self, usid):
        """总获得"""
        user_commision = self.scommion.get_usercommsion_by_usid(usid)
        user_commision_num = getattr(user_commision, 'UCtotal', 0)
        return user_commision_num

    def _privew_commision(self, usid):
        """预估佣金"""
        commsion_privews = self.scommion.get_commision_preview_by_usid(usid)
        priview_mount = sum(Decimal(x.UCPnums) for x in commsion_privews) if commsion_privews else 0
        return float(priview_mount)

    def _team_commision(self, usid):
        """团队佣金"""
        team_commision = self.scommion.get_teamcommision_by_usid(usid)
        team_amout = sum(Decimal(x.TCtotal) for x in team_commision) if team_commision else 0
        return float(team_amout)

    def _extract_commision(self, usid):
        """正提现佣金"""
        extract_commision = self.scommion.get_extractcommision_by_filter({'USid': usid,
                                                                          'CTCstatus': 0
                                                                          })
        extract_amout = sum(Decimal(x.CTCamount) for x in extract_commision) if extract_commision else 0
        return float(extract_amout)
Beispiel #19
0
    def __init__(self):
        from WeiDian.common.divide import Partner
        self.pt = Partner()

        self.access_token_server, self.ticket, self.access_time = self.pt.access_token