Exemplo n.º 1
0
def del_order(req):
    """
    废弃订单,将订单状态修改为2,此单消费货物返还。
    :param req:
    :return:
    """
    logger.debug('订单废弃传入参数:' + str(req.GET))
    data = req.GET.copy()
    sql_list = []
    sql = "UPDATE vip_order SET order_status = 2,all_value = '0',end_time=now() WHERE order_serial_number = '%s'"%data['order_serial_number']
    sql2 = "select a.good_id,a.good_count from order_good_item a  INNER JOIN vip_order b ON a.order_id = b.id and b. order_serial_number = '%s'" %data['order_serial_number']
    db = Mysql()
    result = db.getAll(sql2)
    # print(result)
    if result:
        for x in result:
            good_id = x['good_id']
            good_count = int(x['good_count'])
            sql_list.append("UPDATE good SET status = status+'%d' WHERE id = '%s'"%(good_count,good_id))
        sql_list.append(sql)
        count = db.excuteManysql(sql_list)
        # print(count)
        if count == 1+len(result):
            resp = {
                "code": 0,
                "msg": "success"
            }
            logger.debug('订单废弃成功')
        else:
            resp = {
                "code": 1,
                "msg": "internal_exceptions"
            }
    else:
        count = db.update(sql)
        if count == 1:
            resp = {
                "code": 0,
                "msg": "success"
            }
            logger.debug('订单废弃成功')
        else:
            resp = {
                "code": 1,
                "msg": "internal_exceptions"
            }
    db.dispose()
    return HttpResponse(json.dumps(resp), content_type="application/json")
Exemplo n.º 2
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")