Exemple #1
0
def edit():
    resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
    req = request.values
    fabu_id = req['id'] if 'id' in req else ''
    title = req['title'] if 'title' in req else ''
    area = req['area'] if 'area' in req else ''
    describe = req['describe'] if 'describe' in req else ''
    imageList = req['imageList'] if 'imageList' in req else ''
    price = req['price'] if 'price' in req else ''
    QQnum = req['QQnum'] if 'QQnum' in req else ''
    formid = req['formid'] if 'formid' in req else ''
    # str_list = imageList
    # upload_file = str_list.split(',')
    # imageList = []
    # for i in range(len(upload_file)):
    #     ret = UploadService.uploadByFile(upload_file[i], author_id)
    #     url = UrlManager.buildImageUrl(ret["url"])
    #     imageList.append(url)
    # image = ','.join(imageList)

    fabu_info = CommodityInformation.query.filter_by(id=fabu_id).first()
    fabu_info.name = title
    fabu_info.area_tab = area
    fabu_info.contacts = describe
    fabu_info.image = imageList
    fabu_info.price = price
    fabu_info.qqnumber = QQnum
    fabu_info.formid = formid
    fabu_info.updated_time = getCurrentDate()
    fabu_info.created_time = getCurrentDate()
    db.session.commit()
    return jsonify(resp)
Exemple #2
0
    def closeOrder(self, pay_order_id=0):
        if pay_order_id < 1:
            return False
        pay_order_info = session.query(PayOrder).filter_by(id=pay_order_id,
                                                           status=-8).first()
        if not pay_order_info:
            return False

        pay_order_items = session.query(PayOrderItem).filter_by(
            pay_order_id=pay_order_id).all()
        if pay_order_items:
            #需要归还库存
            for item in pay_order_items:
                tmp_food_info = session.query(Food).filter_by(
                    id=item.food_id).first()
                if tmp_food_info:
                    tmp_food_info.stock = tmp_food_info.stock + item.quantity
                    tmp_food_info.updated_time = getCurrentDate()
                    session.add(tmp_food_info)
                    session.commit()
                    FoodService.setStockChangeLog(item.food_id, item.quantity,
                                                  "订单取消")

        pay_order_info.status = 0
        pay_order_info.updated_time = getCurrentDate()
        session.add(pay_order_info)
        session.commit()
        return True
Exemple #3
0
    def orderSuccess(self, pay_order_id=0, params=None):
        try:
            pay_order_info = session.query(PayOrder).filter_by(
                id=pay_order_id).first()
            if not pay_order_info or pay_order_info.status not in [-8, -7]:
                return True

            pay_order_info.pay_sn = params[
                'pay_sn'] if params and 'pay_sn' in params else ''
            pay_order_info.status = 1
            pay_order_info.express_status = -7
            pay_order_info.updated_time = getCurrentDate()
            pay_order_info.pay_time = getCurrentDate()
            session.add(pay_order_info)

            pay_order_items = session.query(PayOrderItem).filter_by(
                pay_order_id=pay_order_id).all()
            for order_item in pay_order_items:
                tmp_model_sale_log = FoodSaleChangeLog()
                tmp_model_sale_log.food_id = order_item.food_id
                tmp_model_sale_log.quantity = order_item.quantity
                tmp_model_sale_log.price = order_item.price
                tmp_model_sale_log.member_id = order_item.member_id
                tmp_model_sale_log.created_time = getCurrentDate()
                session.add(tmp_model_sale_log)

            session.commit()
        except Exception as e:
            session.rollback()
            print(e)
            return False

        return True
Exemple #4
0
    def getAccessToken(self):
        token = None
        token_info = OauthAccessToken.query.filter(
            OauthAccessToken.expired_time >= getCurrentDate()).first()
        if token_info:
            token = token_info.access_token
            return token


        url = "https://api.q.qq.com/api/getToken?grant_type=client_credential&appid={0}&secret={1}"\
            .format( "1109811211","XRhRhixD6GsQO42P" )

        r = requests.get(url=url)
        if r.status_code != 200 or not r.text:
            return token

        data = json.loads(r.text)
        print(data)
        now = datetime.datetime.now()
        date = now + datetime.timedelta(seconds=data['expires_in'] - 200)
        model_token = OauthAccessToken()
        model_token.access_token = data['access_token']
        model_token.expired_time = date.strftime("%Y-%m-%d %H:%M:%S")
        model_token.created_time = getCurrentDate()
        db.session.add(model_token)
        db.session.commit()

        return data['access_token']
    def post(self, *args, **kwargs):
        resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
        id = int(self.get_argument('id', 0))
        act = self.get_argument('act', '')
        member_info = self.member_info

        if id < 1 or not member_info:
            resp['code'] = -1
            resp['msg'] = "系统繁忙,请稍后再试~~"
            self.finish(resp)
            return

        address_info = session.query(MemberAddress).filter_by(
            id=id, member_id=member_info.id).first()
        if not address_info:
            resp['code'] = -1
            resp['msg'] = "系统繁忙,请稍后再试~~"
            self.finish(resp)
            return

        if act == "del":
            address_info.status = 0
            address_info.updated_time = getCurrentDate()
            session.add(address_info)
            session.commit()
        elif act == "default":
            session.query(MemberAddress).filter_by(member_id=member_info.id) \
                .update({'is_default': 0})
            address_info.is_default = 1
            address_info.updated_time = getCurrentDate()
            session.add(address_info)
            session.commit()
        self.finish(resp)
    def post(self, *args, **kwargs):
        resp = {'code': 200, 'msg': '操作成功~~', 'data': {}}
        id = int(self.get_argument('id', 0))
        weight = int(self.get_argument('weight', 0))
        name = self.get_argument('name', '')

        if name is None or len(name) < 1:
            resp['code'] = -1
            resp['msg'] = "请输入符合规范的分类名称~~"
            self.write(resp)
            return

        food_cat_info = session.query(FoodCat).filter_by(id=id).first()
        if food_cat_info:
            model_food_cat = food_cat_info
        else:
            model_food_cat = FoodCat()
            model_food_cat.created_time = getCurrentDate()
        model_food_cat.name = name
        model_food_cat.weight = weight
        model_food_cat.updated_time = getCurrentDate()
        session.add(model_food_cat)
        session.commit()
        self.write(resp)
        return
Exemple #7
0
def login():
    resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
    req = request.values
    code = req['code'] if 'code' in req else ''
    if not code or len(code) < 1:
        resp['code'] = -1
        resp['msg'] = "需要code"
        return jsonify(resp)

    openid = MemberService.getWeChatOpenId(code)
    if openid is None:
        resp['code'] = -1
        resp['msg'] = "调用微信出错"
        return jsonify(resp)

    # app.logger.info( req )
    try:
        nickname = req['nickName'] if 'nickName' in req else ''
        sex = req['gender'] if 'gender' in req else ''
        avatar = req['avatarUrl'] if 'avatarUrl' in req else ''
        bind_info = OauthMemberBind.query.filter_by(openid=openid,
                                                    type=1).first()
        # result = re_emojis(nickname)
        text = emoji.demojize(nickname)
        result = re.sub(':\S+?:', ' ', text)
        if not bind_info:
            model_member = Member()
            model_member.nickname = result
            model_member.sex = sex
            model_member.avatar = avatar
            model_member.salt = MemberService.geneSalt()
            model_member.updated_time = model_member.created_time = getCurrentDate(
            )
            db.session.add(model_member)
            db.session.commit()

            model_bind = OauthMemberBind()
            model_bind.member_id = model_member.id
            model_bind.type = 1
            model_bind.openid = openid
            model_bind.extra = ''
            model_bind.updated_time = model_bind.created_time = getCurrentDate(
            )
            db.session.add(model_bind)
            db.session.commit()

            bind_info = model_bind
            member_info = Member.query.filter_by(
                id=bind_info.member_id).first()

            token = "%s#%s" % (MemberService.geneAuthCode(member_info),
                               member_info.id)

            resp['data'] = {'token': token}

    except InvalidRequestError:
        db.session.rollback()

    return jsonify(resp)
    def post(self, *args, **kwargs):
        resp = {'code': 200, 'msg': '操作成功~~', 'data': {}}
        id = self.get_argument('id', 0)
        act = self.get_argument('act', '')

        if not id:
            resp['code'] = -1
            resp['msg'] = "请选择要操作的账号~~"
            self.finish(resp)
            return

        if act not in ['remove', 'recover']:
            resp['code'] = -1
            resp['msg'] = "操作有误,请重试~~"
            self.finish(resp)
            return

        food_info = session.query(Food).filter_by(id=id).first()
        if not food_info:
            resp['code'] = -1
            resp['msg'] = "指定美食不存在~~"
            self.finish(resp)
            return

        if act == "remove":
            food_info.status = 0
        elif act == "recover":
            food_info.status = 1

        food_info.updated_time = getCurrentDate()
        session.add(food_info)
        session.commit()
        self.finish(resp)
Exemple #9
0
    def post(self, *args, **kwargs):
        resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
        member_info = self.member_info
        order_sn = self.get_argument('order_sn','')
        act = self.get_argument('act','')
        pay_order_info = session.query(PayOrder).filter_by(order_sn=order_sn, member_id=member_info.id).first()
        if not pay_order_info:
            resp['code'] = -1
            resp['msg'] = "系统繁忙。请稍后再试~~"
            self.write(resp)
            return

        if act == "cancel":
            target_pay = PayService()
            ret = target_pay.closeOrder(pay_order_id=pay_order_info.id)
            if not ret:
                resp['code'] = -1
                resp['msg'] = "系统繁忙。请稍后再试~~"
                self.write(resp)
                return
        elif act == "confirm":
            pay_order_info.express_status = 1
            pay_order_info.updated_time = getCurrentDate()
            session.add(pay_order_info)
            session.commit()

        self.write(resp)
    def uploadByFile(file):
        resp = {'code': 200, 'msg': '操作成功~~', 'data': {}}
        filename = secure_filename(file.get('filename'))
        ext = filename.rsplit(".", 1)[1]
        if ext not in UPLOAD['ext']:
            resp['code'] = -1
            resp['msg'] = "不允许的扩展类型文件"
            return resp

        root_path = BASE_DIR + UPLOAD['prefix_path']
        file_dir = datetime.datetime.now().strftime("%Y%m%d")
        save_dir = root_path + file_dir
        if not os.path.exists(save_dir):
            os.makedirs(save_dir)
            os.chmod(save_dir, stat.S_IRWXU | stat.S_IRGRP | stat.S_IRWXO)

        file_name = str(uuid.uuid4()).replace("-", "") + "." + ext

        with open(save_dir + '/' + file_name, 'wb') as f:
            f.write(file["body"])

        model_image = Image()
        model_image.file_key = file_dir + "/" + file_name
        model_image.created_time = getCurrentDate()
        session.add(model_image)
        session.commit()

        resp['data'] = {'file_key': model_image.file_key}
        return resp
Exemple #11
0
    def setItems( member_id = 0,food_id = 0,number = 0 ):
        if member_id < 1 or food_id < 1 or number < 1:
            return False
        cart_info = session.query(MemberCart).filter_by(food_id = food_id, member_id= member_id).first()
        if cart_info:
            model_cart = cart_info
        else:
            model_cart = MemberCart()
            model_cart.member_id = member_id
            model_cart.created_time = getCurrentDate()

        model_cart.food_id = food_id
        model_cart.quantity = number
        model_cart.updated_time = getCurrentDate()
        session.add(model_cart)
        session.commit()
        return True
Exemple #12
0
def fabu():
    resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
    req = request.values
    author_id = req['author_id'] if 'author_id' in req else ''
    tab = req['tab'] if 'tab' in req else ''
    title = req['title'] if 'title' in req else ''
    type = req['type'] if 'type' in req else ''
    area = req['area'] if 'area' in req else ''
    describe = req['describe'] if 'describe' in req else ''
    price = req['price'] if 'price' in req else ''
    phomenum = req['phomenum'] if 'phomenum' in req else ''
    QQnum = req['QQnum'] if 'QQnum' in req else ''
    imageList = req['imageList'] if 'imageList' in req else ''
    formid = req['formid'] if 'formid' in req else ''
    # imageList = "https://jiyikapian.cn//static/upload/8/20190609/c493561d957b4a62baed402478c5b180.jpg,https://jiyikapian.cn//static/upload/88/20190608/18e528644ac6419695cf49d76bf3d5aa.jpg"
    # str_list = imageList
    # upload_file = str_list.split(',')
    # imageList = []
    # for i in range(len(upload_file)):
    #     ret = UploadService.uploadByFile(upload_file[i], author_id)
    #     url = UrlManager.buildImageUrl( ret["url"] )
    #     imageList.append(url)
    # image = ','.join(imageList)
    try:
        Commodity = CommodityInformation()
        Commodity.authorId = author_id
        Commodity.name = title
        Commodity.tab = tab
        Commodity.type = type
        Commodity.area_tab = area
        Commodity.contacts = describe
        Commodity.price = price
        Commodity.phonenumber = phomenum
        Commodity.qqnumber = QQnum
        Commodity.image = imageList
        Commodity.formid = formid
        # Commodity.last_count = 0
        Commodity.updated_time = getCurrentDate()
        Commodity.created_time = getCurrentDate()
        db.session.add(Commodity)
        db.session.commit()
    except InvalidRequestError:
        db.session.rollback()

    return jsonify(resp)
Exemple #13
0
def statSite(params):
    date = params['date']
    date_from = params['date_from']
    date_to = params['date_to']
    logging.info( "act:{0},from:{1},to:{2}".format("site统计",date_from,date_to))

    stat_pay = session.query(func.sum(PayOrder.total_price).label("total_pay_money")) \
        .filter(PayOrder.status == 1) \
        .filter(PayOrder.created_time >= date_from, PayOrder.created_time <= date_to).first()

    stat_member_count = session.query(Member).count()
    stat_new_member_count = session.query(Member).filter(Member.created_time >= date_from,
                        Member.created_time <= date_to).count()

    stat_order_count = session.query(PayOrder).filter_by( status = 1 )\
        .filter(PayOrder.created_time >= date_from, PayOrder.created_time <= date_to)\
        .count()

    stat_share_count = session.query(WxShareHistory).filter(WxShareHistory.created_time >= date_from
        , WxShareHistory.created_time <= date_to).count()

    tmp_stat_site = session.query(StatDailySite).filter_by(date=date).first()
    if tmp_stat_site:
        tmp_model_stat_site = tmp_stat_site
    else:
        tmp_model_stat_site = StatDailySite()
        tmp_model_stat_site.date = date
        tmp_model_stat_site.created_time = getCurrentDate()

    tmp_model_stat_site.total_pay_money = stat_pay[ 0 ] if stat_pay[ 0 ] else 0.00
    tmp_model_stat_site.total_new_member_count = stat_new_member_count
    tmp_model_stat_site.total_member_count = stat_member_count
    tmp_model_stat_site.total_order_count = stat_order_count
    tmp_model_stat_site.total_shared_count = stat_share_count
    tmp_model_stat_site.updated_time = getCurrentDate()
    '''
    为了测试效果模拟数据,生产环境下请注释掉
    '''
    tmp_model_stat_site.total_pay_money = random.randint(1000, 1010)
    tmp_model_stat_site.total_new_member_count = random.randint(50, 100)
    tmp_model_stat_site.total_member_count += tmp_model_stat_site.total_new_member_count
    tmp_model_stat_site.total_order_count = random.randint(900, 1000)
    tmp_model_stat_site.total_shared_count = random.randint(1000, 2000)
    session.add(tmp_model_stat_site)
    session.commit()
Exemple #14
0
def cardstudy():
    resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
    req = request.values
    app.logger.info(req)
    card_id = req['card_id'] if 'card_id' in req else ''
    card = Card.query.filter(Card.id == card_id).first()
    card.study_status = card.study_status + 1
    card.last_time = getCurrentDate()
    db.session.commit()
    return jsonify(resp)
Exemple #15
0
 def run(self, *args, **kwargs):
     queue_list = QueueList.query.filter_by(status=-1).order_by(
         QueueList.id.asc()).limit(1).all()
     for item in queue_list:
         if item.queue_name == 'pay':
             pass
         item.status = 1
         item.updated_time = getCurrentDate()
         db.session.add(item)
         db.session.commit()
Exemple #16
0
def sendMessage(id, formid, information, openid):
    commodity_id = id
    if not id:
        return False

    commodity_info = CommodityInformation.query.filter_by(
        id=commodity_id).first()
    # member_id  = commodity_info.authorId
    # oauth_bind_info = OauthMemberBind.query.filter_by(member_id = member_id).first()
    # member_info = Member.query.filter_by(id = member_id).first()
    #     # if not oauth_bind_info:
    #     #     return False

    keyword1_val = str(commodity_info.name)
    keyword2_val = information
    # keyword3_val = str(member_info.nickname)
    keyword3_val = getCurrentDate()
    commodity_info_ID = commodity_info.id
    page = "/pages/detail/detail?id=%s&isshare=1" % (commodity_info_ID)

    #发送模板消息
    target_wechat = WeChatService()
    access_token = target_wechat.getAccessToken()
    headers = {'Content-Type': 'application/json'}
    # url = "https://api.q.qq.com/api/json/subscribe/SendSubscriptionMessage?access_token=%s"%access_token
    url = "https://api.q.qq.com/api/json/template/send?access_token=%s" % access_token
    params = {
        "appid": "1109811211",
        "touser": openid,
        # "template_id":"a4c97a4a5701cdf9deac1d1f2e371a5e",
        "template_id": "4477e4d327dc382671ae56ded9611448",
        "page": page,
        "form_id": formid,
        "data": {
            "keyword1": {
                "value": keyword1_val
            },
            "keyword2": {
                "value": keyword2_val
            },
            "keyword3": {
                "value": keyword3_val
            },
            # "keyword4": {
            #     "value": keyword4_val
            # }
        }
    }

    r = requests.post(url=url,
                      data=json.dumps(params).encode('utf-8'),
                      headers=headers)
    r.encoding = "utf-8"
    print(r.text)
    return True
Exemple #17
0
def statFood(params):
    date = params['date']
    date_from = params['date_from']
    date_to = params['date_to']
    logging.info("act:{0},from:{1},to:{2}".format("food统计", date_from, date_to))

    stat_food_list = session.query(FoodSaleChangeLog.food_id,
                                      func.sum(FoodSaleChangeLog.quantity).label("total_count"),
                                      func.sum(FoodSaleChangeLog.price).label("total_pay_money")) \
        .filter(FoodSaleChangeLog.created_time >= date_from, FoodSaleChangeLog.created_time <= date_to) \
        .group_by(FoodSaleChangeLog.food_id).all()

    if not stat_food_list:
        logging.info("no data")
        return

    for item in stat_food_list:
        tmp_food_id = item[0]
        tmp_stat_food = session.query(StatDailyFood).filter_by(date=date, food_id=tmp_food_id).first()
        if tmp_stat_food:
            tmp_model_stat_food = tmp_stat_food
        else:
            tmp_model_stat_food = StatDailyFood()
            tmp_model_stat_food.date = date
            tmp_model_stat_food.food_id = tmp_food_id
            tmp_model_stat_food.created_time = getCurrentDate()

        tmp_model_stat_food.total_count = item[1]
        tmp_model_stat_food.total_pay_money = item[2]
        tmp_model_stat_food.updated_time = getCurrentDate()

        '''
        为了测试效果模拟数据,生产环境下请注释掉
        '''
        tmp_model_stat_food.total_count = random.randint(50, 100)
        tmp_model_stat_food.total_pay_money = random.randint(1000, 1010)

        session.add(tmp_model_stat_food)
        session.commit()

    return
Exemple #18
0
 def post(self, *args, **kwargs):
     resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
     url = self.get_argument('url', '')
     member_info = self.member_info
     member_info = None
     model_share = WxShareHistory()
     if member_info:
         model_share.member_id = member_info.id
     model_share.share_url = url
     model_share.created_time = getCurrentDate()
     session.add(model_share)
     session.commit()
     self.finish(resp)
Exemple #19
0
def statMember(params):
    date = params['date']
    date_from = params['date_from']
    date_to = params['date_to']
    logging.info("act:{0},from:{1},to:{2}".format("会员统计", date_from, date_to))

    member_list = session.query(Member).all()
    if not member_list:
        logging.info("no member list")
        return

    for member_info in member_list:
        tmp_stat_member = session.query(StatDailyMember).filter_by(date=date, member_id=member_info.id).first()
        if tmp_stat_member:
            tmp_model_stat_member = tmp_stat_member
        else:
            tmp_model_stat_member = StatDailyMember()
            tmp_model_stat_member.date = date
            tmp_model_stat_member.member_id = member_info.id
            tmp_model_stat_member.created_time = getCurrentDate()

        tmp_stat_pay = session.query(func.sum(PayOrder.total_price).label("total_pay_money")) \
            .filter(PayOrder.member_id == member_info.id, PayOrder.status == 1) \
            .filter(PayOrder.created_time >= date_from, PayOrder.created_time <= date_to).first()
        tmp_stat_share_count = session.query(WxShareHistory).filter(PayOrder.member_id == member_info.id) \
            .filter(PayOrder.created_time >= date_from, PayOrder.created_time <= date_to).count()

        tmp_model_stat_member.total_shared_count = tmp_stat_share_count
        tmp_model_stat_member.total_pay_money = tmp_stat_pay[0] if tmp_stat_pay[0] else 0.00
        '''
        为了测试效果模拟数据,生产环境下请注释掉
        '''
        tmp_model_stat_member.total_shared_count = random.randint(50, 100)
        tmp_model_stat_member.total_pay_money = random.randint(1000, 1010)
        tmp_model_stat_member.updated_time = getCurrentDate()
        session.add(tmp_model_stat_member)
        session.commit()

    return
Exemple #20
0
def member_collection():
    resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
    req = request.values
    member_id = req['member_id'] if 'member_id' in req else ''
    commodity_id = req['collecterid'] if 'collecterid' in req else ''
    if not member_id:
        resp['code'] = -1
        resp['msg'] = "需要member_id"
        return jsonify(resp)
    if not commodity_id:
        resp['code'] = -1
        resp['msg'] = "需要commodity_id"
        return jsonify(resp)

    member_info = Member.query.filter_by(id=member_id).first()
    if not member_info:
        resp['code'] = -1
        resp['msg'] = "member_id不存在"
        return jsonify(resp)

    commodity_info = CommodityInformation.query.filter_by(
        id=commodity_id).first()
    if not commodity_info:
        resp['code'] = -1
        resp['msg'] = "commodity_info不存在"
        return jsonify(resp)
    try:
        collection = MemberCollection()
        collection.member_id = member_id
        collection.commodity_id = commodity_id
        collection.created_time = getCurrentDate()
        collection.updated_time = getCurrentDate()
        db.session.add(collection)
        db.session.commit()
    except InvalidRequestError:
        db.session.rollback()

    return jsonify(resp)
Exemple #21
0
    def setStockChangeLog(food_id=0, quantity=0, note=''):

        if food_id < 1:
            return False

        food_info = session.query(Food).filter_by(id=food_id).first()
        if not food_info:
            return False

        model_stock_change = FoodStockChangeLog()
        model_stock_change.food_id = food_id
        model_stock_change.unit = quantity
        model_stock_change.total_stock = food_info.stock
        model_stock_change.note = note
        model_stock_change.created_time = getCurrentDate()
        session.add(model_stock_change)
        session.commit()
        return True
Exemple #22
0
    def post(self, *args, **kwargs):
        resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
        id = self.get_argument('id', 0)
        act = self.get_argument('act', '')
        pay_order_info = session.query(PayOrder).filter_by(id=id).first()
        if not pay_order_info:
            resp['code'] = -1
            resp['msg'] = "系统繁忙。请稍后再试~~"
            self.finish(resp)
            return

        if act == "express":
            pay_order_info.express_status = -6
            pay_order_info.updated_time = getCurrentDate()
            session.add(pay_order_info)
            session.commit()

        self.finish(resp)
Exemple #23
0
def resetTime():
    resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
    req = request.values
    commodity_id = req['commodity_id'] if 'commodity_id' in req else ''
    if not commodity_id:
        resp['code'] = -1
        resp['msg'] = "需要Commodity_id"
        return jsonify(resp)
    commodity_info = CommodityInformation.query.filter_by(
        status=1, id=commodity_id).first()
    if not commodity_info:
        resp['code'] = -1
        resp['msg'] = "商品已无效"
        return jsonify(resp)
    try:
        commodity_info.updated_time = getCurrentDate()
        db.session.commit()
    except InvalidRequestError:
        db.session.rollback()
    return jsonify(resp)
    def post(self, *args, **kwargs):
        resp = {'code': 200, 'msg': '操作成功~~', 'data': {}}
        id = self.get_argument('id', 0)
        nickname = self.get_argument('nickname', '')
        if nickname is None or len(nickname) < 1:
            resp['code'] = -1
            resp['msg'] = "请输入符合规范的姓名~~"
            self.write(resp)
            return

        member_info = session.query(Member).filter_by(id=id).first()
        if not member_info:
            resp['code'] = -1
            resp['msg'] = "指定会员不存在~~"
            self.write(resp)
            return

        member_info.nickname = nickname
        member_info.updated_time = getCurrentDate()
        session.add(member_info)
        session.commit()
        self.finish(resp)
    def post(self, *args, **kwargs):
        resp = {'code': 200, 'msg': '操作成功~~', 'data': {}}
        id = self.get_argument('id', 0)
        act = self.get_argument('act', '')
        if not id:
            resp['code'] = -1
            resp['msg'] = "请选择要操作的账号~~"
            self.finish(resp)
            return

        if act not in ['remove', 'recover']:
            resp['code'] = -1
            resp['msg'] = "操作有误,请重试~~"
            self.finish(resp)
            return

        user_info = session.query(User).filter_by(uid=id).first()
        if not user_info:
            resp['code'] = -1
            resp['msg'] = "指定账号不存在~~"
            self.finish(resp)
            return

        if act == "remove":
            user_info.status = 0
        elif act == "recover":
            user_info.status = 1

        if user_info and user_info.uid == 1:
            resp['code'] = -1
            resp['msg'] = "该用户是演示账号,不准操作账号~~"
            self.finish(resp)
            return

        user_info.update_time = getCurrentDate()
        session.add(user_info)
        session.commit()
        self.finish(resp)
Exemple #26
0
    def post(self, *args, **kwargs):
        resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
        member_info = self.member_info
        order_sn = self.get_argument('order_sn','')
        score = self.get_argument('score',10)
        content = self.get_argument('content','')

        pay_order_info = session.query(PayOrder).filter_by(member_id=member_info.id, order_sn=order_sn).first()
        if not pay_order_info:
            resp['code'] = -1
            resp['msg'] = "系统繁忙,请稍后再试~~"
            self.write(resp)
            return

        if pay_order_info.comment_status:
            resp['code'] = -1
            resp['msg'] = "已经评价过了~~"
            self.write(resp)
            return

        pay_order_items = session.query(PayOrderItem).filter_by(pay_order_id=pay_order_info.id).all()
        food_ids = selectFilterObj(pay_order_items, "food_id")
        tmp_food_ids_str = '_'.join(str(s) for s in food_ids if s not in [None])
        model_comment = MemberComments()
        model_comment.food_ids = "_%s_" % tmp_food_ids_str
        model_comment.member_id = member_info.id
        model_comment.pay_order_id = pay_order_info.id
        model_comment.score = score
        model_comment.content = content
        session.add(model_comment)

        pay_order_info.comment_status = 1
        pay_order_info.updated_time = getCurrentDate()
        session.add(pay_order_info)

        session.commit()
        self.finish(resp)
    def post(self, *args, **kwargs):
        default_pwd = "******"
        resp = {'code': 200, 'msg': '操作成功~~', 'data': {}}
        id = self.get_argument('id', 0)
        nickname = self.get_argument('nickname', '')
        mobile = self.get_argument('mobile', '')
        email = self.get_argument('email', '')
        login_name = self.get_argument('login_name', '')
        login_pwd = self.get_argument('login_pwd', '')

        if nickname is None or len(nickname) < 1:
            resp['code'] = -1
            resp['msg'] = "请输入符合规范的姓名~~"
            self.finish(resp)
            return

        if mobile is None or len(mobile) < 1:
            resp['code'] = -1
            resp['msg'] = "请输入符合规范的手机号码~~"
            self.finish(resp)
            return

        if email is None or len(email) < 1:
            resp['code'] = -1
            resp['msg'] = "请输入符合规范的邮箱~~"
            self.finish(resp)
            return

        if login_name is None or len(login_name) < 1:
            resp['code'] = -1
            resp['msg'] = "请输入符合规范的登录用户名~~"
            self.finish(resp)
            return

        if login_pwd is None or len(email) < 6:
            resp['code'] = -1
            resp['msg'] = "请输入符合规范的登录密码~~"
            self.finish(resp)
            return

        has_in = session.query(User).filter(User.login_name == login_name,
                                            User.uid != id).first()
        if has_in:
            resp['code'] = -1
            resp['msg'] = "该登录名已存在,请换一个试试~~"
            self.finish(resp)
            return

        user_info = session.query(User).filter_by(uid=id).first()
        if user_info:
            model_user = user_info
        else:
            model_user = User()
            model_user.created_time = getCurrentDate()
            model_user.login_salt = userservice.geneSalt()

        model_user.nickname = nickname
        model_user.mobile = mobile
        model_user.email = email
        model_user.login_name = login_name
        if login_pwd != default_pwd:
            if user_info and user_info.uid == 1:
                resp['code'] = -1
                resp['msg'] = "该用户是演示账号,不准修改密码和登录用户名~~"
                self.finish(resp)

            model_user.login_pwd = userservice.genePwd(login_pwd,
                                                       model_user.login_salt)

        model_user.updated_time = getCurrentDate()
        session.add(model_user)
        session.commit()
        self.finish(resp)
Exemple #28
0
    def post(self, *args, **kwargs):
        resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
        code = self.get_argument('code', None)
        if code is None:
            resp['code'] = -1
            resp['msg'] = "需要code"
            self.write(resp)
            return

        openid = MemberService.getWeChatOpenId(code)
        if openid is None:
            resp['code'] = -1
            resp['msg'] = "调用微信出错"
            self.write(resp)
            return

        nickname = self.get_argument('nickName', '')
        sex = self.get_argument('gender', 0)
        avatar = self.get_argument('avatarUrl', '')
        '''
            判断是否已经测试过,注册了直接返回一些信息
        '''
        bind_info = session.query(OauthMemberBind).filter_by(openid=openid,
                                                             type=1).first()
        if not bind_info:
            model_member = Member()
            model_member.nickname = nickname
            model_member.sex = sex
            model_member.avatar = avatar
            model_member.salt = MemberService.geneSalt()
            model_member.updated_time = model_member.created_time = getCurrentDate(
            )
            session.add(model_member)
            session.commit()

            model_bind = OauthMemberBind()
            model_bind.member_id = model_member.id
            model_bind.type = 1
            model_bind.openid = openid
            model_bind.extra = ''
            model_bind.updated_time = model_bind.created_time = getCurrentDate(
            )
            session.add(model_bind)
            session.commit()

            bind_info = model_bind

        bind_info = session.query(OauthMemberBind).filter_by(openid=openid,
                                                             type=1).first()
        if not bind_info:
            resp['code'] = -1
            resp['msg'] = "未绑定"
            self.write(resp)
            return

        member_info = session.query(Member).filter_by(
            id=bind_info.member_id).first()
        token = "%s#%s" % (MemberService.geneAuthCode(member_info),
                           member_info.id)
        resp['data'] = {'token': token}
        self.finish(resp)
Exemple #29
0
    def createOrder(self, member_id, items=None, params=None):
        resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
        pay_price = decimal.Decimal(0.00)
        continue_cnt = 0
        food_ids = []
        for item in items:
            if decimal.Decimal(item['price']) < 0:
                continue_cnt += 1
                continue

            pay_price = pay_price + decimal.Decimal(item['price']) * int(
                item['number'])
            food_ids.append(item['id'])

        if continue_cnt >= len(items):
            resp['code'] = -1
            resp['msg'] = '商品items为空~~'
            return resp

        yun_price = params[
            'yun_price'] if params and 'yun_price' in params else 0
        note = params['note'] if params and 'note' in params else ''
        express_address_id = params[
            'express_address_id'] if params and 'express_address_id' in params else 0
        express_info = params[
            'express_info'] if params and 'express_info' in params else {}
        yun_price = decimal.Decimal(yun_price)
        total_price = pay_price + yun_price
        try:
            #为了防止并发库存出问题了,我们坐下select for update, 这里可以给大家演示下
            tmp_food_list = session.query(Food).filter(Food.id.in_( food_ids ))\
                .with_for_update().all()

            tmp_food_stock_mapping = {}
            for tmp_item in tmp_food_list:
                tmp_food_stock_mapping[tmp_item.id] = tmp_item.stock

            model_pay_order = PayOrder()
            model_pay_order.order_sn = self.geneOrderSn()
            model_pay_order.member_id = member_id
            model_pay_order.total_price = total_price
            model_pay_order.yun_price = yun_price
            model_pay_order.pay_price = pay_price
            model_pay_order.note = note
            model_pay_order.status = -8
            model_pay_order.express_status = -8
            model_pay_order.express_address_id = express_address_id
            model_pay_order.express_info = json.dumps(express_info)
            model_pay_order.updated_time = model_pay_order.created_time = getCurrentDate(
            )
            session.add(model_pay_order)
            #db.session.flush()
            for item in items:
                tmp_left_stock = tmp_food_stock_mapping[item['id']]

                if decimal.Decimal(item['price']) < 0:
                    continue

                if int(item['number']) > int(tmp_left_stock):
                    raise Exception("您购买的这美食太火爆了,剩余:%s,你购买%s~~" %
                                    (tmp_left_stock, item['number']))

                tmp_ret = session.query(Food).filter_by(id=item['id']).update(
                    {"stock": int(tmp_left_stock) - int(item['number'])})
                if not tmp_ret:
                    raise Exception("下单失败请重新下单")

                tmp_pay_item = PayOrderItem()
                tmp_pay_item.pay_order_id = model_pay_order.id
                tmp_pay_item.member_id = member_id
                tmp_pay_item.quantity = item['number']
                tmp_pay_item.price = item['price']
                tmp_pay_item.food_id = item['id']
                tmp_pay_item.note = note
                tmp_pay_item.updated_time = tmp_pay_item.created_time = getCurrentDate(
                )
                session.add(tmp_pay_item)
                #db.session.flush()

                FoodService.setStockChangeLog(item['id'], -item['number'],
                                              "在线购买")
            session.commit()
            resp['data'] = {
                'id': model_pay_order.id,
                'order_sn': model_pay_order.order_sn,
                'total_price': str(total_price)
            }
        except Exception as e:
            session.rollback()
            print(e)
            resp['code'] = -1
            resp['msg'] = "下单失败请重新下单"
            resp['msg'] = str(e)
            return resp
        return resp
Exemple #30
0
def leavingWord():
    print("回复")
    resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
    req = request.values
    member_id = req['member_id'] if 'member_id' in req else ''
    commodity_id = req['commodity_id'] if 'commodity_id' in req else ''
    information = req['content'] if 'content' in req else ''
    reply_id = req['reply_id'] if 'reply_id' in req else ''
    formid = req['formid'] if 'formid' in req else ''

    if not member_id:
        resp['code'] = -1
        resp['msg'] = "需要member_id"
        return jsonify(resp)
    if not commodity_id:
        resp['code'] = -1
        resp['msg'] = "需要commodity_id"
        return jsonify(resp)
    if not information:
        resp['code'] = -1
        resp['msg'] = "留言不能为空"
        return jsonify(resp)
    if not reply_id:
        resp['code'] = -1
        resp['msg'] = "reply_id不能为空"
        return jsonify(resp)
    if not formid:
        resp['code'] = -1
        resp['msg'] = "formid不能为空"
        return jsonify(resp)

    text = emoji.demojize(information)
    result1 = re.sub(':\S+?:', ' ', text)
    member_info = Member.query.filter_by(id=member_id).first()
    if not member_info:
        resp['code'] = -1
        resp['msg'] = "member_id不存在"
        return jsonify(resp)
    reply_count = LeavingWord.query.filter_by(
        commidity_id=commodity_id).count()
    commodity_info = CommodityInformation.query.filter_by(
        id=commodity_id).first()
    if not commodity_info:
        resp['code'] = -1
        resp['msg'] = "commodity_info不存在"
        return jsonify(resp)

    memberid = LeavingWord.query.filter_by(id=int(reply_id)).first()
    oauth_bind_info2 = OauthMemberBind.query.filter_by(
        member_id=commodity_info.authorId).first()
    if memberid:
        oauth_bind_info = OauthMemberBind.query.filter_by(
            member_id=memberid.member_id).first()
    else:
        oauth_bind_info = ''
    formid1 = commodity_info.formid
    if (int(member_id) == int(commodity_info.authorId)):
        if (int(reply_id) == 0):
            try:
                leaving_word = LeavingWord()
                goods_info = CommodityInformation.query.filter_by(
                    id=commodity_id).first()
                leaving_word.member_id = member_id
                leaving_word.commidity_id = commodity_id
                leaving_word.information = result1
                leaving_word.replyid = reply_id
                leaving_word.updated_time = getCurrentDate()
                leaving_word.created_time = getCurrentDate()
                leaving_word.formid = formid
                goods_info.last_count = int(reply_count) + 1
                db.session.add(leaving_word)
                db.session.commit()
                #发送qq小程序推送给商品拥有者
                # sendMessage(commodity_id)
            except InvalidRequestError:
                db.session.rollback()
        else:
            try:

                leaving_word = LeavingWord()
                goods_info = CommodityInformation.query.filter_by(
                    id=commodity_id).first()
                leaving_word.member_id = member_id
                leaving_word.commidity_id = commodity_id
                leaving_word.information = result1
                leaving_word.replyid = reply_id
                leaving_word.updated_time = getCurrentDate()
                leaving_word.created_time = getCurrentDate()
                leaving_word.formid = formid
                goods_info.last_count = int(reply_count) + 1
                db.session.add(leaving_word)
                db.session.commit()
                #发送qq小程序推送给商品拥有者
                # sendMessage(commodity_id)
                reply_info = LeavingWord.query.filter_by(
                    id=int(reply_id)).first()
                if reply_info:
                    formid3 = reply_info.formid
                    sendMessage(commodity_id, formid3, information,
                                oauth_bind_info.openid)
                    print("回复成功")
                    print(formid3)
                else:
                    resp['code'] = -1
                    resp['msg'] = "reply_info不存在"
                    return jsonify(resp)
            except InvalidRequestError:
                db.session.rollback()
    else:
        if (int(reply_id) == 0):
            try:
                leaving_word = LeavingWord()
                leaving_word.member_id = member_id
                leaving_word.commidity_id = commodity_id
                leaving_word.information = result1
                leaving_word.replyid = reply_id
                leaving_word.updated_time = getCurrentDate()
                leaving_word.created_time = getCurrentDate()
                leaving_word.formid = formid
                db.session.add(leaving_word)
                db.session.commit()
                sendMessage(commodity_id, formid1, information,
                            oauth_bind_info2.openid)
            except InvalidRequestError:
                db.session.rollback()
        else:
            try:
                leaving_word = LeavingWord()
                leaving_word.member_id = member_id
                leaving_word.commidity_id = commodity_id
                leaving_word.information = result1
                leaving_word.replyid = reply_id
                leaving_word.updated_time = getCurrentDate()
                leaving_word.created_time = getCurrentDate()
                leaving_word.formid = formid
                db.session.add(leaving_word)
                db.session.commit()
                reply_info = LeavingWord.query.filter_by(id=reply_id).first()
                if reply_info:
                    formid2 = reply_info.formid
                    sendMessage(commodity_id, formid2, information,
                                oauth_bind_info.openid)
                else:
                    resp['code'] = -1
                    resp['msg'] = "reply_info不存在"
                    return jsonify(resp)
                sendMessage(commodity_id, formid1, information,
                            oauth_bind_info.openid)
            except InvalidRequestError:
                db.session.rollback()
    return jsonify(resp)