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)
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
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
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
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)
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
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
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)
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()
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)
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()
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
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
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)
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
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)
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
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)
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)
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)
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)
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
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)