def get_groupon_orders(): args = request.args status = args.get("status") page = args.get("page", 1) page_count = args.get("page_count", 20) openid = get_current_user_openid() current_user = User.get_user_by_openid(openid) if not current_user: ret = ret_dict("3000") return jsonify(ret) orders = GrouponOrder.get_orders_by_status_user(status, current_user.id, page, page_count) ret = ret_dict("0000") ret["orderList"] = [ { "title": order.groupon_title, "count": order.count, "totalFee": order.total_fee, "shippingFee": order.groupon.shipping_fee, "status": order.order_status, "orderID": order.id, } for order in orders ] return jsonify(ret)
def get_user_house_info(): # TODO: 通过opneid获取用户信息 openid = get_current_user_openid() user = User.get_user_by_openid(openid) info_list = [] ret = {} if user: for accocs in user.house_accocs: house = accocs.house if house: info = {} info["houseCode"] = house.id info["address"] = ( house.building.cell.cell_name + house.building.building_name + house.room_number ) # 小区 + 楼栋 + 门牌号 info["userType"] = accocs.user_type info["userPhone"] = accocs.user_phone info_list.append(info) ret = {"retCode": "0000", "retMsg": "success", "houseInfoList": info_list} else: ret = {"retCode": "3000", "retMsg": "该用户没有对应房产信息"} else: ret = {"retCode": "3000", "retMsg": "没有对应用户"} return jsonify(ret)
def commit_groupon_order(): """ 穿件团购订单 :return: """ args = request.args groupon_id = args.get("groupon_id") count = args.get("count") address = args.get("address") name = args.get("name") phone = args.get("phone") openid = get_current_user_openid() current_user = User.get_user_by_openid(openid) user_area = current_user.residential_area groupon = Groupon.get_groupon(groupon_id=groupon_id) product = groupon.product if not current_user: return jsonify(ret_dict("1000")) if not groupon: return jsonify(ret_dict("3000")) if not user_area: ret = {"retCode": "3000", "retMsg": "无法确定用户在哪个地区:用户id:" + str(current_user.id)} return jsonify(ret) if not product: ret = {"retCode": "5000", "retMsg": "没有关联的产品,请确认团购信息正确,groupon_id" + str(groupon.id)} return jsonify(ret) groupon_order = GrouponOrder() groupon_order.groupon_id = groupon_id groupon_order.user_id = current_user.id groupon_order.residential_area_id = user_area.id groupon_order.create_time = time.time() groupon_order.order_status = DefaultConfig.GROUPON_ORDER_STATUS_NEW groupon_order.user_phone = phone groupon_order.user_name = name groupon_order.groupon_title = groupon.title groupon_order.groupon_price = groupon.groupon_price groupon_order.product_title = product.title groupon_order.product_type = product.category groupon_order.area_name = user_area.area_name groupon_order.area_province = user_area.province.area_name groupon_order.area_city = user_area.city.area_name groupon_order.area_zone = user_area.zone.area_name groupon_order.area_stree = user_area.stree groupon_order.count = count groupon_order.total_fee = count * groupon.groupon_price + groupon.shipping_fee db.session.add(groupon_order) try: db.session.commit() order_id = groupon_order.id # 更新groupon的sold_count groupon.sold_count += 1 except IntegrityError, ex: ret = {"retCode": "5000", "retMsg": "外键依赖错误:" + ex.message} return jsonify(ret)
def delete_house_info(): if request.method == "POST": house_id = request.form.get("house_code") if house_id is None: return jsonify({"retCode": "3000", "retMsg": "参数错误"}) # TODO get_current_user_openid() 未实现 user = User.get_user_by_openid(get_current_user_openid()) if user: user_id = user.id user2house = UserHouseTable.get_user_house(user_id, house_id) if user2house: db.session.delete(user2house) db.session.commit() return jsonify({"retCode": "0000", "retMsg": "删除成功"}) else: # 不错在用户的对应关系 return jsonify({"retCode": "3000", "retMsg": "没有对应的关系"}) return jsonify({"retCode": "5000", "retMsg": "未知错误"})
def fix_order_list(): open_id = get_current_user_openid() user = User.get_user_by_openid(open_id) if user: # 获取所有的修理订单 fix_order_list = [] for accocs in user.house_accocs: house = accocs.house if house: fix_order_list.append(house.fix_orders) fix_order_list = get_all_element_in_list(fix_order_list) # 格式化返回数据 ret = ret_dict() data_list = [] for order in fix_order_list: data = {"fixOrderID": order.id, "content": order.problem, "timeStr": order.time, "status": order.status} data_list.append(data) ret["fixOrderList"] = data_list return jsonify(ret) else: return jsonify(ret_dict("3000"))
def update_house_info(): """ 更新房产信息,TODO:也许需要在用户和房屋关联表中添加phone和name :return: """ openid = get_current_user_openid() user = User.get_user_by_openid(openid) args = request.args house_id = args.get("code") user_house = UserHouseTable.get_user_house(user.id, house_id) ret = {"retCode": "0000", "retMsg": ""} if user_house: user_house.user_type = args.get("type") user.phone = args.get("phone") user.login_name = args.get("name") try: if user_house: user_house.save() user.save() except Exception: ret = {"retCode": "5000", "retMsg": Exception.message} return jsonify(ret)
def commit_customer_review(): args = request.args openid = get_current_user_openid() current_user = User.get_user_by_openid(openid) if not current_user: ret = ret_dict("3000") return jsonify(ret) groupon_id = args.get("groupon_id") score = args.get("score") content = args.get("content") customer_review = CustomerReviews() customer_review.score = score customer_review.user_id = current_user.id customer_review.groupon_id = groupon_id customer_review.create_time = time.time() customer_review.content = content db.session.add(customer_review) try: db.session.flush() db.session.commit() except IntegrityError, ex: ret = {"retCode": "5000", "retMsg": "插入数据外键依赖错误" + ex.message} return jsonify(ret)