十八、WebApi接口

  • WebApi接口类的创建需要在控制类上添加[ApiController]==>声明是一个API接口
        [Route("user")]==>//路由:api接口的路径。创建控制类的方式有两种,一种是自己创建类,手动添加前面那两个注解。另一种是在项目右击---添加---控制器---调用---API---API控制器 空。即可自动创建一个接口控制类,只需要在类中写接口方法和请求方式([HttpGet()]、[HttpPost()]、[HttpPut()]、[HttpDelete()])。

 实体类:

//人员类
namespace TestWebApi.Pojo
{
    public class User
    {
        /// <summary>
        /// 主键id
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 姓名
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 邮箱
        /// </summary>
        public string Email { get; set; }

        /// <summary>
        /// 年龄
        /// </summary>
        public int Age { get; set; }

        /// <summary>
        /// 性别
        /// </summary>
        public string Sex { get; set; }

    }
}

//银行卡类
namespace TestWebApi.Pojo
{
    public class Card
    {
        /// <summary>
        /// id
        /// </summary>
        public int Id { get; set; }
        /// <summary>
        /// 卡号
        /// </summary>
        public string cardId { get; set; }
        /// <summary>
        /// 余额
        /// </summary>
        public decimal CardBlance { get; set; } = 0;
        /// <summary>
        /// 卡级别,1-金,2-银,3-铜
        /// </summary>
        public string CardLevel { get; set; }
        /// <summary>
        /// 卡状态,0-正常,1-黑户
        /// </summary>
        public string CardState { get; set; } = "正常";
        /// <summary>
        /// 所属人姓名
        /// </summary>
        public string UserName { get; set; }
        /// <summary>
        /// 开卡时间
        /// </summary>
        public DateTime CreateTime { get; set; } = DateTime.Now;
        /// <summary>
        /// 总充值金额
        /// </summary>
        public decimal AllMoney { get; set; } = 0;
        /// <summary>
        /// 密码
        /// </summary>
        public string CardPwd { get; set; } = "000000";
        /// <summary>
        /// 电话
        /// </summary>
        public string Phone { get; set; }
    }
}

接口传参工具类:

  • 定义参数类,可以减少请求时的参数编写,方便快捷。

//卡信息获取引用类
namespace TestWebApi.Common
{
    /// <summary>
    /// 除了密码意外的会员卡数据(反序列化发送给前台页面所用)
    /// </summary>
    public class CardDataDto
    {
        /// <summary>
        /// id
        /// </summary>
        public int Id { get; set; }
        /// <summary>
        /// 卡号
        /// </summary>
        public string cardId { get; set; }
        /// <summary>
        /// 余额
        /// </summary>
        public decimal CardBlance { get; set; } = 0;
        /// <summary>
        /// 卡级别,1-金,2-银,3-铜
        /// </summary>
        public string CardLevel { get; set; }
        /// <summary>
        /// 卡状态,0-正常,1-黑户
        /// </summary>
        public string CardState { get; set; } = "正常";
        /// <summary>
        /// 所属人姓名
        /// </summary>
        public string UserName { get; set; }
        /// <summary>
        /// 开卡时间
        /// </summary>
        public DateTime CreateTime { get; set; } = DateTime.Now;
        /// <summary>
        /// 总充值金额
        /// </summary>
        public decimal AllMoney { get; set; } = 0;
      
        /// <summary>
        /// 电话
        /// </summary>
        public string Phone { get; set; }

        public string CardLevelStr
        {
            get
            {
                switch (CardLevel)
                {
                    case "1":
                        return "金卡";
                    case "2":
                        return "银卡";
                    case "3":
                        return "铜卡";
                    default:
                        return "未知";
                }

            }
        }
        /// <summary>
        /// 卡状态字符串
        /// </summary>
        public string StateStr
        {
            get
            {
                if (CardState == "0")
                {
                    return "正常";
                }
                if (CardState == "1")
                {
                    return "黑户";
                }
                return "未知";
            }
        }
    }
}

//模糊查询卡传参引用类
namespace TestWebApi.Common
{
    public class CardDto
    {
        /// <summary>
        /// 卡号
        /// </summary>
        public string? cardId { get; set; }

        /// <summary>
        /// 卡级别,1-金,2-银,3-铜
        /// </summary>
        public string? CardLevel { get; set; }


        /// <summary>
        /// 卡状态,0-正常,1-黑户
        /// </summary>
        public string? CardState { get; set; }

        /// <summary>
        /// 最小余额
        /// </summary>
        public decimal? MinMoney { get; set; }


        /// <summary>
        /// 最大余额
        /// </summary>
        public decimal? MaxMoney { get; set; }

        /// <summary>
        /// 所属人姓名
        /// </summary>
        public string? UserName { get; set; }

        /// <summary>
        /// 电话
        /// </summary>
        public string? Phone { get; set; }


        /// <summary>
        /// 开始时间
        /// </summary>
        public DateTime? StartTime { get; set; }


        /// <summary>
        /// 结束时间
        /// </summary>
        public DateTime? EndTime { get; set; }


        /// <summary>
        /// 总充值金额
        /// </summary>
        public decimal? AllMoney { get; set; } = 0;

    }
}

//卡信息编辑参数引用类
namespace TestWebApi.Common
{
    /// <summary>
    /// 会员卡编辑基础数据参数
    /// </summary>
    public class CardEditDto
    {
        /// <summary>
        /// id
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 卡号
        /// </summary>
        public string cardId { get; set; }
        /// <summary>
        /// 卡级别,1-金,2-银,3-铜
        /// </summary>
        public string CardLevel { get; set; }
        /// <summary>
        /// 卡状态,0-正常,1-黑户
        /// </summary>
        public string CardState { get; set; } = "正常";
        /// <summary>
        /// 所属人姓名
        /// </summary>
        public string UserName { get; set; }
    }
}

响应信息类:

//响应返回类型类
namespace TestWebApi.Common
{
    public class WebApiResponse
    {
        public int Code { get; set; }

        public string Message { get; set; }

        public object Data { get; set; }


        public static WebApiResponse Create(int code,string message,object data)
        {
           return new WebApiResponse { Code = code, Message = message, Data = data };
        }

        public static WebApiResponse Create(int code,string message)
        {
            return Create(code,message,null);
        }
        
        public static WebApiResponse OK(object data)
        {
            return Create(0,"OK",data);
        }
        public static WebApiResponse OK()
        {
            return OK(null);
        }
    }
}

用户业务层:

namespace TestWebApi.Manage
{
    public class UserManage
    {
        /// <summary>
        /// 创建人员集合
        /// </summary>
        /// <returns></returns>
        public static List<User> CreateUser()
        {
            List<User> users = new List<User>();
            for (int i = 0; i <= 30; i++)
            {
                User user = new User();
                user.Id = i;
                user.Name = "人员" + i.ToString();
                user.Sex = i % 2 == 0 ? "男" : "女";
                user.Age = 20 + i;
                user.Email = i.ToString() + "123456@qq.com";
                users.Add(user);
            }
            return users;
        }


        /// <summary>
        /// 获取年龄大于或等于20的人员
        /// </summary>
        /// <returns></returns>
        public static List<User> GetAgeThen50(int age) 
        {
            List<User> users = CreateUser().Where(x => x.Age >= age).ToList();
            return users;
        }

        /// <summary>
        /// 获取所有年龄大于平均值的人员
        /// </summary>
        /// <returns></returns>
        public static List<User> GetAgeThenAvg() 
        {
            List<User> users = CreateUser();
            double avg = users.Average(x => x.Age);
            List<User> users1 = users.Where(x => x.Age > avg && x.Sex == "女").ToList();
            return users1;
        }


        /// <summary>
        /// 通过id查询人员
        /// </summary>
        /// <returns></returns>
        public static List<User> GetUserById(int id) 
        {
            List<User> users = CreateUser().Where(x=> x.Id == id).ToList();
            return users;
        }




        /// <summary>
        /// 多个字段模糊查询
        /// </summary>
        /// <returns></returns>
        public static List<User> GetAllByLike(string? name, string? email, int? maxAge, int? minAge, string? sex) 
        {
            List<User> users = CreateUser();
            return users;
        }



        public static List<User> SelectAll(string? name, string? email, int? maxAge, int? minAge, string? sex)
        {
            var list = CreateUser();
            List<User> users = new List<User>();
            foreach (User user in list)
            {
                //并且:两个条件都通过,这个判断才为true, 当第一个条件为fasle的时候,第二个条件就不会再去执行了
                //if(user.Email != null && user.Email.Contains(email))
                //{

                //}
                //或者:只要有一个条件通过,这个判断就通过,当第一个条件为true的时候,第二个条件就不会再去执行
                //if (user.Email == null || user.Email.Length > 10)
                //{

                //}

                //null,张三,张
                if (
                    (name == null || user.Name.Contains(name))
                    && (email == null || (user.Email != null && user.Email.Contains(email)))
                    && ((maxAge == null || user.Age > maxAge)
                    || (minAge == null || user.Age < minAge))
                    && (sex == null || user.Sex.Contains(sex))
                    )
                {
                    users.Add(user);
                }

                //综合查询 
                null,张三,张
                //if (
                //    (name == null || user.Name.Contains(name))
                //    && (email == null || (user.Email != null && user.Email.Contains(email)))
                //    && (maxAge == null || user.Age < maxAge)
                //    && (minAge == null || user.Age > minAge)
                //    && (sex == null || user.Sex.Contains(sex))
                //    )
                //{
                //    users.Add(user);
                //}

                名字
                //if (name != null && !user.Name.Contains(name))
                //{
                //    //张三 李
                //    continue;
                //}
                邮箱
                //if (email != null && !user.Email.Contains(email))
                //{
                //    continue;
                //}
                最大年龄 99, 100
                //if(maxAge != null && user.Age >= maxAge)
                //{
                //    continue;
                //}
                最小年龄 3 5 6
                //if(minAge != null && user.Age <= minAge)
                //{
                //    continue;
                //}
                性别
                //if (sex != null && user.Sex != sex)
                //{
                //    continue;
                //}
                //users.Add(user);
            }
            return users;
        }

        /// <summary>
        /// 添加一个人员
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        public static User Add(User user)
        {
            List<User> users = CreateUser();
            int id = users.Max(x => x.Id);
            user.Id = id + 1;
            users.Add(user);
            return user;
        }

        /// <summary>
        /// 修改一个人员
        /// </summary>
        /// <returns></returns>
        public static User Edit(User user)
        {
            List<User> users = CreateUser();
            User oldUser = users.FirstOrDefault(x => x.Id == user.Id);
            if (oldUser != null)
            {
                oldUser.Name = user.Name;
                oldUser.Email = user.Email;
                oldUser.Age = user.Age;
                oldUser.Sex = user.Sex;
                return oldUser;
            }
            else
            {
                return null;
            }
        }

        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public static bool Delete(int id)
        {
            List<User> users = CreateUser();
            User u = users.FirstOrDefault(x => x.Id == id);
            if (u != null)
            {
                return users.Remove(u);
            }
            return false;
        }
    }
}

用户控制层:

namespace TestWebApi.Controllers
{
    [ApiController]//声明是一个API接口
    [Route("user")]//路由:api接口的路径
    public class UserController:ControllerBase
    {

       
        /// <summary>
        /// 获取所有人员
        /// </summary>
        /// <returns></returns>
        [HttpGet("getAllUser")]
        public List<User> GetAllUser() 
        {
            List<User> users = UserManage.CreateUser();
            return users;
        }

        /// <summary>
        /// 获取年龄大于age的人员
        /// </summary>
        /// <returns></returns>
        [HttpGet("getAgeThen50")]
        public List<User> GetAgeThen50(int age)
        {
            List<User> users = UserManage.GetAgeThen50(age);
            return users;
        }


        /// <summary>
        /// 获取所有年龄大于平均值的人员
        /// </summary>
        /// <returns></returns>
        [HttpGet("getAgeThenAvg")]
        public List<User> GetAgeThenAvg() 
        {
            List<User> users = UserManage.GetAgeThenAvg();
            return users;
        }


        /// <summary>
        /// 通过Id查询人员
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        [HttpGet("getUserById")]
        public List<User> GetUserById(int id)
        {
            List<User> users = UserManage.GetUserById(id);
            return users;
        }

        /// <summary>
        /// 多个字段模糊查询
        /// </summary>
        /// <returns></returns>
        [HttpGet("getAllByLike")]
        public List<User> GetAllByLike(string? name,string?email,int?maxAge,int?minAge,string?sex) 
        {
            List<User> users = UserManage.GetAllByLike(name,email,maxAge,minAge,sex);
            return users;
        }


        //做多个参数查询,名称(模糊),Email(模糊),maxAge,minAge,sex
        //当某个参数为空时,直接跳过这个参数不查询
        /// <summary>
        /// 多参数查询
        /// </summary>
        /// <returns></returns>
        [HttpGet("selectAll")]
        public List<User> SelectAll(string? name, string? email, int? maxAge, int? minAge, string? sex)
        {
            return UserManage.SelectAll(name, email, maxAge, minAge, sex);
        }

        /// <summary>
        /// 添加一个人员
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        [HttpPost("add")]
        public User Add(User user)
        {
            //List<User> users = new List<User>();
            return UserManage.Add(user);
        }

        /// <summary>
        /// 修改一个人员
        /// </summary>
        /// <returns></returns>
        [HttpPut("edit")]
        public User Edit(User user)
        {
            return UserManage.Edit(user);
        }

        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        [HttpDelete("delete")]
        public bool Delete(int id)
        {
            return UserManage.Delete(id);
        }
    }
}

银行卡业务层:

namespace TestWebApi.Manage
{
    public class CardManage
    {
        public static List<Card> cards { get; set; }
        /// <summary>
        /// 生成伪数据
        /// </summary>
        /// <returns></returns>
        public static List<Card> CreateCards() 
        {
            if (cards == null)
            {
                cards = new List<Card>();
                for (int i = 0; i <= 20; i++)
                {
                    Card card = new Card();
                    card.Id = i;
                    card.cardId = i.ToString("000000");
                    card.CardLevel = (i % 3 + 1).ToString();
                    card.CardBlance = 0;
                    card.CardState = "0";
                    card.UserName = $"人员{i}";
                    card.CreateTime = DateTime.Now;
                    card.AllMoney = 0;
                    card.CardPwd = i.ToString("00000");
                    card.Phone = "100000" + i.ToString("000");
                    cards.Add(card);
                }
                return cards;
            }
            else 
            {
                return cards;
            }
        }

        /// <summary>
        /// 通过ID查询
        /// </summary>
        /// <returns></returns>
        public static CardDataDto GetCardById(int id) 
        {
            Card card;
            if (cards == null)
            {
                card = CreateCards().FirstOrDefault(x => x.Id == id);
            }
            else 
            {
                card = cards.FirstOrDefault(x => x.Id == id);
            }
            string json = JsonConvert.SerializeObject(card);
            CardDataDto? cardData = JsonConvert.DeserializeObject<CardDataDto>(json);
            return cardData;
            
           
        }/// <summary>
        /// 通过ID查询
        /// </summary>
        /// <returns></returns>
        public static Card GetById(int id) 
        {
            Card card;
            if (cards == null)
            {
                card = CreateCards().FirstOrDefault(x => x.Id == id);
            }
            else 
            {
                card = cards.FirstOrDefault(x => x.Id == id);
            }
            return card;
        }

        /// <summary>
        /// 通过卡号查询
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public static List<Card> GetCardByCardId(string cId) 
        {
            var card = CreateCards().Where(x => x.cardId == cId);
            return card.ToList();        
        }

        /// <summary>
        /// 通过手机号码查询
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public static List<Card> GetCardByPhone(string phone) 
        {
            var card = CreateCards().Where(x => x.Phone == phone);
            return card.ToList();        
        }

        /// <summary>
        /// 查询我的卡总共消费多少钱
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public static decimal GetCardOutMoney(string cId) 
        {
            Card card = GetCardByCardId(cId)[0];
            decimal outMoney = card.AllMoney - card.CardBlance;
            return outMoney;
        }


        /// <summary>
        /// // 查询我的卡实际消费多少钱(通过打折计算,金卡-8折,银卡-9折,铜卡不打折)
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public static WebApiResponse GetCardDiscount(int id ,decimal? money) 
        {
            CardDataDto card = GetCardById(id);
            string cardLevel = card.CardLevel;
            if (card == null) 
            {
                return WebApiResponse.Create(1,"数据不存在");
            }
            if (cardLevel == "1") //金卡
            {
                return WebApiResponse.OK(money * 0.8M);
            }
            else if (cardLevel == "2") //银卡
            {
                return WebApiResponse.OK(money * 0.9M);
            }
            else if (cardLevel == "3") //铜卡
            {
                return WebApiResponse.OK(money);
            }
            else 
            {
                return WebApiResponse.Create(4,"卡级别未知");
            }

        }

        /// <summary>
        /// 判断输入使用的手机号或者卡号的密码是否正确
        /// </summary>
        /// <param name="cardId"></param>
        /// <param name="pwd"></param>
        /// <returns></returns>
        public static bool GetYes(string cardId,string pwd)
        {
            Card? card = CreateCards().FirstOrDefault(x =>(x.cardId == cardId || x.Phone == cardId)&&(x.CardPwd == pwd));
            return card != null;
        }



        /// <summary>
        /// 模糊查询卡
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public static List<Card> Selects(CardDto dto) 
        {
            List<Card> cards1 = CreateCards();
            //存放所有符合查询条件的会员卡
            List<Card> result = new List<Card>();
            foreach (Card card in cards1)
            {
                if (string.IsNullOrEmpty(dto.cardId) || card.cardId.Contains(dto.cardId)
                    &&(string.IsNullOrEmpty(dto.CardLevel) || card.CardLevel == dto.CardLevel)
                    &&(string.IsNullOrEmpty(dto.CardState)|| card.CardState == dto.CardState)
                    &&(dto.MinMoney == null || card.CardBlance >= dto.MinMoney)
                    &&(dto.MaxMoney == null || card.CardBlance <= dto.MaxMoney)
                    &&(string.IsNullOrEmpty(dto.UserName)|| card.UserName.Contains(dto.UserName))
                    &&(string.IsNullOrEmpty(dto.Phone)|| card.Phone.Contains(dto.Phone))
                    &&(dto.StartTime == null || card.CreateTime >= dto.StartTime)
                    &&(dto.EndTime == null || card.CreateTime <= dto.EndTime)
                    && (dto.AllMoney == null || card.AllMoney <= dto.AllMoney)
                ) 
                {
                    result.Add(card);
                }
            }
            return result;
        }


        /// <summary>
        /// 修改密码
        /// </summary>
        /// <param name="id"></param>
        /// <param name="oldPwd"></param>
        /// <param name="newPwd"></param>
        /// <returns></returns>
        public static WebApiResponse UpdatePwd(int id,string oldPwd,string newPwd) 
        {
            if (id == null) 
            {
                return WebApiResponse.Create(1, "id不能为空");
            }
            if (string.IsNullOrEmpty(oldPwd) || string.IsNullOrEmpty(newPwd)) 
            {
                return WebApiResponse.Create(1, "参数不能为空");
            }
            Card card = CreateCards().FirstOrDefault(x => x.Id == id);
            if (card == null) 
            {
                return WebApiResponse.Create(1, "数据不存在");
            }
            if (card.CardPwd != oldPwd) 
            {
                return WebApiResponse.Create(1, "原密码不正确");
            }
            card.CardPwd = newPwd;
            return WebApiResponse.OK();
        }

        /// <summary>
        /// 修改手机号码
        /// </summary>
        /// <returns></returns>
        public static WebApiResponse UpdatePhone(int id,string phone) 
        {
            if (id == null) 
            {
                return WebApiResponse.Create(1,"id不能为空");
            }
            if (string.IsNullOrEmpty(phone)) 
            {
                return WebApiResponse.Create(1,"手机号不能为空");
            }
            Card card = CreateCards().FirstOrDefault(x => x.Id == id);
            if (card == null) 
            {
                return WebApiResponse.Create(2, "数据不存在");
            }
            card.Phone = phone;  
            return WebApiResponse.OK();
        }

        /// <summary>
        /// 修改基础数据:不包含:卡余额、卡状态、卡级别、密码、手机号码
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public static WebApiResponse Edit(CardEditDto dto) 
        {
            if (dto.Id == null) 
            {
                return WebApiResponse.Create(1,"id不能为空");
            }
            if (dto.UserName == null) 
            {
                return WebApiResponse.Create(1, "人员名称不能为空");
            }
            if (dto.CardState != "0" && dto.CardState != "1") 
            {
                return WebApiResponse.Create(1, "状态参数无效");
            }
            if (dto.CardLevel != "1" && dto.CardLevel != "2" && dto.CardLevel != "3") 
            {
                return WebApiResponse.Create(1, "级别参数无效");
            }
            if (string.IsNullOrEmpty(dto.cardId) || dto.cardId.Length != 6) 
            {
                return WebApiResponse.Create(1, "卡号不能为空并且长度必须是6位");
            }
            Card card = CreateCards().FirstOrDefault(x => x.Id == dto.Id);
            if (card == null)
            {
                return WebApiResponse.Create(1, "数据不存在");
            }
            card.cardId = dto.cardId;
            card.CardState = dto.CardState;
            card.CardLevel = dto.CardLevel;
            card.UserName = dto.UserName;

            //1.只去掉密码:方法一
            //Dictionary<string, object> data = new Dictionary<string, object>();
            //data["id"] = card.Id;
            //data["CardId"] = card.cardId;
            //data["CardBlance"] = card.CardBlance;
            //data["CardLevel"] = card.CardLevel;
            //data["CardState"] = card.CardState;
            //data["UserName"] = card.UserName;
            //data["CreateTime"] = card.CreateTime;
            //data["AllMoney"] = card.AllMoney;
            //data["Phone"] = card.Phone;

            2.只去掉密码:方法二
            需要在管理NuGet程序包里下载Newtonsoft.json包
            先将实体类序列化成Json格式
            //string json = JsonConvert.SerializeObject(card);
            再将json反序列化成为键值对格式
            //Dictionary<string, object>? data = JsonConvert.DeserializeObject<Dictionary<string,object>>(json);
            //data.Remove("CardPwd");

            //3.只去掉密码:方法三
            //先将实体类序列化成Json格式
            string json = JsonConvert.SerializeObject(card);
            //再将json反序列化成为新创建的没有密码字段的类的格式
            CardDataDto? data = JsonConvert.DeserializeObject<CardDataDto>(json);
            return WebApiResponse.OK(data);
        }




        /// <summary>
        /// 充值余额(总金额也要加)
        /// </summary>
        /// <param name="id"></param>
        /// <param name="money"></param>
        /// <returns></returns>
        public static WebApiResponse AddMoney(int id,decimal money) 
        {
            if (money <= 0) 
            {
                return WebApiResponse.Create(1,"充值金额必须大于0");
            }
            Card card = GetById(id);
            if (card == null ) 
            {
                return WebApiResponse.Create(2,"数据不存在");
            }
            card.AllMoney += money;
            card.CardBlance += money;
            string json = JsonConvert.SerializeObject(card);
            CardDataDto? cardDataDto = JsonConvert.DeserializeObject<CardDataDto>(json);
            return WebApiResponse.OK(cardDataDto);
        }

        /// <summary>
        /// 消费,余额减少
        /// </summary>
        /// <param name="id"></param>
        /// <param name="money"></param>
        /// <returns></returns>
        public static WebApiResponse MoneyConsume(int id, decimal money)
        {
            if (money <= 0)
            {
                return WebApiResponse.Create(1, "消费金额必须大于0");
            }
            Card card = GetById(id);
            if (card == null)
            {
                return WebApiResponse.Create(2, "数据不存在");
            }
            decimal cardBlance = card.CardBlance;
            string cardState = card.CardState;
            if (cardState != "0") 
            {
                return WebApiResponse.Create(3, "该卡已被禁用");
            }
            if (cardBlance < money) 
            {
                return WebApiResponse.Create(4, "余额不足");
            }
            card.CardBlance -= money;
            string json = JsonConvert.SerializeObject(card);
            CardDataDto? cardDataDto = JsonConvert.DeserializeObject<CardDataDto>(json);
            return WebApiResponse.OK(cardDataDto);
        }
    }
}

银行卡控制层:

namespace TestWebApi.Controllers
{
    [ApiController][ApiController]//声明是一个API接口
    [Route("card")]//路由:api接口的路径
    
    public class CardController: ControllerBase
    {
        private Card cards;
        [HttpGet("TestCard")]
        public string Test() 
        {
            return "123456";
        }

        [HttpGet("getCardById")]
        public WebApiResponse GetCardById(int id) 
        {
            CardDataDto cardDataDto = CardManage.GetCardById(id);
            if (cardDataDto == null)
            {
                return WebApiResponse.Create(1, "数据不存在");
            }
            return WebApiResponse.OK(cardDataDto);
        }


        [HttpGet("getCardByCardId")]
        public WebApiResponse GetCardByCardId(string id) 
        {
            List<Card> cards = CardManage.GetCardByCardId(id);
            if (cards == null)
            {
                return WebApiResponse.Create(1, "数据不存在");
            }
            return WebApiResponse.OK(cards);
        }
        
        
        [HttpGet("getCardByPhone")]
        public WebApiResponse GetCardByPhone(string phone) 
        {
            List<Card> cards = CardManage.GetCardByPhone(phone);
            if (cards == null)
            {
                return WebApiResponse.Create(1, "数据不存在");
            }
            return WebApiResponse.OK(cards);
        }

        // 查询我的卡总共消费多少钱
        [HttpGet("getCardOutMoney")]
        public WebApiResponse GetCardOutMoney(string cId) 
        {
            decimal outMoney = CardManage.GetCardOutMoney(cId);
            return WebApiResponse.OK(outMoney);
        }



        /// <summary>
        /// 查询我的卡实际消费多少钱(通过打折计算,金卡-8折,银卡-9折,铜卡不打折)
        /// </summary>
        /// <param name="id"></param>
        /// <param name="money"></param>
        /// <returns></returns>
        [HttpGet("getCardDiscount")]
        public WebApiResponse GetCardDiscount(int id,decimal? money)
        {
            return CardManage.GetCardDiscount(id,money);
            
        }

        /// <summary>
        /// 判断输入使用的手机号或者卡号的密码是否正确
        /// </summary>
        /// <param name="id"></param>
        /// <param name="pwd"></param>
        /// <returns></returns>
        [HttpGet("getYes")]
        public WebApiResponse GetYes(string id,string pwd)
        {
            return WebApiResponse.OK(CardManage.GetYes(id, pwd));
        }



        /// <summary>
        /// 模糊查询卡号
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        [HttpPost("select")]
        public WebApiResponse Select(CardDto dto)
        {
            return WebApiResponse.OK(CardManage.Selects(dto));
        }


        /// <summary>
        /// 修改密码
        /// </summary>
        /// <param name="id"></param>
        /// <param name="oldPwd"></param>
        /// <param name="newPwd"></param>
        /// <returns></returns>
        [HttpPost("updatePwd")]
        public WebApiResponse UpdatePwd(int id,string oldPwd,string newPwd) 
        {
            return CardManage.UpdatePwd(id,oldPwd,newPwd);
        }


        [HttpPost("updatePhone")]
        public WebApiResponse UpdatePhone(int id,string phone) 
        {
            return CardManage.UpdatePhone(id,phone);
        }

        /// <summary>
        /// 修改基础数据:不包含:卡余额、卡状态、卡级别、密码、手机号码
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        [HttpPost("edit")]
        public WebApiResponse Edit(CardEditDto dto)
        {
            return CardManage.Edit(dto);
        }

        /// <summary>
        /// 充值余额(总金额也要加)
        /// </summary>
        /// <param name="id"></param>
        /// <param name="money"></param>
        /// <returns></returns>
        [HttpPost("addMoney")]
        public WebApiResponse AddMoney(int id, decimal money)
        {
            return CardManage.AddMoney(id, money);
        }


        /// <summary>
        /// 消费,余额减少
        /// </summary>
        /// <param name="id"></param>
        /// <param name="money"></param>
        /// <returns></returns>
        [HttpPost("moneyConsume")]
        public WebApiResponse MoneyConsume(int id, decimal money)
        {
            return CardManage.MoneyConsume(id, money);
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值