Beispiel #1
0
def wx_get_ad(req):
    """
   微信小程序获取收藏列表
   :param req:
   :return:
   """

    db = Mysql()
    sql1 = "SELECT count(1) from `ad`;"
    result = db.getOne(sql1)
    if result['count(1)'] != 0:

        sql = "SELECT * from `ad` ORDER by `atime` desc LIMIT 1;"

        count = (db.getOne(sql))
        print(count)
        db.dispose()
        if count:
            resp = {"code": 0, "msg": "success", "data": count['info']}
        else:
            resp = {"code": 1, "msg": "internal_exceptions"}
    else:
        resp = {"code": 2, "msg": "no ad"}

    return HttpResponse(json.dumps(resp), content_type="application/json")
Beispiel #2
0
def order_detail(req):
    logger.debug('订单详情传入参数:' + str(req.GET))
    data = req.GET.copy()
    resp = ''
    db = Mysql()
    result = db.getOne(
        "SELECT c.*,d.name as type,d.price FROM ((SELECT a.*,b.name,b.phone FROM( SELECT * FROM vip_order WHERE `order_serial_number` = '%s') a INNER JOIN person b ON a.person_id = b.id)) c INNER JOIN order_category d ON c.order_category_id = d.id "
        % (data['order_serial_number']))
    logger.debug(result)
    if result:
        valid_point = db.getOne(
            "select sum(point) as valid_point from point_detail where person_id = '%s'"
            % result['person_id'])['valid_point']
        if not valid_point:
            valid_point = 0
        logger.debug(valid_point)
        good_value_list = db.getAll(
            "select SUM(a.good_count) as good_count,b.name,b.price from (select good_id,good_count from order_good_item WHERE order_id = '%s'  ) a INNER JOIN good b on a.good_id = b.id GROUP BY a.good_id"
            % result['id'])
        server_value_list = db.getAll(
            "select SUM(server_count) as server_count,b.name,b.price from (select server_id,server_count from order_server_item where order_id = '%s' ) a INNER JOIN server b on a.server_id = b.id GROUP BY a.server_id"
            % result['id'])
        # print(good_value_list)
        good_value = 0
        server_value = 0

        for x in good_value_list:
            good_value = good_value + (x['price'] * int(x['good_count']))
            x['good_count'] = str(x['good_count'])

        logger.debug('商品消费为:' + str(good_value) + '元')

        for y in server_value_list:
            # print(y)
            server_value = server_value + (y['price'] * int(y['server_count']))
            y['server_count'] = str(y['server_count'])
        logger.debug('服务消费为:' + str(server_value) + '元')

        # 目前除去优惠和延时费用的总消费价格
        now_value = good_value + server_value
        resp = {
            "code": 0,
            "msg": "",
            "name": result['name'],
            "valid_point": valid_point,
            "site_money": float(result['price']),
            "money": str(now_value),
            "lay_value": result['lay_value'],
            "free_value": result['free_value'],
            "order_serial_number": result['order_serial_number'],
            "type": result['type'],
            "state": result['order_status'],
            "start_time": str(result['create_time']),
            "end_time": str(result['end_time']),
            "server": list(server_value_list),
            "good": list(good_value_list)
        }
        db.dispose()
    return HttpResponse(json.dumps(resp), content_type="application/json")
Beispiel #3
0
def manager_login(req):
    """
    管理者账号登录
    :param req:
    :return:
    """
    resp = ''
    username = req.POST.get('username')
    password = req.POST.get('password')
    sql = "SELECT * from manager where username ='******' and password='******'" % (
        username, password)
    db = Mysql()
    result = db.getOne(sql)
    if result:
        access_token = jwt.create_token(username)

        in_result = db.insertOne(
            "INSERT INTO `vms`.`t_token`(`user_id`,`token`, `time`) VALUES ('%s','%s', now());"
            % (result['id'], access_token))

        if in_result:
            # print(access_token)
            resp = {
                "code": 0,
                "msg": "登入成功",
                "data": {
                    "access_token": access_token
                }
            }
            return HttpResponse(json.dumps(resp),
                                content_type="application/json")
    resp = {"code": 1, "msg": "登入失败", "data": {}}
    db.dispose()
    return HttpResponse(json.dumps(resp), content_type="application/json")
Beispiel #4
0
def change_assword(req):
    resp = ''
    token = req.POST.get('access_token')
    db =Mysql()
    result = db.getOne("select * from t_token  a INNER JOIN manager b  ON a.user_id = b.id  and b.`password` ='%s' and a.token = '%s'"%(req.POST.get('oldPassword'),token))

    if result:
        sql2 = "UPDATE manager SET `password` ='%s' WHERE id = '%s'"%(req.POST.get('password'),result['user_id'])
        if db.update(sql2):
            resp ={
              "code": 0
              ,"msg": "success"
              ,"data": {

              }
            }
        else:
            resp = {
                "code": 1
                , "msg": "failed"
                , "data": {

                }
            }
    else:
        resp = {
            "code": 2
            , "msg": "failed"
            , "data": {

            }
        }
    return HttpResponse(json.dumps(resp), content_type="application/json")
Beispiel #5
0
def edit_server(req):
    """
    编辑服务
    :param req:
    :return:
    """
    logger.debug('更新服务传入参数:' + str(req.POST))
    data = req.POST.copy()
    logger.debug(data)

    sql2 = "SELECT * from server where `name` ='%s' and id != '%s'" % (data['name'], data['id'])
    logger.debug(sql2)

    db = Mysql()
    is_exist = db.getAll(sql2)

    if(is_exist):
        # 无法更新为已存在服务
        resp = {
            "code": 2,
            "msg": "server_is_exist"
        }
        logger.debug('更新失败,商品已存在')
    else:
        result = db.getOne("SELECT * from server where id = '%s'" % data['id'])
        # print(result)
        if result['name']== data['name'] and float(result['price']) == float(data['price']) and int(result['server_category_id']) == int(data['type']) :
            # 服务未更改无需更新
            resp = {
                "code": 2,
                "msg": "nothing is changed"
            }
            logger.debug('服务异常,服务更新失败')
        else:
            sql = "UPDATE server SET  `name` = '%s',server_category_id= '%s',price='%s' WHERE id='%s'" % (data['name'], data['type'], data['price'],data['id'])
            logger.debug(sql)
            dd = db.update(sql)
            # print(dd)
            db.dispose()
            if dd != 0:
                # 服务更新成功
                resp = {
                    "code": 0,
                    "msg": "success"
                }
                logger.debug('服务更新成功')
            else:
                # 服务更新失败
                resp = {
                    "code": 1,
                    "msg": "internal_exceptions"
                }
                logger.debug('服务异常,服务更新失败')

    return HttpResponse(json.dumps(resp), content_type="application/json")
Beispiel #6
0
def wx_good_detail(req):
    """

    微信小程序获取商品详情
    :param req:
    :return:
    """
    post_dic = req.POST
    logger.debug("微信小程序获取商品详情传入参数:" + str(post_dic))
    sql = "SELECT * FROM good where id = %s;" % post_dic['id']
    db = Mysql()
    result = db.getOne(sql)
    # print(result)
    images_str = ""
    info_str = ""
    print(result['img_urls'])
    if result['img_urls'] != '':
        images = result['img_urls'].split(',')

        if images:
            for img in images:
                images_str = images_str + "<p><img src=\"%s\" style=\"\" title=\"\"/></p>" % img
        else:
            images_str = ""
        print(images_str)

    good_info = result['good_info']
    if not good_info:
        info_str = "品质消费,好而不贵。"
    else:
        info_str = good_info
    resp = {
        "code": 0,
        "msg": "success",
        "data": {
            "content":
            "<p><span style=\"color: rgb(102, 102, 102); font-family: Arial, &quot;Microsoft YaHei&quot;, SimSun; font-size: 12px; margin:10px 10px 10px 10px;background-color: rgb(255, 255, 255);\">%s</span></p>"
            % info_str + images_str,
            "basicInfo": {
                "id": result['id'],
                "name": result['name'],
                "minPrice": result['price'],
                "originalPrice": result['origin_price'],
                "pic": result['img_url'],
                "categoryId": result['good_category_id'],
                "statusStr": result['status']
            }
        }
    }
    db.dispose()
    return HttpResponse(json.dumps(resp), content_type="application/json")
Beispiel #7
0
def edit_server(req):
    """
    编辑分类
    :param req:
    :return:
    """
    logger.debug('更新传入参数:' + str(req.POST))
    data = req.POST.copy()
    logger.debug(data)

    sql2 = "SELECT * from good_category where `name` ='%s' and id != '%s'" % (
        data['name'], data['id'])
    logger.debug(sql2)
    db = Mysql()
    is_exist = db.getAll(sql2)

    if is_exist:
        # 无法更新为已存在分类
        resp = {"code": 2, "msg": "server_is_exist"}
        logger.debug('更新失败,分类已存在')
    else:
        result = db.getOne("SELECT * from good_category where id = '%s'" %
                           data['id'])
        # print(result)
        if result['name'] == data['name'] and int(result['sort']) == int(
                data['sort']):
            # 分类未更改无需更新
            resp = {"code": 2, "msg": "nothing is changed"}
            logger.debug('未变更,无需更新')
        else:
            sql = "UPDATE good_category SET  `name` = '%s',`sort`= '%s' WHERE id='%s'" % (
                data['name'], data['sort'], data['id'])
            logger.debug(sql)
            dd = db.update(sql)
            # print(dd)
            db.dispose()
            if dd != 0:
                # 分类更新成功
                resp = {"code": 0, "msg": "success"}
                logger.debug('分类更新成功')
            else:
                # 分类更新失败
                resp = {"code": 1, "msg": "internal_exceptions"}
                logger.debug('分类异常,分类更新失败')

    return HttpResponse(json.dumps(resp), content_type="application/json")
Beispiel #8
0
def end_order(req):
    logger.debug('结账传入参数:' + str(req.POST))
    data = req.POST.copy()
    resp = ''
    db = Mysql()
    result = db.getOne(
        "SELECT c.*,d.name as type,d.price FROM ((SELECT a.*,b.name,b.phone FROM( SELECT * FROM vip_order WHERE `order_serial_number` = '%s' ) a INNER JOIN person b ON a.person_id = b.id)) c INNER JOIN order_category d ON c.order_category_id = d.id " % (
        data['orderid']))
    point = db.getOne("select SUM(point) as valid_point from point_detail where person_id ='%s'"%result['person_id'])
    # print(point)
    logger.debug(result)
    if result:
        if data['free_value'] == '':
            data['free_value'] = 0
        if data['lay_value'] == '':
            data['lay_value'] = 0
        all_money = float(data['site_money'])+ float(data['money'])+float(data['lay_value'])-float(data['free_value'])
        sql_list = []
        offset_point = 0

        if data['type'] == '1':

            if point['valid_point']:
                sql2 = "INSERT INTO `vms`.`point_detail`( `person_id`, `order_id`, `type`, `point`, `create_time`) VALUES ('%s', '%s', 1,'%s', now());"%(result['person_id'],result['id'],str(0-int(float(point['valid_point']))/10*10))
                sql_list.append(sql2)
                offset_point = int(float(point['valid_point'])) / 10
            else:
                point = 0


        elif data['type'] == '2':
            pass
        elif data['type'] == '3' :
            if float(data['my_point']) <= float(point['valid_point']):
                offset_point = int(float(data['my_point']))/10
                sql2 = "INSERT INTO `vms`.`point_detail`( `person_id`, `order_id`, `type`, `point`, `create_time`) VALUES ('%s', '%s', 1,'%s', now());" % (
                result['person_id'], result['id'], str(0 - int(float(data['my_point']))/10*10))
                sql_list.append(sql2)
            else:
                resp = {
                    "code": 2,
                    "msg": "failed"
                }
                logger.debug('输入积分值大于可用积分值')
                return HttpResponse(json.dumps(resp), content_type="application/json")
        else:
            resp = {
                "code": 1,
                "msg": "failed"
            }
            logger.debug('结算失败')
            return HttpResponse(json.dumps(resp), content_type="application/json")
        sql = "UPDATE vip_order SET all_value = '%s',lay_value ='%s',free_value='%s', point_offset='%s',order_status=1,end_time=now() where order_serial_number = '%s'" % (
            all_money - offset_point, data['lay_value'], data['free_value'], offset_point, data['orderid'])
        sql3 = "INSERT INTO `vms`.`point_detail`( `person_id`, `order_id`, `type`, `point`, `create_time`) VALUES ('%s', '%s', 0,'%s', now());" % (
            result['person_id'], result['id'], all_money - offset_point)
        sql_list.append(sql)
        sql_list.append(sql3)
        # print(sql_list)
        count = db.excuteManysql(sql_list)
        # print(sql)
        # count = db.update(sql)
        # print(count)
        if count == len(sql_list):
            resp = {
                "code": 0,
                "msg": "success"
            }
            logger.debug('结算成功')
        else:
            resp = {
                "code": 1,
                "msg": "failed"
            }
            logger.debug('结算失败')
        db.dispose()
    else:
        resp = {
            "code": 1,
            "msg": "failed"
        }
        logger.debug('结算失败')
    return HttpResponse(json.dumps(resp), content_type="application/json")
Beispiel #9
0
def add_order(req):
    """
    订单添加
    :param req:
    :return:
    """
    logger.debug('订单生成传入参数:' + str(req.POST))
    data = req.POST.copy()
    db = Mysql()
    resp = ''
    good_list = []
    server_list = []
    sql_list = []
    for x in data:
        if 'good' in x and data[x] != '0':
            if x[4:] != '':
                good_list.append(x[4:] + '-' + data[x])
            else:
                logger.debug("未选取任何商品")
        elif 'server' in x and data[x] != '0':
            if x[6:] != '':
                server_list.append(x[6:7])
            else:
                logger.info("未选取任何服务")
        else:
            pass
    logger.info('本次商品清单:'.join(good_list))
    logger.info('本次服务清单:'.join(server_list))
    if 'new_dd' not in data:
        num = 1
        is_exist = db.getAll("SELECT * from vip_order where `person_id` ='%s'  and order_status = 0  " % (data['id']))
        if (is_exist):
            # 该会员已存在订单无法继续添加
            resp = {
                "code": 2,
                "msg": "main_order_is_exist"
            }
            logger.debug('订单生成失败,该会员主订单已存在')
            db.dispose()
        else:
            serial_num = time.strftime("%Y%m%d%H%M%S", time.localtime())
            #  price = db.getAll("SELECT price FROM order_category WHERE id ='%s'"%data['type'])
            #if price:
            sql = "INSERT INTO vip_order(`person_id`,`order_serial_number`, `order_status`, `order_category_id`, `create_time`, `notes`,`lay_value`, `free_value`) VALUES ('%s','%s','0', '%s', now(), '%s' ,'0','0');" % (
            data['id'],serial_num,data['type'], data['vip_notes'])
            dd = db.insertOne(sql)
            # print (dd)
            if dd != 0:
                # print (good_list)
                #print (server_list)
                for good in good_list:
                    sql_list.append("INSERT INTO `order_good_item`( `order_id`, `good_id`, `good_count`) VALUES ( '%s', '%s', '%s');"%(dd,good.split('-')[0],good.split('-')[1]))
                    now_count = db.getAll("select status from good WHERE id = '%s'"%(good.split('-')[0]))
                    # print(now_count)
                    if now_count:
                        # print (int(now_count[0]['status']))
                        # print (int(good.split('-')[1]))
                        left_count = (int(now_count[0]['status'])-int(good.split('-')[1]))
                        # print("UPDATE good SET status = '%s' WHERE id = '%s'"%(str(left_count),good.split('-')[0]))
                        sql_list.append("UPDATE good SET status = '%s' WHERE id = '%s'"%(str(left_count),good.split('-')[0]))
                    else:
                        return
                for server in server_list:
                    sql_list.append("INSERT INTO `vms`.`order_server_item` ( `order_id`, `server_id`, `server_count`) VALUES ('%s', '%s', '1');"%(dd,server))



                # print (sql_list)
                # print (len(sql_list))
                dd2 = db.inserGoodServer(num,dd,sql_list)
                logger.info('插入影响行数:'+str(dd2))
                db.dispose()

                if dd2 == len(sql_list):
                    resp = {
                        "code": 0,
                        "msg": "success"
                    }
                    logger.debug('订单生成成功')
                else:
                    resp = {
                        "code": 1,
                        "msg": "internal_exceptions"
                    }
                    logger.debug('订单生成失败')

    else:
        num = 2
        # 查询出主订单的id
        dd = db.getOne("SELECT id,free_value,lay_value FROM vip_order WHERE person_id ='%s' and order_status = 0"%data['id'])

        if dd:

            # 新增商品的sql语句插入sql_list以及商品消费
            for good in good_list:
                sql_list.append("INSERT INTO `order_good_item`( `order_id`, `good_id`, `good_count`) VALUES ( '%s', '%s', '%s');" % (
                    dd['id'], good.split('-')[0], good.split('-')[1]))
                now_count = db.getAll("select status from good WHERE id = '%s'" % (good.split('-')[0]))
                #  print(now_count)
                if now_count:
                    left_count = (int(now_count[0]['status']) - int(good.split('-')[1]))
                    # print("UPDATE good SET status = '%s' WHERE id = '%s'"%(str(left_count),good.split('-')[0]))
                    sql_list.append(
                        "UPDATE good SET status = '%s' WHERE id = '%s'" % (str(left_count), good.split('-')[0]))
                else:
                    return

            # 新增服务的sql语句插入sql_list
            for server in server_list:
                sql_list.append("INSERT INTO `vms`.`order_server_item` ( `order_id`, `server_id`, `server_count`) VALUES ('%s', '%s', '1');" % (
                    dd['id'], server))

            # # 延时费用和优惠费用的sql语句插入sql_list
            # if data['free_value'] == '' and data['lay_value'] == '':
            #     pass
            # else:
            #     if data['free_value'] == '':
            #         data['free_value'] = 0
            #     if data['lay_value'] == '':
            #         data['lay_value'] = 0
            #     free = float(dd['free_value']) + float(data['free_value'])
            #     lay = float(dd['lay_value']) + float(data['lay_value'])
            #     sql_list.append("UPDATE vip_order SET free_value ='%s' ,lay_value ='%s' WHERE id ='%s'"%(free,lay,dd['id']))

            # print(sql_list)
            # print(len(sql_list))
            # 执行新增消费的记录插入,包括延时费用和优惠费用的更新
            if len(sql_list) != 0:
                dd2 = db.inserGoodServer(num,dd,sql_list)
                logger.info('插入影响行数:' + str(dd2))
                if dd2 == len(sql_list):
                    resp = {
                        "code": 0,
                        "msg": "success"
                    }
                    logger.debug('新增消费成功')
                else:
                    resp = {
                        "code": 1,
                        "msg": "internal_exceptions"
                    }
                    logger.debug('新增消费失败')
            else:
                resp = {
                    "code": 3,
                    "msg": "nothing_is_changed"
                }
                logger.debug('新增消费失败')
            db.dispose()

    return HttpResponse(json.dumps(resp), content_type="application/json")