Пример #1
0
 def get(self, request, **payload):
     self.params = {}
     self.params['product_id'] = request.GET.get('product_id')
     data = {}
     mysql = Mysql()
     sql = "SELECT * FROM mer_stock WHERE product_id = %s"
     stock = mysql.getAll(sql, param=[self.params['product_id']])
     if stock:
         data['stock'] = stock
         sql = "SELECT spec_id, spec_name FROM mer_spec WHERE product_id = %s"
         spec_name = mysql.getAll(sql, param=[self.params['product_id']])
         spec_info = []
         if stock[0].get('stock_specs'):
             for i in spec_name:
                 spec_deatil_dic = {}
                 spec_deatil_dic['spec'] = i
                 sql = "SELECT spec_detail_id, detail_name FROM mer_specdetail \
                     WHERE spec_id = %s"
                 spec_detail = mysql.getAll(sql, param=[i.get('spec_id')])
                 spec_deatil_dic['spec_detail'] = spec_detail
                 spec_info.append(spec_deatil_dic)
             data['spec_info'] = spec_info
         return HttpResponse(callJson(data))
     mysql.dispose()
     return HttpResponse(0)
Пример #2
0
 def get(self, request, **payload):
     self.params = {}
     self.params['mer_id'] = request.GET.get('mer_id')
     mysql = Mysql()
     sql = "SELECT * FROM mer_product WHERE mer_id = %s"
     info = mysql.getAll(sql, param=[self.params['mer_id']])
     mysql.dispose()
     if info:
         return HttpResponse(callJson(info))
     return HttpResponse(0)
Пример #3
0
 def get(self, request, **payload):
     mer_id = request.GET.get('mer_id') # list
     mer_id = json.loads(mer_id)
     mysql = Mysql()
     data = {}
     for i in mer_id:
         sql = "SELECT * FROM mer_product WHERE mer_id = %s"
         product = mysql.getAll(sql, param=i)
         product = product if product else []
         data[i] = product
     mysql.dispose()
     return HttpResponse(callJson(data))
Пример #4
0
    def post(self, request):
        self._data_list = json.loads(request.POST.get('data_list'))
        new_list = []
        for item in itertools.product(*self._data_list):
            new_list.append(list(item))
        return HttpResponse(callJson(new_list))


# car = cartesian()
# car.add_data([1,2])
# car.add_data([3,4])
# car.add_data([5,6,7])
# car.add_data([8,9])
# car.build()
Пример #5
0
 def get(self, request, **payload):
     self.params = {}
     self.params['mer_name'] = request.GET.get('mer_name')
     self.params['mer_id'] = request.GET.get('mer_id')
     self.params['mer_type'] = request.GET.get('mer_type')
     mysql = Mysql()
     if self.params['mer_id']:
         sql = f"SELECT * FROM merchant WHERE mer_id={self.params['mer_id']}"
     else:
         sql = "SELECT * FROM merchant WHERE mer_name LIKE '%{mer_name}%' \
             AND mer_type LIKE '%{mer_type}%' ORDER BY mer_hot DESC".format(mer_name=self.params['mer_name'],
                                                                            mer_type=self.params['mer_type'])
     info = mysql.getAll(sql)
     mysql.dispose()
     if info:
         return HttpResponse(callJson(info))
     return HttpResponse(0)
Пример #6
0
    def get(self, request, **payload):
        try:
            user_id = payload.get('user_id')
            mysql = Mysql()
            data = {}
            sql = "SELECT * FROM user_star_sign WHERE user_id = %s"
            result = mysql.getAll(sql, param=[user_id])
            data = {'ret': 0, 'result': result}
            if not result:
                sql = "INSERT INTO user_star_sign SET user_id = %s "
                mysql.insertOne(sql, param=[user_id])
                sql = "SELECT * FROM user_star_sign WHERE user_id = %s"
                info = mysql.getAll(sql, param=[user_id])
                data = {'ret': 0, 'msg': '查询成功', 'result': info}

            sql = "SELECT unionId FROM userInfo WHERE id = %s"
            user_info = mysql.getOne(sql, param=[user_id])
            if user_info.get('unionId'):
                sql = "SELECT * FROM h5_luckdraw_log WHERE unionid = %s AND state = 0"
                luckdraw_log = mysql.getAll(sql,
                                            param=[user_info.get('unionId')])
                if luckdraw_log:
                    patch_list = []
                    for i in luckdraw_log:
                        patch_list.append(i.get('patch_id'))
                        sql = 'UPDATE h5_luckdraw_log SET state = 1 WHERE id = %s'
                        mysql.update(sql, param=[i.get('id')])
                    getPatch(user_id, patch_list, 3, 1, mysql)
                    data['msg'] = '查询成功 碎片领取成功'
                    sql = "SELECT * FROM user_star_sign WHERE user_id = %s"
                    info = mysql.getAll(sql, param=[user_id])
                    data['result'] = info
                else:
                    data['msg'] = '查询成功 无碎片领取'
            else:
                data['ret'] = -1
                data['msg'] = '查询成功 但未绑定unionid 可能会导致h5抽奖碎片领取失败'
            mysql.dispose()
            return HttpResponse(callJson(data))
        except Exception as e:
            print(e)
            mysql.errdispose()
            erroLog(e)
            return JsonResponse({'ret': -2, 'msg': '网络错误'})
Пример #7
0
 def get(self, request, **payload):
     user_id = payload.get('user_id')
     row = request.GET.get('row')
     page = request.GET.get('page')
     mysql = Mysql()
     page, row = Pagings.mysqlPagings(page=page, row=row)
     sql = f"SELECT mp.order_num, mp.order_money, mp.wx_money, mp.balance, \
             mp.hhcoin, mp.state, mp.create_time, mr.mer_name FROM mer_pay \
             AS mp LEFT JOIN merchant AS mr ON mp.mer_id = mr.mer_id WHERE \
             mr.mer_id IS NOT NULL AND mp.user_id = {user_id} limit {page}, {row}"
     info = mysql.getAll(sql)
     if info:
         # 总页数
         sql = f"SELECT ceil(COUNT(mp.id) / 5) AS sum_page \
             FROM mer_pay AS mp WHERE mp.user_id = {user_id} "
         sum_page = mysql.getOne(sql)
         # 总金额
         sql = f"SELECT sum(wx_money+balance+0.1*hhcoin) AS sum_money \
             FROM mer_pay WHERE user_id = {user_id}"
         sum_money = mysql.getOne(sql)
         # 本月订单数
         sql = f"SELECT COUNT(*) AS month_orders FROM mer_pay \
             WHERE DATE_FORMAT( create_time, '%Y%m' ) = \
             DATE_FORMAT( CURDATE( ) , '%Y%m' ) AND user_id = {user_id}"
         month_orders = mysql.getOne(sql)
         # 总订单数
         sql = f"SELECT COUNT(id) AS sum_order FROM mer_pay WHERE user_id = {user_id}"
         sum_order = mysql.getOne(sql)
         # 本月金额
         sql = f"SELECT SUM(wx_money+balance) AS month_money \
             FROM mer_pay WHERE DATE_FORMAT( create_time, '%Y%m' ) \
             = DATE_FORMAT( CURDATE( ) , '%Y%m' ) AND user_id = {user_id}"
         month_money = mysql.getOne(sql)
         data = {}
         data['sum_page'] = sum_page.get('sum_page')
         data['sum_money'] = sum_money.get('sum_money')
         data['month_orders'] = month_orders.get('month_orders')
         data['sum_order'] = sum_order.get('sum_order')
         data['month_money'] = month_money.get('month_money')
         data['info'] = info
         mysql.dispose()
         return HttpResponse(callJson(data))
     mysql.dispose()
     return HttpResponse(0)
Пример #8
0
 def get(self, request, **payload):
     self.params = {}
     self.params['user_id'] = payload.get('user_id')
     mysql = Mysql()
     sql = "SELECT mer_orders.*, merchant.mer_name FROM mer_orders \
             LEFT JOIN merchant ON mer_orders.mer_id = merchant.mer_id \
             WHERE mer_orders.user_id = %s ORDER BY create_time DESC"
     order_info = mysql.getAll(sql, param=[self.params['user_id']])
     if order_info:
         order_list = []
         for i in order_info:
             data = {}
             data['orders'] = i
             sql = "SELECT * FROM mer_ordergoods WHERE order_num = %s"
             order_goods = mysql.getAll(sql, param=[i.get('order_num')])
             data['order_goods'] = order_goods
             order_list.append(data)
         mysql.dispose()
         return HttpResponse(callJson(order_list))
     mysql.dispose()
     return HttpResponse(0)
Пример #9
0
    def see(self):
        cache_name = str(self.info['user_id']) + 'daily_quiz'
        mysql = Mysql()
        # 总数
        sql = "SELECT COUNT(id) AS right_numbs FROM quiz_log WHERE user_id = %s and is_right = 1"
        right_numbs = mysql.getOne(sql, param=[self.info['user_id']])
        right_numbs = right_numbs.get('right_numbs') if right_numbs else 0
        
        # 连续正确回答数
        sql = "SELECT correct FROM userInfo WHERE id = %s"
        serial_numbs = mysql.getOne(sql, param=[self.info['user_id']])
        serial_numbs = serial_numbs.get('correct')

        # 检查是否参加
        sql = "SELECT * FROM quiz_log WHERE user_id = %s \
            AND to_days(create_time) = to_days(now())"
        check = mysql.getOne(sql, param=[self.info['user_id']])
        # 已经参加过
        if check:
            sql = "SELECT id, quiz_name FROM daily_quiz WHERE id = %s"
            info = mysql.getOne(sql, param=[check.get('quiz_id')])
            sql = "SELECT id, answer, is_right FROM quiz_bank WHERE quiz_id =%s"
            answer = mysql.getAll(sql, param=[info.get('id')])
            mysql.dispose()

            info['answer'] = answer
            info['right_numbs'] = right_numbs
            info['serial_numbs'] = serial_numbs
            info['choice_id'] = check.get('answer_id')
            return HttpResponse(returnJson(0, '查询成功', info))

        # 没有参加过 随机抽一题
        sql = "SELECT id, quiz_name FROM daily_quiz WHERE id NOT \
            IN (SELECT quiz_id FROM quiz_log WHERE user_id = %s)"
        info = mysql.getAll(sql, param=[self.info['user_id']])
        # 返回题目
        if info:
            if cache.has_key(cache_name):
                data = json.loads(cache.get(cache_name))
                return HttpResponse(returnJson(0, '查询成功', data))

            info = random.choice(info)
            sql = "SELECT id, answer FROM quiz_bank WHERE quiz_id = %s"
            answer = mysql.getAll(sql, param=[info.get('id')])
            mysql.dispose()

            info['answer'] = answer
            info['right_numbs'] = right_numbs
            info['serial_numbs'] = serial_numbs
            data = callJson(info)
            # 计算当时时间差
            now = datetime.datetime.now()
            zero_today = now - datetime.timedelta(hours=now.hour,
                minutes=now.minute,
                seconds=now.second, 
                microseconds=now.microsecond) + datetime.timedelta(days=1)
            t = (zero_today-now).seconds
            cache.set(cache_name, data, t)

            return HttpResponse(returnJson(0, '查询成功', info))
        else:
            return HttpResponse(returnJson(-2, '每日一答出现错误'))
Пример #10
0
 def get(self, request, **payload):
     mysql = Mysql()
     info = mysql.getAll(sql="SELECT * FROM merchant ORDER BY RAND() LIMIT 3") 
     mysql.dispose()
     return HttpResponse(callJson(info))
Пример #11
0
 def post(self, request, **payload):
     self.params = {}
     self.params['user_id'] = payload.get('user_id')
     
     self.params['order_num'] = Basedmethod.OrderNum()
     self.params['mer_id'] = request.POST.get('mer_id')
     #self.params['address'] = request.POST.get('address')
     self.params['phone'] = request.POST.get('phone')
     self.params['name'] = request.POST.get('name')
     self.params['stock_list'] = json.loads(request.POST.get('stock_list'))
     #[{'stockid':1, 'product_img':sss,'stocknum':33}, {'stockid':1, 'stocknum':33}]
     print(self.params)
     cache_name = 'mer_order-' + self.params['order_num']
     mysql = Mysql()
     if not self.params['name']:
         return HttpResponse(3)
     # -------------------先做限量判定 如果 超过 返回2-------------------
     for x in self.params['stock_list']:
         sql = "SELECT min_buy, max_buy FROM mer_stock WHERE stock_id = %s"
         check = mysql.getOne(sql, param=[x.get('stockid')])
         min_buy = int(check.get('min_buy'))
         max_buy = int(check.get('max_buy'))
         stock_num = int(x.get('stocknum'))
         if (min_buy > stock_num or max_buy < stock_num) and min_buy != 0 and max_buy != 0:
             mysql.dispose()
             return HttpResponse(2)
     # -------------------插入到订单表-----------------
     sql = "INSERT INTO mer_orders SET order_num=%s, \
         mer_id=%s, user_id=%s, `name`=%s, phone=%s"
     order_id = mysql.insertOne(sql, param=[
         self.params['order_num'],
         self.params['mer_id'],
         self.params['user_id'],
         self.params['name'],
         self.params['phone']
     ])
     price_list = []
     hhcoin_list = []
     for i in self.params['stock_list']:
         sql = "SELECT price, hhcoin, stock_name FROM mer_stock WHERE \
             stock_id = %s"
         stock_info = mysql.getOne(sql, param=[i.get('stockid')])
         price_list.append(
             int(stock_info.get('price'))
             * int(i.get('stocknum')))
         hhcoin_list.append(
             int(stock_info.get('hhcoin'))
             * int(i.get('stocknum')))
         sql = "INSERT INTO mer_ordergoods SET order_num=%s, \
             mer_stockid=%s, mer_stockprice=%s, mer_stockhhcoin=%s, \
             mer_stockname=%s, mer_stocknum=%s, mer_product_img=%s "
         mysql.insertOne(sql=sql, param=[
             self.params['order_num'], 
             i.get('stockid'), 
             stock_info.get('price'),
             stock_info.get('hhcoin'),
             stock_info.get('stock_name'),
             i.get('stocknum'),
             i.get('product_img')
         ])
     # 一个盒盒币0.1元
     price = sum(price_list)
     hhcoin = sum(hhcoin_list)
     # ----------------------余额支付----------------------
     user_info = mysql.getOne("SELECT money, hhcoin \
         FROM userInfo WHERE id = %s", param=[self.params['user_id']])
     user_price = int(user_info.get('money'))
     user_hhcoin = int(user_info.get('hhcoin'))
     #--------------------初始化参数-----------------
     real_coin = 0   #实际要扣除的盒盒币
     real_balance = 0    #实际要支付的盒盒余额
     real_wxprice = 0    #额外需要微信支付价格
     #-------------抵扣盒盒币--------------------
     real_coin = hhcoin if user_hhcoin >= hhcoin else user_hhcoin
     if real_coin > 0:
         # 扣盒盒币
         up_sql, log_sql = Type_Log.coin_handle(user_id=self.params['user_id'], 
                                                 handle=1, num=real_coin, asd=0)
         mysql.update(up_sql)
         mysql.update(log_sql)
     real_wxprice = price - real_coin
     #-----------抵扣余额---------------
     real_balance = real_wxprice if user_price >= real_wxprice else user_price
     if real_balance>0:
         #扣余额
         up_sql, log_sql = Type_Log.balance_log(user_id=self.params['user_id'],
                                                 handle=1, money=real_balance, asd=0, 
                                                 order_num=self.params['order_num'])
         mysql.update(up_sql)
         mysql.update(log_sql)
     #(实际需要支付的微信价钱)
     real_wxprice = real_wxprice - real_balance
     #---------微信支付尾款(是否需要微信支付)-------
     data = {}
     data['order_num'] = self.params['order_num']
     data['balance'] = real_balance
     data['hhcoin'] = real_coin
     state = 1 if real_wxprice == 0 else 0 #订单状态 0未付款 1代发货
     pay_time = 'NOW()' if state == 1 else 'NULL'
     if state == 1:
         #微信不需要再付钱
         data['msg'] = 'OK'
     else:
         #需要微信支付尾款
         data['msg'] = 'FAIL'
         data['res_price'] = real_wxprice
         data['erro_info'] = '已扣除盒盒币,请微信支付尾款!'
         open_redis = Open_Redis().getConn(2)
         cache = callJson(data)
         open_redis.set(cache_name, cache, ex=900)
     sql = "UPDATE mer_orders SET order_money=%s, wx_money='0', \
             balance=%s, hh_coin=%s, state=%s, `get`=0, \
             pay_time=%s WHERE order_id=%s"
     mysql.update(sql, param=[
         real_balance + real_wxprice,
         real_balance,
         real_coin,
         state,
         pay_time,
         order_id
     ]) 
     mysql.dispose()
     data = callJson(data)
     return HttpResponse(data)
Пример #12
0
    def post(self, request, **payload):
        self.params = {}
        self.params['user_id'] = payload.get('user_id')
        self.params['sales'] = float(request.POST.get('sales')) / 100
        self.params['sum_money'] = request.POST.get('sum_money')
        self.params['mer_id'] = request.POST.get('mer_id')
        self.params['order_num'] = Basedmethod.OrderNum()
        print(self.params)
        cache_name = 'mer_pay-' + self.params['order_num']

        if not self.params['mer_id'] or not self.params['user_id']:
            return HttpResponse(0)
        if self.params['sum_money'] <= 0:
            return HttpResponse(0)

        mysql = Mysql()
        hhcoin = int(self.params['sum_money'] - (self.params['sum_money'] * self.params['sales']))
        if hhcoin < 1:
            hhcoin = 0
        price = self.params['sum_money']
        # ---------------------插入订单表---------------------
        sql = "INSERT INTO mer_pay SET mer_id = %s, user_id = %s,\
                order_num = %s, order_money = %s, state = 0"
        order_id = mysql.insertOne(sql, param=[
            self.params['mer_id'],
            self.params['user_id'],
            self.params['order_num'],
            price
        ])
        # ----------------------余额支付----------------------
        user_info = mysql.getOne("SELECT money, hhcoin \
            FROM userInfo WHERE id = %s", param=[self.params['user_id']])
        user_price = int(user_info.get('money'))
        user_hhcoin = int(user_info.get('hhcoin'))
        #--------------------初始化参数-----------------
        real_coin = 0   #实际要扣除的盒盒币
        real_balance = 0    #实际要支付的盒盒余额
        real_wxprice = 0    #额外需要微信支付价格
        #-------------抵扣盒盒币--------------------
        real_coin = hhcoin if user_hhcoin >= hhcoin else user_hhcoin
        if real_coin > 0:
            # 扣盒盒币
            up_sql, log_sql = Type_Log.coin_handle(user_id=self.params['user_id'], 
                                                    handle=1, num=real_coin, asd=0)
            mysql.update(up_sql)
            mysql.update(log_sql)
        real_wxprice = price - real_coin
        #-----------抵扣余额---------------
        real_balance = real_wxprice if user_price >= real_wxprice else user_price
        if real_balance > 0:
            #扣余额
            up_sql, log_sql = Type_Log.balance_log(user_id=self.params['user_id'],
                                                    handle=1, money=real_balance, asd=0, 
                                                    order_num=self.params['order_num'])
            mysql.update(up_sql)
            mysql.update(log_sql)
        #(实际需要支付的微信价钱)
        real_wxprice = real_wxprice - real_balance
        #---------微信支付尾款(是否需要微信支付)-------
        data = {}
        data['order_num'] = self.params['order_num']
        data['balance'] = real_balance
        data['hhcoin'] = real_coin
        state = 1 if real_wxprice == 0 else 0 #订单状态 0未付款 1代发货
        pay_time = 'NOW()' if state == 1 else 'NULL'
        if state==1:
            #微信不需要再付钱
            data['msg'] = 'OK'
        else:
            #需要微信支付尾款
            data['msg'] = 'FAIL'
            data['res_price'] = real_wxprice
            data['erro_info'] = '已扣除盒盒币,请微信支付尾款!'
            # 挂起待支付订单
            t = Open_Redis(2)
            open_redis = t.getConn()
            cache = callJson(data)
            open_redis.set(cache_name, cache, ex=900)
        sql = "UPDATE mer_pay SET order_money=%s, wx_money='0', \
                balance=%s, hhcoin=%s, state=%s, pay_time=%s WHERE id=%s"
        mysql.update(sql, param=[
            self.params['sum_money'],
            real_balance,
            real_coin,
            state,
            pay_time,
            order_id
        ]) 
        mysql.dispose()
        data = callJson(data)
        return HttpResponse(data)
Пример #13
0
    def placeOrder(self):
        cache_name = getOrderNum('ShopOrder')
            #----------------------2019-09-16限量----------------------
        mysql = Mysql()
        holds = []
        for i in self.info['stock_list']:
            stock_num = int(i.get('num'))
            if not isinstance(stock_num, int) or stock_num <= 0:
                mysql.dispose()
                return HttpResponse(returnJson(-2, '商品数量出现错误'))
            sql = "SELECT product_id, stock_name FROM stock WHERE id = %s"
            stock_info = mysql.getOne(sql, param=[i.get('stock_id')])
            sql = "SELECT user_goods_limit FROM product WHERE id = %s"
            limit_numb = mysql.getOne(sql, param=[stock_info.get('product_id')])
            if limit_numb.get('user_goods_limit') != 0:
                limit_data = {}
                limit_data['key'] = 'product_1909_' + str(stock_info.get('product_id'))
                limit_data['use'] = stock_num
                limit_data['total'] = limit_numb.get('user_goods_limit')
                limit_data['ext'] = stock_info.get('stock_name')
                holds.append(limit_data)
        if holds:
            check_limit = hold_yukou(holds=holds, 
                                    mysql=mysql, 
                                    user_id=self.info['user_id'], 
                                    source='商城购买')
            if check_limit['ret'] == -2:
                return JsonResponse(check_limit)

        #----------------------插入到订单表----------------------
        print('插入订单表')
        mysql = Mysql()
        sql = "INSERT INTO orders SET orderNum=%s, store_id=%s, \
                createUser=%s, address=%s,Consignee=%s, mobile=%s, \
                sendTime=%s, remark=%s, state=0, freight=%s"
        order_id = mysql.insertOne(sql, param=[
            self.info['order_num'],
            self.info['stock_list'][0].get('store_id'),
            self.info['user_id'],
            self.info['address'],
            self.info['Consignee'],
            self.info['phone'],
            self.info['sendTime'],
            self.info['remark'],
            int(self.info['freight'])
        ])
        price = 0
        hhcoin = 0
        #插入到订单商品表
        for i in self.info['stock_list']:
            stock_num = int(i.get('num'))
            sql = "SELECT stock_name, img, price, hehecoin, store_id,\
                stock_detail, product_id FROM stock WHERE id = %s"
            stock_info = mysql.getOne(sql, param=[i.get('stock_id')])

            price += int(stock_info.get('price')) * stock_num
            hhcoin += int(stock_info.get('hehecoin')) * stock_num

            sql = "INSERT INTO ordergoods SET order_id=%s, \
                stock_id=%s, num=%s, money=%s, stock_hhcoin=%s, \
                stock_img=%s, product_id=%s, stock_detail=%s, \
                stock_name=%s, store_id=%s"
            mysql.insertOne(sql, param=[
                self.info['order_num'],
                i.get('stock_id'),
                stock_num,
                stock_info.get('price'),
                stock_info.get('hehecoin'),
                stock_info.get('img'),
                stock_info.get('product_id'),
                stock_info.get('stock_detail'),
                stock_info.get('stock_name'),
                stock_info.get('store_id')
            ])
        # ----------------------余额支付----------------------
        user_info = mysql.getOne("SELECT money, hhcoin \
            FROM userInfo WHERE id = %s", param=[self.info['user_id']])
        user_price = int(user_info.get('money'))
        user_hhcoin = int(user_info.get('hhcoin'))
        #初始化参数
        real_coin = 0   #实际要扣除的盒盒币
        real_balance = 0    #实际要支付的盒盒余额
        real_wxprice = 0    #额外需要微信支付价格
        #抵扣盒盒币
        real_coin = hhcoin if user_hhcoin >= hhcoin else user_hhcoin
        if real_coin > 0:
            # 扣盒盒币
            up_sql, log_sql = Type_Log.coin_handle(user_id=self.info['user_id'], 
                                                    handle=1, num=real_coin, asd=0)
            mysql.update(up_sql)
            mysql.update(log_sql)
        real_wxprice = price - real_coin
        #抵扣余额
        real_balance = real_wxprice if user_price >= real_wxprice else user_price

        if real_balance > 0:
            #扣余额
            up_sql, log_sql = Type_Log.balance_log(user_id=self.info['user_id'],
                                                    handle=1, money=real_balance, asd=0, 
                                                    order_num=self.info['order_num'])
            mysql.update(up_sql)
            mysql.update(log_sql)
        mysql.dispose()
        #(实际需要支付的微信价钱)
        real_wxprice = real_wxprice - real_balance
        #微信支付尾款(是否需要微信支付)
        data = {}
        data['order_num'] = self.info['order_num']
        data['balance'] = real_balance
        data['hhcoin'] = real_coin
        state = 1 if real_wxprice == 0 else 0 #订单状态 0未付款 1代发货
        if state == 1:
            #微信不需要再付钱
            data['msg'] = 'OK'
            #实扣限量
            if holds:
                shikou_data = hold_shikou(holds=holds, user_id=self.info['user_id'])
                if shikou_data['ret'] == -2:
                    return JsonResponse(shikou_data)
        else:
            #需要微信支付尾款
            data['msg'] = 'FAIL'
            data['res_price'] = real_wxprice
            data['erro_info'] = '已扣除盒盒币,请微信支付尾款!'
            #挂起待支付订单
            open_redis = Open_Redis().getConn(2)
            cache = json.dumps(callJson(data))
            open_redis.set(cache_name, cache, ex=900)

        mysql = Mysql()
        sql = "UPDATE orders SET orderMoney=%s, wxMoney=%s, \
                balance=%s, heheCoin=%s, state=%s WHERE id=%s"
        mysql.update(sql, param=[price, real_wxprice, real_balance, 
            real_coin, state, order_id])
        mysql.dispose()
        return HttpResponse(callJson(data))