def create(self, request, *args, **kwargs): try: category = request.data.get('category') money = request.data.get('money') remark = request.data.get('remark') token = request.data.get('token') date = request.data.get('date') auth_user = get_user_by_token(token) if auth_user: iaer = Iaer() iaer.user = User.objects.get(auth_user=auth_user) iaer.money = money iaer.category = category iaer.remark = remark iaer.created = timezone.now() if int(money) > 0: iaer.money_type = 1 else: iaer.money_type = 0 try: iaer.date = datetime.strptime(date, '%Y-%m-%d').date() except ValueError: print("date format error: %s" % date) iaer.save() response = IaerSerializer(iaer).data return json_response(response, CODE_SUCCESS, MSG_ADD_IAER_SUCCESS) else: return invalid_token_response() except Exception as e: return save_error_log(request, e)
def update(self, request, *args, **kwargs): token = request.data.get('token') home_show_current = request.data.get('home_show_current', False) home_show_this_month = request.data.get('home_show_this_month', False) home_show_this_year = request.data.get('home_show_this_year', False) monthly_fund = request.data.get('monthly_fund', 0) yearly_fund = request.data.get('yearly_fund', 0) try: auth_user = get_user_by_token(token) if auth_user: user = User.objects.get(auth_user=auth_user) if Setting.objects.filter(user_id=user.id): setting = Setting.objects.get(user_id=user.id) else: setting = Setting() setting.home_show_current = home_show_current setting.home_show_this_month = home_show_this_month setting.home_show_this_year = home_show_this_year setting.monthly_fund = monthly_fund setting.yearly_fund = yearly_fund setting.user = user setting.save() return json_response( SettingSerializer(setting).data, CODE_SUCCESS, MSG_UPDATE_SETTING_SUCCESS) else: return invalid_token_response() except Exception as e: return save_error_log(request, e)
def destroy(self, request, *args, **kwargs): try: token = request.data.get('token') auth_user = get_user_by_token(token) if auth_user: iaer = self.get_object() if iaer: try: response = super(IaerViewSet, self).destroy(request, *args, **kwargs) print("168: " + str(response.status_code)) if response.status_code != status.HTTP_204_NO_CONTENT: iaer.id = -1 except Exception as e: iaer.id = -1 save_error_log(request, e) event_json = IaerSerializer(iaer).data return json_response(event_json, CODE_SUCCESS, MSG_DELETE_IAER_SUCCESS) else: return simple_json_response(CODE_NO_CONTENT, MSG_204) else: return invalid_token_response() except Exception as e: return save_error_log(request, e)
def destroy(self, request, *args, **kwargs): try: token = request.data.get('token') user = get_user_by_token(token) if user: red_envelope = self.get_object() if red_envelope: try: response = super(RedEnvelopeViewSet, self).destroy(request, *args, **kwargs) if response.status_code != status.HTTP_204_NO_CONTENT: red_envelope.id = -1 except Exception as e: red_envelope.id = -1 save_error_log(request, e) event_json = RedEnvelopeSerializer(red_envelope).data return json_response(event_json, CODE_SUCCESS, MSG_DELETE_RED_ENVELOPE_SUCCESS) else: return simple_json_response(CODE_NO_CONTENT, MSG_204) else: return invalid_token_response() except Exception as e: return save_error_log(request, e)
def login_view(request): username = request.data.get('username', '').lower() password = request.data.get('password') token = request.data.get('token') try: if token: auth_user = Token.objects.get(key=token).user else: auth_user = authenticate(username=username, password=password) if not auth_user and validate_email(username): auth_user = get_user(email=username) if not auth_user: auth_user = authenticate(username=user.username, password=password) if auth_user: user = User.objects.get(auth_user=auth_user) if user: if auth_user.is_active: response_data = UserSerializer(user).data if Token.objects.filter(user=auth_user): response_data['token'] = Token.objects.get(user=auth_user).key return json_response(response_data, CODE_SUCCESS, MSG_LOGIN_SUCCESS) else: return invalid_token_response() else: return simple_json_response(CODE_NOT_ACTIVE, MSG_NOT_ACTIVE_USER) else: return simple_json_response(CODE_INCORRECT_USER_NAME_OR_PASSWORD, MSG_INCORRECT_USER_NAME_OR_PASSWORD) else: return simple_json_response(CODE_INCORRECT_USER_NAME_OR_PASSWORD, MSG_INCORRECT_USER_NAME_OR_PASSWORD) except Exception as e: return save_error_log(request, e)
def retrieve(self, request, *args, **kwargs): token = request.query_params.get('token') try: auth_user = get_user_by_token(token) if auth_user: response = super(UserViewSet, self).retrieve(request, *args, **kwargs).data return json_response(response, CODE_SUCCESS, MSG_GET_USER_DETAIL_SUCCESS) else: return invalid_token_response() except Exception as e: return save_error_log(request, e)
def update(self, request, *args, **kwargs): token = request.data.get('token') user_name = request.data.get('user_name') phone = request.data.get('phone') email = request.data.get('email') gender = request.data.get('gender') birthday = request.data.get('birthday') hobbies = request.data.get('hobbies') base64 = request.data.get('base64') try: user = get_user_by_token(token) if user: if AuthUser.objects.filter(user=user): user = AuthUser.objects.get(user=user) if email: if AuthUser.objects.filter( username__iexact=email ) or AuthUser.objects.filter(email__iexact=email): return simple_json_response( CODE_DUPLICATE_USER, MSG_DUPLICATE_EMAIL) else: user.email = email user.save() if user_name: user.user_name = user_name if phone: if AuthUser.objects.filter(phone=phone): return simple_json_response( CODE_DUPLICATE_PHONE, MSG_DUPLICATE_PHONE) else: user.phone = phone if gender: user.gender = gender if birthday: user.birthday = birthday if hobbies: user.hobbies = hobbies if base64: image_name = user.username + time.strftime( '%Y%m%d%H%M%S') + PROFILE_FOOTER_IMAGE user.save() response_data = UserSerializer(user).data response_data['token'] = Token.objects.get(user=user).key return json_response(response_data, CODE_SUCCESS, MSG_UPDATE_USER_INFO_SUCCESS) return invalid_token_response() except Exception as e: return save_error_log(request, e)
def list(self, request, *args, **kwargs): try: token = request.query_params.get('token') user = get_user_by_token(token) if user: year = datetime.now().year month = datetime.now().month response_data = super(IaerViewSet, self).list(request, *args, **kwargs).data income = 0 expenditure = 0 for iaer in self.get_queryset(): if iaer.money > 0: income += iaer.money else: expenditure -= iaer.money response_data['current_income'] = income response_data['current_expenditure'] = expenditure if int(self.request.query_params.get('top_list_size', 0)) == 0: this_month_income = 0 this_month_expenditure = 0 for iaer in self.get_queryset().filter( Q(date__year=year) & Q(date__month=month)): if iaer.money > 0: this_month_income += iaer.money else: this_month_expenditure -= iaer.money response_data['this_month_income'] = this_month_income response_data[ 'this_month_expenditure'] = this_month_expenditure this_year_income = 0 this_year_expenditure = 0 for iaer in self.get_queryset().filter(date__year=year): if iaer.money > 0: this_year_income += iaer.money else: this_year_expenditure -= iaer.money response_data['this_year_income'] = this_year_income response_data[ 'this_year_expenditure'] = this_year_expenditure return json_response(response_data, CODE_SUCCESS, MSG_GET_IAERS_SUCCESS) else: return invalid_token_response() except Exception as e: return save_error_log(request, e)
def list(self, request, *args, **kwargs): try: serializer = self.get_serializer(data=request.data) serializer.is_valid() token = request.data.get('token') auth_user = get_user_by_token(token) if auth_user: return json_response(super(UserViewSet, self).list(request, *args, **kwargs).data, CODE_SUCCESS, MSG_GET_USERS_SUCCESS) else: return invalid_token_response() except Exception as e: return save_error_log(request, e)
def list(self, request, *args, **kwargs): try: token = request.query_params.get('token') user = get_user_by_token(token) if user: total = 0 queryset = self.get_queryset() for rer in queryset: total += int(rer.money) response_data = super(RedEnvelopeViewSet, self).list(request, *args, **kwargs).data response_data['total'] = total return json_response(response_data, CODE_SUCCESS, MSG_GET_RED_ENVELOPES_SUCCESS) else: return invalid_token_response() except Exception as e: return save_error_log(request, e)
def retrieve(self, request, *args, **kwargs): token = request.query_params.get('token') try: auth_user = get_user_by_token(token) if auth_user: user = User.objects.get(auth_user=auth_user) if Setting.objects.filter(user_id=user.id): setting = Setting.objects.get(user_id=user.id) else: setting = Setting() setting.created = timezone.now() setting.user = user setting.save() return json_response( SettingSerializer(setting).data, CODE_SUCCESS, MSG_GET_SETTING_SUCCESS) else: return invalid_token_response() except Exception as e: return save_error_log(request, e)
def create(self, request, *args, **kwargs): try: money_from = request.data.get('money_from') money = request.data.get('money') remark = request.data.get('remark') token = request.data.get('token') user = get_user_by_token(token) if user: red_envelope = RedEnvelope() red_envelope.user = User.objects.get(auth_user=user) red_envelope.money = money red_envelope.money_from = money_from red_envelope.remark = remark red_envelope.created = timezone.now() red_envelope.save() response = RedEnvelopeSerializer(red_envelope).data return json_response(response, CODE_SUCCESS, MSG_ADD_RED_ENVELOPE_SUCCESS) else: return invalid_token_response() except Exception as e: return save_error_log(request, e)