" class="ui green sha label" href="/tonglan/adminSystem/commit/11e3a9652a62b867d722e5aebdba895bb86f9ed3 ">11e3a9652a first 7 lat temu glyphOrientationVertical.js 11e3a9652a first 7 lat temu height.js 11e3a9652a first 7 lat temu imageRendering.js 11e3a9652a first 7 lat temu kerning.js 11e3a9652a first 7 lat temu left.js 11e3a9652a first 7 lat temu letterSpacing.js 11e3a9652a first 7 lat temu lightingColor.js 11e3a9652a first 7 lat temu lineHeight.js 11e3a9652a first 7 lat temu listStyle.js 11e3a9652a first 7 lat temu listStyleImage.js 11e3a9652a first 7 lat temu listStylePosition.js 11e3a9652a first 7 lat temu listStyleType.js 11e3a9652a first 7 lat temu margin.js 11e3a9652a first 7 lat temu marginBottom.js 11e3a9652a first 7 lat temu marginLeft.js 11e3a9652a first 7 lat temu marginRight.js 11e3a9652a first 7 lat temu marginTop.js 11e3a9652a first 7 lat temu marker.js 11e3a9652a first 7 lat temu markerEnd.js 11e3a9652a first 7 lat temu markerMid.js 11e3a9652a first 7 lat temu markerOffset.js 11e3a9652a first 7 lat temu markerStart.js 11e3a9652a first 7 lat temu marks.js 11e3a9652a first 7 lat temu mask.js 11e3a9652a first 7 lat temu maxHeight.js 11e3a9652a first 7 lat temu maxWidth.js 11e3a9652a first 7 lat temu minHeight.js 11e3a9652a first 7 lat temu minWidth.js 11e3a9652a first 7 lat temu opacity.js 11e3a9652a first 7 lat temu orphans.js 11e3a9652a first 7 lat temu outline.js 11e3a9652a first 7 lat temu outlineColor.js 11e3a9652a first 7 lat temu outlineOffset.js 11e3a9652a first 7 lat temu outlineStyle.js 11e3a9652a first 7 lat temu outlineWidth.js 11e3a9652a first 7 lat temu overflow.js 11e3a9652a first 7 lat temu overflowX.js 11e3a9652a first 7 lat temu overflowY.js 11e3a9652a first 7 lat temu padding.js 11e3a9652a first 7 lat temu paddingBottom.js 11e3a9652a first 7 lat temu paddingLeft.js 11e3a9652a first 7 lat temu paddingRight.js 11e3a9652a first 7 lat temu paddingTop.js 11e3a9652a first 7 lat temu page.js 11e3a9652a first 7 lat temu pageBreakAfter.js 11e3a9652a first 7 lat temu pageBreakBefore.js 11e3a9652a first 7 lat temu pageBreakInside.js 11e3a9652a first 7 lat temu pause.js 11e3a9652a first 7 lat temu pauseAfter.js 11e3a9652a first 7 lat temu pauseBefore.js 11e3a9652a first 7 lat temu pitch.js 11e3a9652a first 7 lat temu pitchRange.js 11e3a9652a first 7 lat temu playDuring.js 11e3a9652a first 7 lat temu pointerEvents.js 11e3a9652a first 7 lat temu position.js 11e3a9652a first 7 lat temu quotes.js 11e3a9652a first 7 lat temu resize.js 11e3a9652a first 7 lat temu richness.js 11e3a9652a first 7 lat temu right.js 11e3a9652a first 7 lat temu shapeRendering.js 11e3a9652a first 7 lat temu size.js 11e3a9652a first 7 lat temu speak.js 11e3a9652a first 7 lat temu speakHeader.js 11e3a9652a first 7 lat temu speakNumeral.js 11e3a9652a first 7 lat temu speakPunctuation.js 11e3a9652a first 7 lat temu speechRate.js 11e3a9652a first 7 lat temu src.js 11e3a9652a first 7 lat temu stopColor.js 11e3a9652a first 7 lat temu stopOpacity.js 11e3a9652a first 7 lat temu stress.js 11e3a9652a first 7 lat temu stroke.js 11e3a9652a first 7 lat temu strokeDasharray.js 11e3a9652a first 7 lat temu strokeDashoffset.js 11e3a9652a first 7 lat temu strokeLinecap.js 11e3a9652a first 7 lat temu strokeLinejoin.js 11e3a9652a first 7 lat temu strokeMiterlimit.js 11e3a9652a first 7 lat temu strokeOpacity.js 11e3a9652a first 7 lat temu strokeWidth.js 11e3a9652a first 7 lat temu tableLayout.js 11e3a9652a first 7 lat temu textAlign.js 11e3a9652a first 7 lat temu textAnchor.js 11e3a9652a first 7 lat temu textDecoration.js 11e3a9652a first 7 lat temu textIndent.js 11e3a9652a first 7 lat temu textLineThrough.js 11e3a9652a first 7 lat temu textLineThroughColor.js 11e3a9652a first 7 lat temu textLineThroughMode.js 11e3a9652a first 7 lat temu textLineThroughStyle.js 11e3a9652a first 7 lat temu textLineThroughWidth.js 11e3a9652a first 7 lat temu textOverflow.js 11e3a9652a first 7 lat temu textOverline.js 11e3a9652a first 7 lat temu textOverlineColor.js 11e3a9652a first 7 lat temu textOverlineMode.js 11e3a9652a first 7 lat temu textOverlineStyle.js 11e3a9652a first 7 lat temu textOverlineWidth.js 11e3a9652a first 7 lat temu textRendering.js 11e3a9652a first 7 lat temu textShadow.js 11e3a9652a first 7 lat temu textTransform.js 11e3a9652a first 7 lat temu textUnderline.js 11e3a9652a first 7 lat temu textUnderlineColor.js 11e3a9652a first 7 lat temu textUnderlineMode.js 11e3a9652a first 7 lat temu textUnderlineStyle.js 11e3a9652a first 7 lat temu textUnderlineWidth.js 11e3a9652a first 7 lat temu top.js 11e3a9652a first 7 lat temu unicodeBidi.js 11e3a9652a first 7 lat temu unicodeRange.js 11e3a9652a first 7 lat temu vectorEffect.js 11e3a9652a first 7 lat temu verticalAlign.js 11e3a9652a first 7 lat temu visibility.js 11e3a9652a first 7 lat temu voiceFamily.js 11e3a9652a first 7 lat temu volume.js 11e3a9652a first 7 lat temu webkitAnimation.js 11e3a9652a first 7 lat temu webkitAnimationDelay.js 11e3a9652a first 7 lat temu webkitAnimationDirection.js 11e3a9652a first 7 lat temu webkitAnimationDuration.js 11e3a9652a first 7 lat temu webkitAnimationFillMode.js 11e3a9652a first 7 lat temu webkitAnimationIterationCount.js 11e3a9652a first 7 lat temu webkitAnimationName.js 11e3a9652a first 7 lat temu webkitAnimationPlayState.js 11e3a9652a first 7 lat temu webkitAnimationTimingFunction.js 11e3a9652a first 7 lat temu webkitAppearance.js 11e3a9652a first 7 lat temu webkitAspectRatio.js 11e3a9652a first 7 lat temu webkitBackfaceVisibility.js 11e3a9652a first 7 lat temu webkitBackgroundClip.js 11e3a9652a first 7 lat temu webkitBackgroundComposite.js 11e3a9652a first 7 lat temu webkitBackgroundOrigin.js 11e3a9652a first 7 lat temu webkitBackgroundSize.js 11e3a9652a first 7 lat temu webkitBorderAfter.js 11e3a9652a first 7 lat temu webkitBorderAfterColor.js 11e3a9652a first 7 lat temu webkitBorderAfterStyle.js 11e3a9652a first 7 lat temu webkitBorderAfterWidth.js 11e3a9652a first 7 lat temu webkitBorderBefore.js 11e3a9652a first 7 lat temu webkitBorderBeforeColor.js 11e3a9652a first 7 lat temu webkitBorderBeforeStyle.js 11e3a9652a first 7 lat temu webkitBorderBeforeWidth.js 11e3a9652a first 7 lat temu webkitBorderEnd.js 11e3a9652a first 7 lat temu webkitBorderEndColor.js 11e3a9652a first 7 lat temu webkitBorderEndStyle.js 11e3a9652a first 7 lat temu webkitBorderEndWidth.js 11e3a9652a first 7 lat temu webkitBorderFit.js 11e3a9652a first 7 lat temu webkitBorderHorizontalSpacing.js 11e3a9652a first 7 lat temu webkitBorderImage.js 11e3a9652a first 7 lat temu webkitBorderRadius.js 11e3a9652a first 7 lat temu webkitBorderStart.js 11e3a9652a first 7 lat temu webkitBorderStartColor.js 11e3a9652a first 7 lat temu webkitBorderStartStyle.js 11e3a9652a first 7 lat temu webkitBorderStartWidth.js 11e3a9652a first 7 lat temu webkitBorderVerticalSpacing.js 11e3a9652a first 7 lat temu webkitBoxAlign.js 11e3a9652a first 7 lat temu webkitBoxDirection.js 11e3a9652a first 7 lat temu webkitBoxFlex.js 11e3a9652a first 7 lat temu webkitBoxFlexGroup.js 11e3a9652a first 7 lat temu webkitBoxLines.js 11e3a9652a first 7 lat temu webkitBoxOrdinalGroup.js 11e3a9652a first 7 lat temu webkitBoxOrient.js 11e3a9652a first 7 lat temu webkitBoxPack.js 11e3a9652a first 7 lat temu webkitBoxReflect.js 11e3a9652a first 7 lat temu webkitBoxShadow.js 11e3a9652a first 7 lat temu webkitColorCorrection.js 11e3a9652a first 7 lat temu webkitColumnAxis.js 11e3a9652a first 7 lat temu webkitColumnBreakAfter.js 11e3a9652a first 7 lat temu webkitColumnBreakBefore.js 11e3a9652a first 7 lat temu webkitColumnBreakInside.js 11e3a9652a first 7 lat temu webkitColumnCount.js 11e3a9652a first 7 lat temu webkitColumnGap.js 11e3a9652a first 7 lat temu webkitColumnRule.js 11e3a9652a first 7 lat temu webkitColumnRuleColor.js 11e3a9652a first 7 lat temu webkitColumnRuleStyle.js 11e3a9652a first 7 lat temu webkitColumnRuleWidth.js 11e3a9652a first 7 lat temu webkitColumnSpan.js 11e3a9652a first 7 lat temu webkitColumnWidth.js 11e3a9652a first 7 lat temu webkitColumns.js 11e3a9652a first 7 lat temu webkitFilter.js 11e3a9652a first 7 lat temu webkitFlexAlign.js 11e3a9652a first 7 lat temu webkitFlexDirection.js 11e3a9652a first 7 lat temu webkitFlexFlow.js 11e3a9652a first 7 lat temu webkitFlexItemAlign.js 11e3a9652a first 7 lat temu webkitFlexLinePack.js 11e3a9652a first 7 lat temu webkitFlexOrder.js 11e3a9652a first 7 lat temu webkitFlexPack.js 11e3a9652a first 7 lat temu webkitFlexWrap.js 11e3a9652a first 7 lat temu webkitFlowFrom.js 11e3a9652a first 7 lat temu webkitFlowInto.js 11e3a9652a first 7 lat temu webkitFontFeatureSettings.js 11e3a9652a first 7 lat temu webkitFontKerning.js 11e3a9652a first 7 lat temu webkitFontSizeDelta.js 11e3a9652a first 7 lat temu webkitFontSmoothing.js 11e3a9652a first 7 lat temu webkitFontVariantLigatures.js 11e3a9652a first 7 lat temu webkitHighlight.js 11e3a9652a first 7 lat temu webkitHyphenateCharacter.js 11e3a9652a first 7 lat temu webkitHyphenateLimitAfter.js 11e3a9652a first 7 lat temu webkitHyphenateLimitBefore.js 11e3a9652a first 7 lat temu webkitHyphenateLimitLines.js 11e3a9652a first 7 lat temu webkitHyphens.js 11e3a9652a first 7 lat temu webkitLineAlign.js 11e3a9652a first 7 lat temu webkitLineBoxContain.js 11e3a9652a first 7 lat temu webkitLineBreak.js 11e3a9652a first 7 lat temu webkitLineClamp.js 11e3a9652a first 7 lat temu webkitLineGrid.js 11e3a9652a first 7 lat temu webkitLineSnap.js 11e3a9652a first 7 lat temu webkitLocale.js 11e3a9652a first 7 lat temu webkitLogicalHeight.js 11e3a9652a first 7 lat temu webkitLogicalWidth.js 11e3a9652a first 7 lat temu webkitMarginAfter.js 11e3a9652a first 7 lat temu webkitMarginAfterCollapse.js 11e3a9652a first 7 lat temu webkitMarginBefore.js 11e3a9652a first 7 lat temu webkitMarginBeforeCollapse.js 11e3a9652a first 7 lat temu webkitMarginBottomCollapse.js 11e3a9652a first 7 lat temu webkitMarginCollapse.js 11e3a9652a first 7 lat temu webkitMarginEnd.js 11e3a9652a first 7 lat temu webkitMarginStart.js 11e3a9652a first 7 lat temu webkitMarginTopCollapse.js 11e3a9652a first 7 lat temu webkitMarquee.js 11e3a9652a first 7 lat temu webkitMarqueeDirection.js 11e3a9652a first 7 lat temu webkitMarqueeIncrement.js 11e3a9652a first 7 lat temu webkitMarqueeRepetition.js 11e3a9652a first 7 lat temu webkitMarqueeSpeed.js 11e3a9652a first 7 lat temu webkitMarqueeStyle.js 11e3a9652a first 7 lat temu webkitMask.js 11e3a9652a first 7 lat temu webkitMaskAttachment.js 11e3a9652a first 7 lat temu webkitMaskBoxImage.js 11e3a9652a first 7 lat temu webkitMaskBoxImageOutset.js 11e3a9652a first 7 lat temu webkitMaskBoxImageRepeat.js 11e3a9652a first 7 lat temu webkitMaskBoxImageSlice.js 11e3a9652a first 7 lat temu webkitMaskBoxImageSource.js 11e3a9652a first 7 lat temu webkitMaskBoxImageWidth.js 11e3a9652a first 7 lat temu webkitMaskClip.js 11e3a9652a first 7 lat temu webkitMaskComposite.js 11e3a9652a first 7 lat temu webkitMaskImage.js 11e3a9652a first 7 lat temu webkitMaskOrigin.js 11e3a9652a first 7 lat temu webkitMaskPosition.js 11e3a9652a first 7 lat temu webkitMaskPositionX.js 11e3a9652a first 7 lat temu webkitMaskPositionY.js 11e3a9652a first 7 lat temu webkitMaskRepeat.js 11e3a9652a first 7 lat temu webkitMaskRepeatX.js 11e3a9652a first 7 lat temu webkitMaskRepeatY.js 11e3a9652a first 7 lat temu webkitMaskSize.js 11e3a9652a first 7 lat temu webkitMatchNearestMailBlockquoteColor.js 11e3a9652a first 7 lat temu webkitMaxLogicalHeight.js 11e3a9652a first 7 lat temu webkitMaxLogicalWidth.js 11e3a9652a first 7 lat temu webkitMinLogicalHeight.js 11e3a9652a first 7 lat temu webkitMinLogicalWidth.js 11e3a9652a first 7 lat temu webkitNbspMode.js 11e3a9652a first 7 lat temu webkitOverflowScrolling.js 11e3a9652a first 7 lat temu webkitPaddingAfter.js 11e3a9652a first 7 lat temu webkitPaddingBefore.js 11e3a9652a first 7 lat temu webkitPaddingEnd.js 11e3a9652a first 7 lat temu webkitPaddingStart.js 11e3a9652a first 7 lat temu webkitPerspective.js 11e3a9652a first 7 lat temu webkitPerspectiveOrigin.js 11e3a9652a first 7 lat temu webkitPerspectiveOriginX.js 11e3a9652a first 7 lat temu webkitPerspectiveOriginY.js 11e3a9652a first 7 lat temu webkitPrintColorAdjust.js 11e3a9652a first 7 lat temu webkitRegionBreakAfter.js 11e3a9652a first 7 lat temu webkitRegionBreakBefore.js 11e3a9652a first 7 lat temu webkitRegionBreakInside.js 11e3a9652a first 7 lat temu webkitRegionOverflow.js 11e3a9652a first 7 lat temu webkitRtlOrdering.js 11e3a9652a first 7 lat temu webkitSvgShadow.js 11e3a9652a first 7 lat temu webkitTapHighlightColor.js 11e3a9652a first 7 lat temu webkitTextCombine.js 11e3a9652a first 7 lat temu webkitTextDecorationsInEffect.js 11e3a9652a first 7 lat temu webkitTextEmphasis.js 11e3a9652a first 7 lat temu webkitTextEmphasisColor.js 11e3a9652a first 7 lat temu webkitTextEmphasisPosition.js 11e3a9652a first 7 lat temu webkitTextEmphasisStyle.js 11e3a9652a first 7 lat temu webkitTextFillColor.js 11e3a9652a first 7 lat temu webkitTextOrientation.js 11e3a9652a first 7 lat temu webkitTextSecurity.js 11e3a9652a first 7 lat temu webkitTextSizeAdjust.js 11e3a9652a first 7 lat temu webkitTextStroke.js 11e3a9652a first 7 lat temu webkitTextStrokeColor.js 11e3a9652a first 7 lat temu webkitTextStrokeWidth.js 11e3a9652a first 7 lat temu webkitTransform.js 11e3a9652a first 7 lat temu webkitTransformOrigin.js 11e3a9652a first 7 lat temu webkitTransformOriginX.js 11e3a9652a first 7 lat temu webkitTransformOriginY.js 11e3a9652a first 7 lat temu webkitTransformOriginZ.js 11e3a9652a first 7 lat temu webkitTransformStyle.js 11e3a9652a first 7 lat temu webkitTransition.js 11e3a9652a first 7 lat temu webkitTransitionDelay.js 11e3a9652a first 7 lat temu webkitTransitionDuration.js 11e3a9652a first 7 lat temu webkitTransitionProperty.js 11e3a9652a first 7 lat temu webkitTransitionTimingFunction.js 11e3a9652a first 7 lat temu webkitUserDrag.js 11e3a9652a first 7 lat temu webkitUserModify.js 11e3a9652a first 7 lat temu webkitUserSelect.js 11e3a9652a first 7 lat temu webkitWrap.js 11e3a9652a first 7 lat temu webkitWrapFlow.js 11e3a9652a first 7 lat temu webkitWrapMargin.js 11e3a9652a first 7 lat temu webkitWrapPadding.js 11e3a9652a first 7 lat temu webkitWrapShapeInside.js 11e3a9652a first 7 lat temu webkitWrapShapeOutside.js 11e3a9652a first 7 lat temu webkitWrapThrough.js 11e3a9652a first 7 lat temu webkitWritingMode.js 11e3a9652a first 7 lat temu whiteSpace.js 11e3a9652a first 7 lat temu widows.js 11e3a9652a first 7 lat temu width.js 11e3a9652a first 7 lat temu wordBreak.js 11e3a9652a first 7 lat temu wordSpacing.js 11e3a9652a first 7 lat temu wordWrap.js 11e3a9652a first 7 lat temu writingMode.js 11e3a9652a first 7 lat temu zIndex.js 11e3a9652a first 7 lat temu zoom.js 11e3a9652a first 7 lat temu kodo - Gogs: Go Git Service

Brak opisu

models.py 9.6KB

    # -*- coding: utf-8 -*- from django.conf import settings from django.db import models from django.utils.translation import ugettext_lazy as _ from django_models_ext import BaseModelMixin from utils.rdm_utils import randnum class RegisterStatisticInfo(BaseModelMixin): brand_id = models.CharField(_(u'brand_id'), max_length=32, blank=True, null=True, help_text=u'品牌唯一标识', db_index=True) ymd = models.IntegerField(_(u'ymd'), default=0, help_text=u'年月日', db_index=True) # 例:20171208, tc.local_string(format='%Y%m%d') num = models.IntegerField(_(u'num'), default=0, help_text=u'数量') class Meta: verbose_name = _(u'注册用户统计') verbose_name_plural = _(u'注册用户统计') def __unicode__(self): return unicode(self.pk) @property def data(self): return { 'ymd': self.ymd, 'num': randnum() if settings.DEBUG_STATISTIC_DATA_FLAG else self.num, } # 经销商维度 class SaleStatisticInfo(BaseModelMixin): brand_id = models.CharField(_(u'brand_id'), max_length=32, blank=True, null=True, help_text=u'品牌唯一标识', db_index=True) ymd = models.IntegerField(_(u'ymd'), default=0, help_text=u'年月日', db_index=True) # 例:20171208, tc.local_string(format='%Y%m%d') num = models.IntegerField(_(u'num'), default=0, help_text=u'数量') class Meta: verbose_name = _(u'[经销商维度]销量统计') verbose_name_plural = _(u'[经销商维度]销量统计') def __unicode__(self): return unicode(self.pk) @property def data(self): return { 'ymd': self.ymd, 'num': randnum() if settings.DEBUG_STATISTIC_DATA_FLAG else self.num, } class ModelSaleStatisticInfo(BaseModelMixin): brand_id = models.CharField(_(u'brand_id'), max_length=32, blank=True, null=True, help_text=u'品牌唯一标识', db_index=True) model_id = models.CharField(_(u'model_id'), max_length=32, help_text=u'型号唯一标识', db_index=True) model_name = models.CharField(_(u'model_name'), max_length=255, blank=True, null=True, help_text=u'型号名称') ymd = models.IntegerField(_(u'ymd'), default=0, help_text=u'年月日', db_index=True) # 例:20171208, tc.local_string(format='%Y%m%d'), 0 为全部 num = models.IntegerField(_(u'num'), default=0, help_text=u'数量') class Meta: verbose_name = _(u'[经销商维度]型号销量统计') verbose_name_plural = _(u'[经销商维度]型号销量统计') def __unicode__(self): return unicode(self.pk) @property def data(self): return { 'model_id': self.model_id, 'model_name': self.model_name, 'ymd': self.ymd, 'num': randnum() if settings.DEBUG_STATISTIC_DATA_FLAG else self.num, } # TODO: ROI Calc @property def roi(self): return { 'model_id': self.model_id, 'model_name': self.model_name, 'roi': randnum() if settings.DEBUG_STATISTIC_DATA_FLAG else self.num, } class DistributorSaleStatisticInfo(BaseModelMixin): brand_id = models.CharField(_(u'brand_id'), max_length=32, blank=True, null=True, help_text=u'品牌唯一标识', db_index=True) distributor_id = models.CharField(_(u'distributor_id'), max_length=32, help_text=u'经销商唯一标识', db_index=True) distributor_name = models.CharField(_(u'distributor_name'), max_length=255, blank=True, null=True, help_text=u'经销商名称') ymd = models.IntegerField(_(u'ymd'), default=0, help_text=u'年月日', db_index=True) # 例:20171208, tc.local_string(format='%Y%m%d'), 0 为全部 num = models.IntegerField(_(u'num'), default=0, help_text=u'数量') class Meta: verbose_name = _(u'[经销商维度]经销商销量统计') verbose_name_plural = _(u'[经销商维度]经销商销量统计') def __unicode__(self): return unicode(self.pk) @property def data(self): return { 'distributor_id': self.distributor_id, 'distributor_name': self.distributor_name, 'ymd': self.ymd, 'num': randnum() if settings.DEBUG_STATISTIC_DATA_FLAG else self.num, } class ProvinceSaleStatisticInfo(BaseModelMixin): brand_id = models.CharField(_(u'brand_id'), max_length=32, blank=True, null=True, help_text=u'品牌唯一标识', db_index=True) province_code = models.CharField(_(u'province_code'), max_length=6, help_text=u'省份编码', db_index=True) province_name = models.CharField(_(u'province_name'), max_length=3, blank=True, null=True, help_text=u'省份名称') ymd = models.IntegerField(_(u'ymd'), default=0, help_text=u'年月日', db_index=True) # 例:20171208, tc.local_string(format='%Y%m%d'), 0 为全部 num = models.IntegerField(_(u'num'), default=0, help_text=u'数量') position = models.IntegerField(_(u'position'), default=1, help_text=u'排序') class Meta: verbose_name = _(u'[经销商维度]省份销量统计') verbose_name_plural = _(u'[经销商维度]省份销量统计') def __unicode__(self): return unicode(self.pk) @property def data(self): return { 'province_code': self.province_code, 'province_name': self.province_name, 'ymd': self.ymd, 'num': randnum() if settings.DEBUG_STATISTIC_DATA_FLAG else self.num, } # 消费者维度 class ConsumeSaleStatisticInfo(BaseModelMixin): brand_id = models.CharField(_(u'brand_id'), max_length=32, blank=True, null=True, help_text=u'品牌唯一标识', db_index=True) ymd = models.IntegerField(_(u'ymd'), default=0, help_text=u'年月日', db_index=True) # 例:20171208, tc.local_string(format='%Y%m%d') num = models.IntegerField(_(u'num'), default=0, help_text=u'数量') class Meta: verbose_name = _(u'[消费者维度]销量统计') verbose_name_plural = _(u'[消费者维度]销量统计') def __unicode__(self): return unicode(self.pk) @property def data(self): return { 'ymd': self.ymd, 'num': randnum() if settings.DEBUG_STATISTIC_DATA_FLAG else self.num, } class ConsumeModelSaleStatisticInfo(BaseModelMixin): brand_id = models.CharField(_(u'brand_id'), max_length=32, blank=True, null=True, help_text=u'品牌唯一标识', db_index=True) model_id = models.CharField(_(u'model_id'), max_length=32, help_text=u'型号唯一标识', db_index=True) model_name = models.CharField(_(u'model_name'), max_length=255, blank=True, null=True, help_text=u'型号名称') ymd = models.IntegerField(_(u'ymd'), default=0, help_text=u'年月日', db_index=True) # 例:20171208, tc.local_string(format='%Y%m%d'), 0 为全部 num = models.IntegerField(_(u'num'), default=0, help_text=u'数量') class Meta: verbose_name = _(u'[消费者维度]型号销量统计') verbose_name_plural = _(u'[消费者维度]型号销量统计') def __unicode__(self): return unicode(self.pk) @property def data(self): return { 'model_id': self.model_id, 'model_name': self.model_name, 'ymd': self.ymd, 'num': randnum() if settings.DEBUG_STATISTIC_DATA_FLAG else self.num, } class ConsumeDistributorSaleStatisticInfo(BaseModelMixin): brand_id = models.CharField(_(u'brand_id'), max_length=32, blank=True, null=True, help_text=u'品牌唯一标识', db_index=True) distributor_id = models.CharField(_(u'distributor_id'), max_length=32, help_text=u'经销商唯一标识', db_index=True) distributor_name = models.CharField(_(u'distributor_name'), max_length=255, blank=True, null=True, help_text=u'经销商名称') ymd = models.IntegerField(_(u'ymd'), default=0, help_text=u'年月日', db_index=True) # 例:20171208, tc.local_string(format='%Y%m%d'), 0 为全部 num = models.IntegerField(_(u'num'), default=0, help_text=u'数量') class Meta: verbose_name = _(u'[消费者维度]经销商销量统计') verbose_name_plural = _(u'[消费者维度]经销商销量统计') def __unicode__(self): return unicode(self.pk) @property def data(self): return { 'distributor_id': self.distributor_id, 'distributor_name': self.distributor_name, 'ymd': self.ymd, 'num': randnum() if settings.DEBUG_STATISTIC_DATA_FLAG else self.num, } class ConsumeProvinceSaleStatisticInfo(BaseModelMixin): brand_id = models.CharField(_(u'brand_id'), max_length=32, blank=True, null=True, help_text=u'品牌唯一标识', db_index=True) province_code = models.CharField(_(u'province_code'), max_length=6, help_text=u'省份编码', db_index=True) province_name = models.CharField(_(u'province_name'), max_length=3, blank=True, null=True, help_text=u'省份名称') ymd = models.IntegerField(_(u'ymd'), default=0, help_text=u'年月日', db_index=True) # 例:20171208, tc.local_string(format='%Y%m%d'), 0 为全部 num = models.IntegerField(_(u'num'), default=0, help_text=u'数量') position = models.IntegerField(_(u'position'), default=1, help_text=u'排序') class Meta: verbose_name = _(u'[消费者维度]省份销量统计') verbose_name_plural = _(u'[消费者维度]省份销量统计') def __unicode__(self): return unicode(self.pk) @property def data(self): return { 'province_code': self.province_code, 'province_name': self.province_name, 'ymd': self.ymd, 'num': randnum() if settings.DEBUG_STATISTIC_DATA_FLAG else self.num, }