예제 #1
0
파일: utils.py 프로젝트: cp1059/server
def countTotTerm(opentime,termnum):

    """
        计算总期数
            如果是时间分段那么要算时间跨度+1
    """

    if opentime == 'all':
        M = 24 * 60
        if M % termnum >0:
            PubErrorCustom("根据开奖时间和期数间隔时间无法精确算出总期数,请调整后提交!")

        return int(M / termnum)
    else:
        ut = UtilTime()
        tot = 0
        C = opentime.split('|')
        for item in C:
            start_time = item.split('-')[0]
            end_time = item.split('-')[1]

            a = ut.arrow_to_string(ut.string_to_arrow(string_s=end_time, format_v="HHmm").shift(hours=-(int(start_time[0:2])), minutes=-(int(start_time[2:4]))),
                                   "HH:mm")
            tot += int(a.split(":")[0]) * 60 + int(a.split(":")[1])

        return tot/20+len(C)
예제 #2
0
    def save(self, *args, **kwargs):

        if not self.createtime:
            self.createtime = UtilTime().timestamp
            print(self.createtime)
        self.updtime = UtilTime().timestamp
        return super(Cardvirtual, self).save(*args, **kwargs)
예제 #3
0
파일: serialiers.py 프로젝트: tcwechat/gzh
    def get_sendobjects_format(self,obj):
        ut = UtilTime()
        res = ""
        if obj.type == '1':
            return "全部粉丝"
        else:
            if obj.select_sex == '1':
                res+='仅男性粉丝'
            elif  obj.select_sex == '2':
                res += '仅女性粉丝'
            elif obj.select_sex == '0':
                res += '未知性别'

            if len(obj.select_followtime):
                res += "{}-{}".format(ut.timestamp_to_string(obj.select_followtime.split('-')[0]),ut.timestamp_to_string(obj.select_followtime.split('-')[1]))

            if len(obj.select_province) and len(obj.select_city):
                res += "{}-{}".format(obj.select_province,obj.select_city)

            for j,item in enumerate(AccTag.objects.filter(id__in=json.loads(obj.select_tags))):
                if j>0:
                    res += ","
                res += item.name

        return res
예제 #4
0
    def OrderCanleSysEx(self, request):
        logger.info("晚上批量处理订单!")

        today = UtilTime().today.shift(minutes=ORDERCANLETIME * -1)

        for order in Order.objects.select_for_update().filter(
                createtime__lte=today.timestamp, status='0'):
            OrderBase(order=order).callbackStock()
            order.status = '9'
            order.save()

        today = UtilTime().today.shift(days=-7)

        for order in Order.objects.select_for_update().filter(
                fhtime__lte=today.timestamp, status='2'):
            order.status = '3'
            order.save()

        today = UtilTime().today.shift(days=-1)

        for order in Order.objects.select_for_update().filter(
                createtime__lte=today.timestamp, status='9'):
            order.status = '8'
            order.save()

        logger.info("晚上批量处理成功!")
예제 #5
0
    def save(self, *args, **kwargs):

        if not self.createtime:
            self.createtime = UtilTime().timestamp
            print(self.createtime)
        self.updtime = UtilTime().timestamp
        return super(DeliveryCode, self).save(*args, **kwargs)
예제 #6
0
    def makeQgIsOk(self, request, *args, **kwargs):
        """
        抢购
        """

        try:
            obj = Makes.objects.get(
                active_id=request.data_format.get('active_id'),
                userid=request.user['userid'])

            try:
                acObj = Active.objects.get(
                    id=request.data_format.get('active_id'))
            except Active.DoesNotExist:
                raise PubErrorCustom("此活动不存在!")

            if acObj.status != '0':
                raise PubErrorCustom("此活动已关闭!")

            if acObj.start_time1 / 1000 > UtilTime().timestamp:
                raise PubErrorCustom("此活动抢购时间未开始!")

            if acObj.end_time1 / 1000 <= UtilTime().timestamp:
                raise PubErrorCustom("此活动抢购时间已结束!")

            if obj.status != '1':
                raise PubErrorCustom("只有预约成功才能进行抢购!")

            obj.status = '3'
            obj.save()

        except Makes.DoesNotExist:
            raise PubErrorCustom("未预约!")
예제 #7
0
    def save(self, *args, **kwargs):

        ut = UtilTime()
        if not self.date:
            self.date = ut.arrow_to_string(format_v="YYYY-MM-DD")
        if not self.createtime:
            self.createtime = ut.timestamp
        return super(AccSend, self).save(*args, **kwargs)
예제 #8
0
파일: models.py 프로젝트: cp1059/server
    def save(self, *args, **kwargs):

        if not self.orderid:
            self.orderid = idGenerator().ordercode()

        if not self.createtime:
            self.createtime = UtilTime().timestamp
        self.updtime = UtilTime().timestamp
        return super(Order, self).save(*args, **kwargs)
예제 #9
0
    def save(self, *args, **kwargs):

        if not self.typeid:
            self.typeid = idGenerator.goodsthemecategory()

        if not self.createtime:
            self.createtime = UtilTime().timestamp
        self.updtime = UtilTime().timestamp
        return super(GoodsTheme, self).save(*args, **kwargs)
예제 #10
0
    def save(self, *args, **kwargs):

        if not self.gdcgid:
            self.gdcgid = idGenerator.goodscategory()

        if not self.createtime:
            self.createtime = UtilTime().timestamp
        self.updtime = UtilTime().timestamp
        return super(GoodsCateGory, self).save(*args, **kwargs)
예제 #11
0
def timeHandler(timeSpan, timeUnit):
    if timeUnit == 'y':
        return UtilTime().today.shift(years=timeSpan).timestamp
    elif timeUnit == 'm':
        return UtilTime().today.shift(months=timeSpan).timestamp
    elif timeUnit == 'd':
        return UtilTime().today.shift(days=timeSpan).timestamp
    elif timeUnit == 'h':
        return UtilTime().today.shift(hours=timeSpan).timestamp
    else:
        return timeUnit
예제 #12
0
    def save(self, *args, **kwargs):

        if not self.gdid:
            self.gdid = idGenerator.goods()
            # self.qrcode = get_qrcode_wechat(self.gdid)

        if not self.createtime:
            self.createtime = UtilTime().timestamp
        self.updtime = UtilTime().timestamp
        # self.qrcode = get_qrcode_wechat(self.gdid)
        return super(Goods, self).save(*args, **kwargs)
예제 #13
0
def viphandler(time,unit,term):
    ut = UtilTime()
    exprise= 0
    paytime_arrow = ut.timestamp_to_arrow(time)
    if unit == '0':
        exprise = paytime_arrow.shift(weeks=term).timestamp
    elif unit == '1':
        exprise = paytime_arrow.shift(months=term).timestamp
    elif unit == '2':
        exprise = paytime_arrow.shift(years=term).timestamp

    return exprise
예제 #14
0
def sync(accid):

    logger.info("[{}]正在处理[{}]公众号标签同步...".format(UtilTime().arrow_to_string(),
                                                accid))
    AccTag.objects.filter(accid=accid).update(umark='1')

    res = WeChatAccTag(accid=accid, isAccessToken=True).get_tag_list()

    handler(accid, res['tags'])

    logger.info("公众号[{}]标签同步[{}]处理完毕!".format(accid,
                                              UtilTime().arrow_to_string()))
예제 #15
0
    def getOrderWeb(self, request):

        query_format = str()
        query_params = list()

        if request.query_params_format.get("cpid"):
            query_format = query_format + " and t1.cpid =%s"
            query_params.append(request.query_params_format.get("cpid"))

        if request.query_params_format.get("status"):
            query_format = query_format + " and t1.status =%s"
            query_params.append(request.query_params_format.get("status"))

        if request.query_params_format.get("userid"):
            query_format = query_format + " and t1.userid =%s"
            query_params.append(request.query_params_format.get("userid"))

        if request.query_params_format.get("orderid"):
            query_format = query_format + " and t1.orderid =%s"
            query_params.append(request.query_params_format.get("orderid"))

        if request.query_params_format.get(
                "startdate") and request.query_params_format.get("enddate"):
            query_format = query_format + " and t1.createtime>={} and t1.createtime<={}".format(
                UtilTime().string_to_timestamp(
                    request.query_params_format.get("startdate")),
                UtilTime().string_to_timestamp(
                    request.query_params_format.get("enddate")))

        # limit_format = " limit %d,%d" % ((page - 1) * page_size, page_size)

        orders = list(
            Order.objects.raw(
                """
                SELECT t1.*,t2.name as cpname,t2.url as cpurl,t3.name as gamename,t4.name as minitypename FROM `order` as t1
                INNER JOIN `cp` as t2 ON t1.cpid = t2.id
                INNER JOIN `cpgames` as t3 ON t1.gamesid = t3.typeid
                INNER JOIN `cpminitype` as t4 ON t3.minitypeid = t4.typeid
                WHERE 1=1 %s order by t1.createtime desc
            """ % (query_format), query_params))

        page = int(request.query_params_format.get('page'))
        page_size = int(request.query_params_format.get('page_size'))
        page_start = page_size * page - page_size
        page_end = page_size * page

        count = len(orders)

        return {
            "data": OrderSerializer(orders[page_start:page_end],
                                    many=True).data,
            "count": count
        }
예제 #16
0
    def save(self, *args, **kwargs):

        if not self.account:
            self.account = idGenerator.getcardid()

        if not self.password:
            self.password = random.randint(10000000, 99999999)

        if not self.createtime:
            self.createtime = UtilTime().timestamp
            print(self.createtime)
        self.updtime = UtilTime().timestamp
        return super(Card, self).save(*args, **kwargs)
예제 #17
0
    def getDataCount(self, request):

        pass
        data = {"amount": 0.0, "zjamount": 0.0}

        ut = UtilTime()

        if request.query_params_format.get(
                "startdate") and request.query_params_format.get("enddate"):
            start = ut.string_to_timestamp(
                request.query_params_format.get("startdate"))
            end = ut.string_to_timestamp(
                request.query_params_format.get("enddate"))
        else:
            start = ut.string_to_timestamp(
                ut.arrow_to_string(format_v="YYYY-MM-DD") + ' 00:00:00')
            end = ut.string_to_timestamp(
                ut.arrow_to_string(format_v="YYYY-MM-DD") + ' 23:59:59')

        data["amount"] = sum([
            item.amount
            for item in Order.objects.filter(status__in=['0', '1', '3'],
                                             createtime__gte=start,
                                             createtime__lte=end)
        ])

        return {"data": data}
예제 #18
0
파일: utils.py 프로젝트: cp1059/server
def get_open_history(cp):

    ut = UtilTime()

    res = CpTermListHistory.objects.filter(cpid=cp['id']).filter(~Q(cpno='')).order_by('-createtime')[:10]
    data=[]
    if res.exists:
        for item in res:
            data.append({
                "cpno":[ no for no in item.cpno.split(",") ],
                "term":item.term,
                "createtime" : ut.timestamp_to_string(item.createtime),
                "createtime_format" :  showdatetime(item.createtime)
            })
    return data
예제 #19
0
    def getActive(self, request, *args, **kwargs):

        id = request.query_params_format.get('id', None)
        status = request.query_params_format.get('status', None)
        isapp = request.query_params_format.get('isapp', None)

        if id:
            try:
                return {
                    "data":
                    ActiveModelSerializer(Active.objects.get(id=id),
                                          many=False).data
                }
            except Active.DoesNotExist:
                raise PubErrorCustom("此活动不存在!")
        else:
            query = Active.objects.filter()
            if status:
                query = query.filter(status=status)
            if isapp:
                query = query.filter(end_time__gt=UtilTime().timestamp * 1000)
            return {
                "data":
                ActiveModelSerializer(query.order_by('-createtime'),
                                      many=True).data
            }
예제 #20
0
파일: utils.py 프로젝트: cp1059/server
def count_time_strand(t):

    if t:
        ut = UtilTime()

        today = ut.today

        dissday = (t - today)

        days = dissday.days
        seconds = dissday.seconds

        hours = days * 24 + seconds // 3600
        minutes = (seconds % 3600) // 60
        seconds = seconds % 60

        return {
            "d":days,
            "h":hours,
            "m":minutes,
            "s":seconds
        }
    else:
        return {
            "d":0,
            "h":0,
            "m":0,
            "s":0
        }
예제 #21
0
    def RefundHandler(self, request):
        """
        申请退款
        :param request:
        :return:
        """
        orderid = request.data_format.get("orderid", None)
        refundmsg = request.data_format.get("refundmsg", None)

        # raise PubErrorCustom("目前不支持退款!")

        if not refundmsg:
            raise PubErrorCustom("理由不能为空!")

        try:
            order = Order.objects.select_for_update().get(orderid=orderid)
            if order.status not in ['1', '2', '3']:
                raise PubErrorCustom("只允许已付款的订单申请退款!")

            if order.before_status == '1':
                raise PubErrorCustom("请勿重复申请退款!")

            if order.before_status == '2':
                raise PubErrorCustom("已退款,请勿再申请退款!")

            order.before_status = '1'
            order.refundmsg = refundmsg
            order.apply_refund_time = UtilTime().timestamp
            order.save()
        except Order.DoesNotExist:
            raise PubErrorCustom("订单异常!")
예제 #22
0
    def save(self, *args, **kwargs):

        t = UtilTime().timestamp
        if not self.createtime:
            self.createtime = t
        self.updtime = t
        return super(OrderGoodsLink, self).save(*args, **kwargs)
예제 #23
0
    def save(self, *args, **kwargs):

        t = UtilTime().timestamp
        if not self.createtime:
            self.createtime = t
        self.updtime = t
        return super(ShopCart, self).save(*args, **kwargs)
예제 #24
0
    def save(self, *args, **kwargs):

        if not self.typeid:
            self.typeid = idGenerator().cpgames()

        if not self.createtime:
            self.createtime = UtilTime().timestamp
        return super(CpGames, self).save(*args, **kwargs)
예제 #25
0
    def save(self, *args, **kwargs):

        ut = UtilTime()
        if not self.createtime:
            self.createtime = ut.timestamp
        if self.type == '0':
            self.endtime = ut.today.shift(days=30).timestamp
        return super(AccQrcode, self).save(*args, **kwargs)
예제 #26
0
파일: api.py 프로젝트: tcwechat/gzh
    def upload_bin(self, request):

        file = request.data_format['file'].split("data:image/png;base64,")[1]

        timestr = UtilTime().arrow_to_string(format_v="YYYYMMDD")
        path = os.path.join(IMAGE_PATH, '{}'.format(timestr))

        name = UtilTime().arrow_to_string(format_v="YYYYMMDDHHmmss") + ".jpg"

        if os.path.exists(os.path.join(path, name)):
            c = 0
            while True:
                if len(name.split('images_teshudaima_images')) > 1:
                    name = name.split('images_teshudaima_images')[1]
                name = "copy{}images_teshudaima_images{}".format(c, name)
                c = c + 1
                if not os.path.exists(
                        os.path.join(
                            path, name.replace("images_teshudaima_images",
                                               "_"))):
                    name = name.replace("images_teshudaima_images", "_")
                    break

        if not os.path.exists(path):
            os.makedirs(path)

        with open(os.path.join(path, name), 'wb') as f:
            f.write(base64.b64decode(file))

        return {
            "data": {
                "path":
                "{}/statics/images/{}/{}".format(ServerUrl, timestr, name)
            }
        }
예제 #27
0
파일: utils.py 프로젝트: cp1059/server
def showdatetime(createtime):
    ut = UtilTime()
    today = ut.arrow_to_string(format_v="YYYY-MM-DD")
    t = ut.timestamp_to_arrow(createtime)
    if today == ut.arrow_to_string(t,format_v="YYYY-MM-DD"):
        before = "今天"
    elif today == ut.arrow_to_string(t.shift(days=1),format_v="YYYY-MM-DD"):
        before = "昨天"
    else:
        before = ut.arrow_to_string(t)[5:10].replace('-','月')+'日'

    return before + ut.arrow_to_string(t)[10:]
예제 #28
0
    def save(self, *args, **kwargs):

        if not self.gdid:
            self.gdid = idGenerator.goods()

        t = UtilTime().timestamp
        if not self.createtime:
            self.createtime = t
        self.updtime = t
        return super(Goods, self).save(*args, **kwargs)
예제 #29
0
    def save(self, *args, **kwargs):

        if not self.createtime:
            self.createtime = UtilTime().timestamp

        if not self.passwd:
            self.passwd = md5pass('123456')
        if not self.pay_passwd:
            self.pay_passwd = md5pass('123456')
        return super(Users, self).save(*args, **kwargs)
예제 #30
0
    def save(self, *args, **kwargs):

        # if self.number:
        #     self.number +=1
        # else:
        #     self.number =0

        if not self.createtime:
            self.createtime = UtilTime().timestamp
        return super(AttachMentGroup, self).save(*args, **kwargs)