ToB企服应用市场:ToB评测及商务社交产业平台

标题: 宠物管理系统:Service层 [打印本页]

作者: 吴旭华    时间: 2024-12-24 14:58
标题: 宠物管理系统:Service层
        LoginService
  1. package com.wzb.service;
  2. import com.wzb.bean.User;
  3. public interface LoginService {
  4.     User login();
  5.     boolean register();
  6. }
复制代码
        LoginServiceImpl
  1. package com.wzb.service.impl;
  2. import com.wzb.bean.User;
  3. import com.wzb.dao.UserDao;
  4. import com.wzb.dao.impl.UserDaoImpl;
  5. import com.wzb.service.LoginService;
  6. import com.wzb.utils.captcha.CaptchaUtils;
  7. import com.wzb.utils.md5.MD5Util;
  8. import java.util.ArrayList;
  9. import java.util.Scanner;
  10. public class LoginServiceImpl implements LoginService {
  11.     private final Scanner sc = new Scanner(System.in);
  12.     private final UserDao userDao = new UserDaoImpl();
  13.     @Override
  14.     public User login() {
  15.         ArrayList<User> userList = userDao.getAllUser();
  16.         if (userList.isEmpty()) {
  17.             System.out.println("user is not exist");
  18.             return null;
  19.         }
  20.         System.out.println("Welcome login!");
  21.         System.out.println("please input username");
  22.         String username = sc.nextLine();
  23.         for (User user : userList) {
  24.             if (user.getUsername().equals(username)) {
  25.                 System.out.println("please input password");
  26.                 String password = sc.nextLine();
  27.                 String realPassword = MD5Util.md5(password);
  28.                 if (realPassword.equals(user.getPassword())) {
  29.                     String captcha = CaptchaUtils.generateCode(6);
  30.                     System.out.println("captcha is: " + captcha);
  31.                     System.out.println("please input captcha: ");
  32.                     String s = sc.nextLine();
  33.                     if (s.equalsIgnoreCase(captcha)) {
  34.                         System.out.println("login successfully");
  35.                         return user;
  36.                     } else {
  37.                         System.out.println("error captcha");
  38.                         return null;
  39.                     }
  40.                 } else {
  41.                     System.out.println("error password");
  42.                     return null;
  43.                 }
  44.             }
  45.         }
  46.         System.out.println("username not found");
  47.         return null;
  48.     }
  49.     public boolean register() {
  50.         System.out.println("Welcome to register");
  51.         //TODO 日后需要检查用户名和密码的合法性
  52.         System.out.println("please input your username");
  53.         String username = sc.nextLine();
  54.         System.out.println("please input your password");
  55.         String password = sc.nextLine();
  56.         String realPassword = MD5Util.md5(password);
  57.         System.out.println("please input your phoneNumber");
  58.         String phoneNumber = sc.nextLine();
  59.         User user = new User(userDao.getNextId(), username, realPassword, phoneNumber);
  60.         userDao.insert(user);
  61.         return true;
  62.     }
  63. }
复制代码
        UserService
  1. package com.wzb.service;
  2. import com.wzb.bean.User;
  3. /**
  4. * 用户服务
  5. */
  6. public interface UserService {
  7.     User userLogin();
  8.     boolean userRegister();
  9.     void showUser(User user);
  10.     boolean reCharge(User user);
  11.     boolean changePassword(User user);
  12.     boolean changeAddress(User user);
  13.     boolean deleteMyself(User user);
  14. }
复制代码
        UserServiceImpl
  1. package com.wzb.service.impl;
  2. import com.wzb.bean.Pet;
  3. import com.wzb.bean.User;
  4. import com.wzb.dao.UserDao;
  5. import com.wzb.dao.impl.UserDaoImpl;
  6. import com.wzb.service.LoginService;
  7. import com.wzb.service.PetService;
  8. import com.wzb.service.UserService;
  9. import com.wzb.utils.captcha.CaptchaUtils;
  10. import com.wzb.utils.md5.MD5Util;
  11. import java.time.LocalDateTime;
  12. import java.util.ArrayList;
  13. import java.util.Scanner;
  14. public class UserServiceImpl implements UserService {
  15.     private final LoginService login = new LoginServiceImpl();
  16.     private final PetService petService = new PetServiceImpl();
  17.     private final UserDao userDao = new UserDaoImpl();
  18.     private final Scanner sc = new Scanner(System.in);
  19.     @Override
  20.     public User userLogin() {
  21.         return login.login();
  22.     }
  23.     @Override
  24.     public boolean userRegister() {
  25.         return login.register();
  26.     }
  27.     @Override
  28.     public void showUser(User user) {
  29.         System.out.println("当前登录用户信息为:");
  30.         System.out.println("用户名:" + user.getUsername());
  31.         System.out.println("账户余额为:" + user.getMoney());
  32.         System.out.println("地址为:" + user.getAddress());
  33.         ArrayList<Pet> petList = new ArrayList<>();
  34.         ArrayList<Integer> petIdList = user.getPetList();
  35.         for (Integer id : petIdList) {
  36.             petList.add(petService.getById(id));
  37.         }
  38.         System.out.println("该用户的宠物有:" + petList);
  39.         System.out.println("该用户的订单有:" + user.getOrderList());
  40.         System.out.println();
  41.     }
  42.     @Override
  43.     public boolean reCharge(User user) {
  44.         System.out.println(user.getUsername() + "的账户余额是" + user.getMoney());
  45.         System.out.println("请输入想要充值的金额-->");
  46.         int money = Integer.parseInt(sc.nextLine());
  47.         user.addMoney(money);
  48.         System.out.println("充值成功");
  49.         user.setUpdateTime(LocalDateTime.now());
  50.         System.out.println(user.getUsername() + "的账户余额是" + user.getMoney());
  51.         userDao.saveUpdatedUserById(user);  // 更新后立刻保存
  52.         return true;
  53.     }
  54.     @Override
  55.     public boolean changePassword(User user) {
  56.         System.out.println("修改密码,若非本人操作,请立即冻结账号");
  57.         System.out.println("请输入手机号码");
  58.         String phoneNumber = sc.nextLine();
  59.         if (phoneNumber.equals(user.getPhoneNumber())) {
  60.             String captcha = CaptchaUtils.generateCode(6);
  61.             System.out.println("验证码是:" + captcha);
  62.             System.out.println("请输入验证码");
  63.             String s = sc.nextLine();
  64.             if (s.equalsIgnoreCase(captcha)) {
  65.                 System.out.println("请输入新密码");
  66.                 String password = sc.nextLine();
  67.                 System.out.println("请确认密码");
  68.                 String p = sc.nextLine();
  69.                 if (p.equals(password)) {
  70.                     String realPassword = MD5Util.md5(password);
  71.                     user.setPassword(realPassword);
  72.                     user.setUpdateTime(LocalDateTime.now());
  73.                     userDao.saveUpdatedUserById(user);  // 更新后立刻保存
  74.                     return true;
  75.                 } else {
  76.                     System.out.println("两次密码不一致,修改失败");
  77.                     return false;
  78.                 }
  79.             } else {
  80.                 System.out.println("验证码不一致,修改密码失败");
  81.                 return false;
  82.             }
  83.         } else {
  84.             System.out.println("电话不匹配,修改密码失败");
  85.             return false;
  86.         }
  87.     }
  88.     @Override
  89.     public boolean changeAddress(User user) {
  90.         System.out.println("请输入用户的地址");
  91.         String address = sc.nextLine();
  92.         user.setAddress(address);
  93.         user.setUpdateTime(LocalDateTime.now());
  94.         System.out.println("用户" + user.getUsername() + "的地址是" + user.getAddress());
  95.         userDao.saveUpdatedUserById(user);  // 更新后立刻保存
  96.         return true;
  97.     }
  98.     @Override
  99.     public boolean deleteMyself(User user) {
  100.         System.out.println("你确定要注销本账户吗?");
  101.         System.out.println("该操作无法复原!");
  102.         System.out.println("请输入“我想注销 + 用户名”继续");
  103.         String answer = "我想注销" + user.getUsername();
  104.         String input = sc.nextLine();
  105.         if (answer.equals(input)) {
  106.             userDao.deleteUserById(user.getId());  // 删除后立刻保存
  107.             return true;
  108.         } else {
  109.             return false;
  110.         }
  111.     }
  112. }
复制代码
 
 
 


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4