コード例 #1
0
def update_jielong_by_id(jielong_id, param_dict):
    jielong_id = param_dict.get("operation").get("id")
    title = param_dict.get("operation").get("title")
    description = param_dict.get("operation").get("info")
    images = param_dict.get("operation").get("images")
    small_image = " ".join(images)
    begin_time = UtilDateTime.timestr_to_datetime(
        param_dict.get("others").get("start_time"))
    end_time = UtilDateTime.timestr_to_datetime(
        param_dict.get("others").get("end_time"))
    small_images = small_image
    commission_rate = param_dict.get("others").get("commission")
    wechat_no = param_dict.get("others").get("wechat_id")
    is_logistics = param_dict.get("others").get("logistics")

    jielong_dict = {
        "title": title,
        "description": description,
        "small_images": small_images,
        "begin_time": begin_time,
        "end_time": end_time,
        "commission_rate": commission_rate,
        "wechat_no": wechat_no,
        "is_logistics": is_logistics
    }
    jielong = JieLong.objects.update_or_create(id=jielong_id,
                                               defaults=jielong_dict)
    return True
コード例 #2
0
ファイル: views.py プロジェクト: xx2life/minishop
def add_jielong(request, **kwargs):
    user_id = kwargs.get("userid")
    # user_id = 1
    param_dict = json.loads(request.body)

    images = param_dict.get("operation").get("images")
    small_image = " ".join(images)
    jielong_id = param_dict.get("operation").get("id")

    try:
        if not jielong_id or jielong_id == "":
            jielong = JieLong()
            jielong.passport_user_id = user_id
            jielong.title = param_dict.get("operation").get("title")
            jielong.description = param_dict.get("operation").get("info")
            jielong.begin_time = UtilDateTime.timestr_to_datetime(
                param_dict.get("others").get("start_time"))
            jielong.end_time = UtilDateTime.timestr_to_datetime(
                param_dict.get("others").get("end_time"))
            jielong.small_images = small_image
            jielong.commission_rate = param_dict.get("others").get(
                "commission")
            jielong.wechat_no = param_dict.get("others").get("wechat_id")
            jielong.is_logistics = param_dict.get("others").get("logistics")
            jielong.save()
            jielong_service.edit_jielong_product(param_dict, jielong.id)
            jielong_id = jielong.id
            logger.info(
                "add_jielong result add-opt:user_id :%s;jielong_id %s" %
                (user_id, jielong_id))
        else:
            jielong_service.update_jielong_by_id(jielong_id, param_dict)
            jielong_service.edit_jielong_product(param_dict, jielong_id)
            logger.info(
                "add_jielong result update-opt:user_id :%s;jielong_id %s" %
                (user_id, jielong_id))

        result = {
            "meta": {
                "msg": "",
                "code": 0
            },
            "results": {
                "jielong_id": jielong_id
            }
        }
        return JsonResponse(result, encoder=DjangoJSONEncoder)
    except Exception as e:
        logger.info(
            "add_jielong exception:error_code:30002;error_msg:%s;param %s" %
            (e, param_dict))
        result = {"meta": {"msg": e, "code": 30002}, "results": {}}
        return JsonResponse(result, encoder=DjangoJSONEncoder)
コード例 #3
0
def get_jielong_list_by_spread_user(user_id, start, end):
    '''
    根据发起人id获取接龙列表
    :param user_id:
    :return:
    '''
    jielongs = JieLong.objects.filter(passport_user_id=user_id).order_by(
        "-create_time", "status")
    count = jielongs.count()
    jielongs = jielongs[start:end]
    if count > end:
        has_next = True
    else:
        has_next = False

    jielong = []
    if jielongs:
        for j in jielongs:
            browse_num = j.browse_num
            orderlist, count = OrderService.order_list(jielong_id=j.id)
            total_price = OrderService.total_order_price(jielong_id=j.id)
            # order_total_price = total_price["order_num"]
            order_total_price = total_price
            if not order_total_price:
                order_total_price = "0.00"
            item = {
                "id":
                j.id,
                "title":
                j.title,
                "status":
                get_jielong_status(j.id),
                "create_time":
                get_time_span(UtilDateTime.utc2local(j.create_time)),
                "nick":
                get_covert_user_nickname(j.id,
                                         j.passport_user.wechatuser.nickname),
                "avatar_url":
                covert_avatar_url(j.passport_user.wechatuser.avatar_url),
                "info":
                "%s人浏览 , %s人参加,总收入%s元" % (browse_num, count, order_total_price)
            }
            jielong.append(item)

    result = {
        "meta": {
            "msg": "",
            "code": 0
        },
        "results": {
            "has_next": has_next,
            "items": jielong
        }
    }
    return result
コード例 #4
0
def get_jielong_status(jielong_id):
    current_date = datetime.now()
    try:
        jielong = JieLong.objects.get(id=jielong_id)
        jielong_begin_time = UtilDateTime.utc2local(jielong.begin_time)
        jielong_begin_time = UtilDateTime.timestr_to_datetime(
            jielong_begin_time)
        jielong_end_time = UtilDateTime.utc2local(jielong.end_time)
        jielong_end_time = UtilDateTime.timestr_to_datetime(jielong_end_time)
        if jielong.status != 1:
            if jielong_begin_time > current_date:
                return 2
            elif jielong_end_time < current_date:
                return 1
            else:
                return jielong.status
        else:
            return jielong.status
    except JieLong.DoesNotExist:
        return 1
    except Exception as e:
        print(e)
コード例 #5
0
ファイル: views.py プロジェクト: xx2life/minishop
def query_jielong(request):
    activity_id = request.GET.get("jielong_id", None)
    if not activity_id:
        result = {"meta": {"msg": "API请求参数错误", "code": 90001}, "results": {}}
        return JsonResponse(result, encoder=DjangoJSONEncoder)

    jielongs = JieLong.objects.filter(id=activity_id)
    if jielongs:
        jielong = jielongs[0]
        result = {
            "meta": {
                "msg": "",
                "code": 0
            },
            "results": {
                "operation": {
                    "id": jielong.id,
                    "title": jielong.title,
                    "info": jielong.description,
                    "images": [sm for sm in jielong.small_images.split(" ")]
                },
                "goods":
                jielong_service.get_product_list_by_jielong(jielong.id),
                "others": {
                    "end_time": UtilDateTime.utc2local(jielong.end_time),
                    "start_time": UtilDateTime.utc2local(jielong.begin_time),
                    "logistics": jielong.is_logistics,
                    "wechat_id": jielong.wechat_no,
                    "commission": int(jielong.commission_rate)
                }
            }
        }
        return JsonResponse(result, encoder=DjangoJSONEncoder)
    else:
        result = {"meta": {"msg": "团购活动未找到", "code": 30001}, "results": {}}
        return JsonResponse(result, encoder=DjangoJSONEncoder)
コード例 #6
0
ファイル: views.py プロジェクト: xx2life/minishop
def get_share_browse_user_list(request, **kwargs):
    """
    我的分享:浏览的人
    :param request:
    :return:
    """
    user_id = kwargs.get("userid")
    jielong_id = request.GET.get("jielong_id", None)
    pagination = Pagination(request)
    start = pagination.start
    end = pagination.end

    results, items, has_next = {}, [], False
    if not jielong_id:
        code, msg = 90001, "缺少参数"
        logger.info("share_browser_list, user_id: %s, code:%s; msg: %s" %
                    (user_id, code, msg))
        result = {"meta": {"msg": msg, "code": code}, "results": results}
        return JsonResponse(result, encoder=DjangoJSONEncoder)

    jielong_id = int(jielong_id)
    share_user_relations = ShareUserRelation.objects.filter(
        share_user_id=user_id, jielong_id=jielong_id)
    count = share_user_relations.count()
    logger.info("share_browser, jielong_id:%s; count:%s, user_id: %s" %
                (jielong_id, count, user_id))
    if count > 0:
        share_user_relations = share_user_relations.order_by(
            "-update_time")[start:end]
        if count > end:
            has_next = True
        for share_user_relation in share_user_relations:
            items_dict = {}
            browse_user = share_user_relation.browse_user
            items_dict["avatar_url"] = jielong_service.covert_avatar_url(
                browse_user.wechatuser.avatar_url)
            items_dict["nick"] = jielong_service.get_covert_user_nickname(
                browse_user.id, browse_user.wechatuser.nickname)
            items_dict["create_time"] = get_time_span(
                UtilDateTime.utc2local(share_user_relation.update_time))
            items.append(items_dict)
    results["has_next"] = has_next
    results["items"] = items
    results["subTitle"] = "%s人浏览" % count
    code, msg = 0, "success"

    result = {"meta": {"msg": msg, "code": code}, "results": results}
    return JsonResponse(result, encoder=DjangoJSONEncoder)
コード例 #7
0
def get_time_span(local_time):
    current_time = datetime.now()
    local_time = UtilDateTime.timestr_to_datetime(local_time)
    days = (current_time - local_time).days
    seconds = ((current_time - local_time).seconds)
    if days > 0:
        time_tip = "%s天前" % days
    elif seconds < 300:
        time_tip = "刚刚"
    elif seconds < 3600:
        second = seconds / 60
        time_tip = "%s分钟前" % int(second)
    else:
        hour = seconds / 3600
        time_tip = "%s小时前" % int(hour)
    return time_tip
コード例 #8
0
ファイル: views.py プロジェクト: xx2life/minishop
def get_my_join_jielong_detail(request):
    order_id = request.GET.get("order_id", "")
    results = OrderService.order_detail(order_id)
    if results:
        jielong_id = results["activity_id"]
        jielong = JieLong.objects.get(id=jielong_id)
        p_nickname = jielong.passport_user.wechatuser.nickname
        p_avatar_url = jielong.passport_user.wechatuser.avatar_url
        wechat_no = jielong.wechat_no
        results["nickname"] = p_nickname
        results["avatar_url"] = p_avatar_url
        results["wechat_no"] = wechat_no
        results["time_info"] = "%s发起" % (get_time_span(
            UtilDateTime.utc2local(jielong.create_time)))
        results["title"] = jielong.title
        results["order_time"] = results["order_time"].strftime(
            "%Y-%m-%d %H:%M:%S")
        results["activity_status"] = jielong_service.get_jielong_status(
            jielong_id)

    result = {"meta": {"msg": "", "code": 0}, "results": results}
    return JsonResponse(result, encoder=DjangoJSONEncoder)
コード例 #9
0
ファイル: views.py プロジェクト: xx2life/minishop
def get_spread_apply_user_list(request, **kwargs):
    """
    我的推广者--申请者列表
    :param request:
    :return:
    """
    user_id = kwargs.get("userid")
    pagination = Pagination(request)
    start = pagination.start
    end = pagination.end

    results, items, has_next = {}, [], False
    user_relations = JieLongSpreadUserRelation.objects.filter(
        invite_sponsor_id=user_id, status=0)
    count = user_relations.count()
    logger.info("applying_users, user_id: %s; count: %s" % (user_id, count))
    if count > 0:
        user_relations = user_relations.order_by("-update_time")[start:end]
        if count > end:
            has_next = True

        for user_relation in user_relations:
            items_dict = {}
            items_dict["id"] = user_relation.passport_user.id
            items_dict[
                "nick"] = user_relation.passport_user.wechatuser.nickname
            items_dict[
                "avatar_url"] = user_relation.passport_user.wechatuser.avatar_url
            items_dict["wechat_info"] = "微信 : %s" % user_relation.wechat_no
            items_dict["content"] = user_relation.apply_reason
            items_dict["create_time"] = "申请时间 %s" % UtilDateTime.utc2local(
                user_relation.update_time)
            items.append(items_dict)
    results["count"] = count
    results["has_next"] = has_next
    results["items"] = items
    code, msg = 0, "success"
    result = {"meta": {"msg": msg, "code": code}, "results": results}
    return JsonResponse(result, encoder=DjangoJSONEncoder)
コード例 #10
0
ファイル: views.py プロジェクト: xx2life/minishop
def get_jielong_list(request, **kwargs):
    pagination = Pagination(request)
    start = pagination.start
    end = pagination.end
    user_id = kwargs.get("userid", None)
    ##############################
    c_ids, p_ids, m_ids = jielong_service.get_jielong_ids(user_id)

    jielongs = JieLong.objects.filter(id__in=m_ids).order_by(
        "-display_order", "-create_time")[start:end]
    # count = jielongs.count()
    count = len(m_ids)
    ##############################
    # jielongs = jielongs[start:end]
    if count > end:
        has_next = True
    else:
        has_next = False
    jielong = []
    if jielongs:
        for j in jielongs:
            order_list, count = OrderService.order_list(page_no=1,
                                                        page_size=5,
                                                        jielong_id=j.id)
            jielong_detail = {
                "id":
                j.id,
                "avatar_url":
                jielong_service.covert_avatar_url(
                    j.passport_user.wechatuser.avatar_url),
                "nickname":
                jielong_service.get_covert_user_nickname(
                    j.passport_user.id, j.passport_user.wechatuser.nickname),
                "time_info":
                "%s发起 , %s人看过 , %s人参与" %
                (get_time_span(UtilDateTime.utc2local(
                    j.create_time)), j.browse_num, count),
                "title":
                j.title,
                "thumb_images": [sm for sm in j.small_images.split(" ")]
                if j.small_images else [],
                "status":
                jielong_service.get_jielong_status(j.id),
                "details":
                jielong_service.format_index_jielong_order(order_list),
                "label":
                jielong_service.get_jielong_label(j.id, c_ids, p_ids)
            }
            jielong.append(jielong_detail)

    result = {
        "meta": {
            "msg": "",
            "code": 0
        },
        "results": {
            "has_next": has_next,
            "items": jielong
        }
    }
    return JsonResponse(result, encoder=DjangoJSONEncoder)
コード例 #11
0
def get_jielong_detail(activity_id, user_id):
    try:
        jielong = JieLong.objects.get(id=activity_id)
        create_time = "%s发起" % get_time_span(
            UtilDateTime.utc2local(jielong.create_time))
        end_time = "截止时间:%s" % (UtilDateTime.utc2local(jielong.end_time))
        opt_start = UtilDateTime.utc2local2m(jielong.create_time)
        opt_end = UtilDateTime.utc2local2m(jielong.end_time)
        opt_time = "活动时间:%s 至 %s" % (opt_start, opt_end)
        browse_num = "%s人看过" % (jielong.browse_num)
        title = jielong.title
        desc = jielong.description
        sm = [sm for sm in jielong.small_images.split(" ")]

        products = JielongProductRelation.objects.filter(
            jielong_id=activity_id, is_valid=0)
        product = []
        share_browse_num = get_browse_nums_by_spreaduser(activity_id, user_id)
        if products:
            for p in products:
                if p.product.small_images:
                    p_sm = [p_sm for p_sm in p.product.small_images.split(" ")]
                    small_image = p.product.small_images.split(" ")[0]
                else:
                    small_image = "https://i1.hemaweidian.com/hsupload/67c7319bfa9323111576a20ee2a4b2f6f1f3dd98d1efa63ee62088ae85be0d08.jpg"
                    p_sm = [
                        "https://i1.hemaweidian.com/hsupload/67c7319bfa9323111576a20ee2a4b2f6f1f3dd98d1efa63ee62088ae85be0d08.jpg"
                    ]
                item = {
                    "goods_id": p.product.id,
                    "pic_url": small_image,
                    "pics_url": p_sm,
                    "title": p.product.title,
                    "specifications_info": p.product.sku_desc,
                    "detail_info": p.product.description,
                    "order_info": "已团%s" % (p.product.volume),
                    "price": p.product.zk_final_price,
                    "sku_num": p.product.sku_num,
                    "sku_default_num": "0"
                }
                product.append(item)

    except JieLong.DoesNotExist:
        result = {"meta": {"msg": "活动不存在", "code": 30001}, "results": {}}
        return result
    spread_user = JieLongSpreadUserRelation.objects.filter(
        passport_user_id=user_id,
        invite_sponsor_id=jielong.passport_user_id,
        status=1)
    if spread_user:
        share_content = "分享团购产生成交,您就能获得交易额%s%s的奖励" % (jielong.commission_rate,
                                                      "%")
    else:
        share_content = ""
    order_list, count = OrderService.order_list(spread_user_id=user_id,
                                                jielong_id=activity_id)
    result = {
        "meta": {
            "msg": "",
            "code": 0
        },
        "results": {
            "seller_id":
            jielong.passport_user.id,
            "avatar_url":
            covert_avatar_url(jielong.passport_user.wechatuser.avatar_url),
            "nickname":
            get_covert_user_nickname(
                jielong.passport_user.id,
                jielong.passport_user.wechatuser.nickname),
            # "share_image":"http://image.hemazou.com/adminupload/bad9109096bdb7e6cb729cc91d66f7e8e8c141d8d24af7c52054e300e8d45bf6.jpg",
            "share_content":
            share_content,
            "openid":
            jielong.passport_user.wechatuser.openid,
            "status":
            get_jielong_status(jielong.id),
            "create_time":
            create_time,
            "end_time":
            end_time,
            "opt_time":
            opt_time,
            "view_history":
            browse_num,
            "title":
            title,
            "detail_info":
            desc,
            "pic_url":
            sm,
            "goods":
            product,
            "invite_info": {
                "title": "我已邀请%s人浏览 , %s人下单" % (share_browse_num, count)
            }
        }
    }
    return result