Java实战宠物店在线交易平台的实现流程

作者:qq_1334611189 时间:2022-07-06 22:04:37 

该系统分为前台和后台,前台可以自主注册,后台管理员角色,除基础脚手架外,实现的功能有:
后台管理员功能有:

商品分类管理、商品管理、套餐管理、新闻分类管理、新闻管理、常见问题、关于我们、团队管理、订单查看和前台用户查看等功能。

前台用户功能有:注册登录、查看商品、购物车、支付订单、评价、照片库、新闻列表、个人中心、购买套餐等功能。

运行环境:windows/Linux均可、jdk1.8、mysql5.7、maven3.5\maven3.6、idea/eclipse均可。

Java实战宠物店在线交易平台的实现流程

Java实战宠物店在线交易平台的实现流程

Java实战宠物店在线交易平台的实现流程

Java实战宠物店在线交易平台的实现流程

Java实战宠物店在线交易平台的实现流程

Java实战宠物店在线交易平台的实现流程

系统控制器代码:

/**
* 系统控制器
* @author Admin
*
*/
@RequestMapping("/system")
@Controller
public class SystemController {

@Autowired
private OperaterLogService operaterLogService;

@Autowired
private UserService userService;

@Autowired
private DatabaseBakService databaseBakService;

@Autowired
private StaffService staffService;
@Autowired
private OrderAuthService orderAuthService;

private Logger log = LoggerFactory.getLogger(SystemController.class);

/**
* 登录页面
* @param model
* @return
*/
@RequestMapping(value="/login",method=RequestMethod.GET)
public String login(Model model){
model.addAttribute("loginTypes", LoginType.values());
return "admin/system/login";
}

/**
* 用户登录提交表单处理方法
* @param request
* @param cpacha
* @return
*/
@RequestMapping(value="/login",method=RequestMethod.POST)
@ResponseBody
public Result<Boolean> login(HttpServletRequest request,String username,String password,String cpacha,Integer type){
if(StringUtils.isEmpty(username)){
return Result.error(CodeMsg.ADMIN_USERNAME_EMPTY);
}
if(StringUtils.isEmpty(password)){
return Result.error(CodeMsg.ADMIN_PASSWORD_EMPTY);
}

//表示实体信息合法,开始验证验证码是否为空
if(StringUtils.isEmpty(cpacha)){
return Result.error(CodeMsg.CPACHA_EMPTY);
}
//说明验证码不为空,从session里获取验证码
Object attribute = request.getSession().getAttribute("admin_login");
if(attribute == null){
return Result.error(CodeMsg.SESSION_EXPIRED);
}
//表示session未失效,进一步判断用户填写的验证码是否正确
if(!cpacha.equalsIgnoreCase(attribute.toString())){
return Result.error(CodeMsg.CPACHA_ERROR);
}

if(type == LoginType.ADMINISTRATOR.getCode()){
//表示验证码正确,开始查询数据库,检验密码是否正确
User findByUsername = userService.findByUsername(username);
//判断是否为空
if(findByUsername == null){
return Result.error(CodeMsg.ADMIN_USERNAME_NO_EXIST);
}
//表示用户存在,进一步对比密码是否正确
if(!findByUsername.getPassword().equals(password)){
return Result.error(CodeMsg.ADMIN_PASSWORD_ERROR);
}
//表示密码正确,接下来判断用户状态是否可用
if(findByUsername.getStatus() == User.ADMIN_USER_STATUS_UNABLE){
return Result.error(CodeMsg.ADMIN_USER_UNABLE);
}
//检查用户所属角色状态是否可用
if(findByUsername.getRole() == null || findByUsername.getRole().getStatus() == Role.ADMIN_ROLE_STATUS_UNABLE){
return Result.error(CodeMsg.ADMIN_USER_ROLE_UNABLE);
}
//检查用户所属角色的权限是否存在
if(findByUsername.getRole().getAuthorities() == null || findByUsername.getRole().getAuthorities().size() == 0){
return Result.error(CodeMsg.ADMIN_USER_ROLE_AUTHORITES_EMPTY);
}
//检查一切符合,可以登录,将用户信息存放至session
request.getSession().setAttribute(SessionConstant.SESSION_USER_LOGIN_KEY, findByUsername);
request.getSession().setAttribute("loginType",type);

//销毁session中的验证码
request.getSession().setAttribute("admin_login", null);
//将登陆记录写入日志库
operaterLogService.add("用户【"+username+"】于【" + StringUtil.getFormatterDate(new Date(), "yyyy-MM-dd HH:mm:ss") + "】登录系统!");
log.info("用户成功登录,user = " + findByUsername);
}else{
Staff byJobNumber = staffService.findByNameAndIsStatus(username);
//判断是否为空
if(byJobNumber == null){
return Result.error(CodeMsg.ADMIN_USERNAME_NO_EXIST);
}

//表示用户存在,进一步对比密码是否正确
if(!byJobNumber.getPassword().equals(password)){
return Result.error(CodeMsg.ADMIN_PASSWORD_ERROR);
}

//检查用户所属角色状态是否可用
if(byJobNumber.getRole() == null || byJobNumber.getRole().getStatus() == Role.ADMIN_ROLE_STATUS_UNABLE){
return Result.error(CodeMsg.ADMIN_USER_ROLE_UNABLE);
}

//检查用户所属角色的权限是否存在
if(byJobNumber.getRole().getAuthorities() == null || byJobNumber.getRole().getAuthorities().size() == 0){
return Result.error(CodeMsg.ADMIN_USER_ROLE_AUTHORITES_EMPTY);
}
//检查一切符合,可以登录,将用户信息存放至session
request.getSession().setAttribute(SessionConstant.SESSION_STAFF_LOGIN_KEY, byJobNumber);
request.getSession().setAttribute("loginType",type);
//销毁session中的验证码
request.getSession().setAttribute("admin_login", null);
//将登陆记录写入日志库
operaterLogService.add("用户【"+username+"】于【" + StringUtil.getFormatterDate(new Date(), "yyyy-MM-dd HH:mm:ss") + "】登录系统!");
log.info("员工成功登录,user = " + byJobNumber);
}

return Result.success(true);
}

/**
* 登录成功后的系统主页
* @param model
* @return
*/
@RequestMapping(value="/index")
public String index(Model model){
model.addAttribute("operatorLogs", operaterLogService.findLastestLog(10));
model.addAttribute("userTotal", userService.total());
model.addAttribute("operatorLogTotal", operaterLogService.total());
model.addAttribute("databaseBackupTotal", databaseBakService.total());
model.addAttribute("onlineUserTotal", SessionListener.onlineUserCount);
return "admin/system/index";
}

/**
* 注销登录
* @return
*/
@RequestMapping(value="/logout")
public String logout(){
Integer loginType = (Integer) SessionUtil.get("loginType");
if(loginType == LoginType.ADMINISTRATOR.getCode()){
User loginedUser = SessionUtil.getLoginedUser();
if(loginedUser != null){
SessionUtil.set(SessionConstant.SESSION_USER_LOGIN_KEY, null);
}
}else if(loginType == LoginType.STAFF.getCode()){
Staff loginedStaff = SessionUtil.getLoginedStaff();
if(loginedStaff != null){
SessionUtil.set(SessionConstant.SESSION_STAFF_LOGIN_KEY,null);
}
}
return "redirect:login";
}

/**
* 无权限提示页面
* @return
*/
@RequestMapping(value="/no_right")
public String noRight(){
return "admin/system/no_right";
}

/**
* 修改用户个人信息
* @return
*/
@RequestMapping(value="/update_userinfo",method=RequestMethod.GET)
public String updateUserInfo(){
return "admin/system/update_userinfo";
}

/**
* 修改个人信息保存
* @param user
* @return
*/
@RequestMapping(value="/update_userinfo",method=RequestMethod.POST)
public String updateUserInfo(User user){
User loginedUser = SessionUtil.getLoginedUser();
loginedUser.setEmail(user.getEmail());
loginedUser.setMobile(user.getMobile());
loginedUser.setHeadPic(user.getHeadPic());
//首先保存到数据库
userService.save(loginedUser);
//更新session里的值
SessionUtil.set(SessionConstant.SESSION_USER_LOGIN_KEY, loginedUser);
return "redirect:update_userinfo";
}

/**
* 修改密码页面
* @return
*/
@RequestMapping(value="/update_pwd",method=RequestMethod.GET)
public String updatePwd(){
return "admin/system/update_pwd";
}

/**
* 修改密码表单提交
* @param oldPwd
* @param newPwd
* @return
*/
@RequestMapping(value="/update_pwd",method=RequestMethod.POST)
@ResponseBody
public Result<Boolean> updatePwd(@RequestParam(name="oldPwd",required=true)String oldPwd,
@RequestParam(name="newPwd",required=true)String newPwd
){
Integer loginType = (Integer) SessionUtil.get("loginType");
if(loginType == LoginType.ADMINISTRATOR.getCode()){
User loginedUser = SessionUtil.getLoginedUser();
if(!loginedUser.getPassword().equals(oldPwd)){
return Result.error(CodeMsg.ADMIN_USER_UPDATE_PWD_ERROR);
}
if(StringUtils.isEmpty(newPwd)){
return Result.error(CodeMsg.ADMIN_USER_UPDATE_PWD_EMPTY);
}
if(newPwd.length()<4 || newPwd.length()>32){
return Result.error(CodeMsg.ADMIN_USER_PWD_LENGTH_ERROR);
}
loginedUser.setPassword(newPwd);
//保存数据库
userService.save(loginedUser);
//更新session
SessionUtil.set(SessionConstant.SESSION_USER_LOGIN_KEY, loginedUser);
}else{
Staff loginedStaff = SessionUtil.getLoginedStaff();

Staff staff = staffService.find(loginedStaff.getId());
if(!staff.getPassword().equals(oldPwd)){
return Result.error(CodeMsg.ADMIN_USER_UPDATE_PWD_ERROR);
}
if(StringUtils.isEmpty(newPwd)){
return Result.error(CodeMsg.ADMIN_USER_UPDATE_PWD_EMPTY);
}

staff.setPassword(newPwd);

CodeMsg codeMsg = ValidateEntityUtil.validate(staff);
if (codeMsg.getCode() != CodeMsg.SUCCESS.getCode()){
return Result.error(codeMsg);
}

loginedStaff.setPassword(newPwd);
//保存数据库
staffService.save(loginedStaff);
//更新session
SessionUtil.set(SessionConstant.SESSION_STAFF_LOGIN_KEY, loginedStaff);
}

return Result.success(true);
}

/**
* 日志管理列表
* @param model
* @param operaterLog
* @param pageBean
* @return
*/
@RequestMapping(value="/operator_log_list")
public String operatorLogList(Model model,OperaterLog operaterLog,PageBean<OperaterLog> pageBean){
model.addAttribute("pageBean", operaterLogService.findList(operaterLog, pageBean));
model.addAttribute("operator", operaterLog.getOperator());
model.addAttribute("title", "日志列表");
return "admin/system/operator_log_list";
}

/**
* 删除操作日志,可删除多个
* @param ids
* @return
*/
@RequestMapping(value="/delete_operator_log",method=RequestMethod.POST)
@ResponseBody
public Result<Boolean> delete(String ids){
if(!StringUtils.isEmpty(ids)){
String[] splitIds = ids.split(",");
for(String id : splitIds){
operaterLogService.delete(Long.valueOf(id));
}
}
return Result.success(true);
}

/**
* 清空整个日志
* @return
*/
@RequestMapping(value="/delete_all_operator_log",method=RequestMethod.POST)
@ResponseBody
public Result<Boolean> deleteAll(){
operaterLogService.deleteAll();
return Result.success(true);
}
}

用户控制:

/**
* 用户控制
*/
@Controller("User")
@RequestMapping("/user")
public class UserController {
   private final Logger logger = LoggerFactory.getLogger(UserController.class);
   private final ResultMap resultMap;
   @Autowired
   private UserService userService;

@Autowired
   private UserRoleService userRoleService;

@Autowired
   public UserController(ResultMap resultMap) {
       this.resultMap = resultMap;
   }

/**
    * 返回有权限信息
    */
   @RequestMapping(value = "/getMessage", method = RequestMethod.GET)
   public ResultMap getMessage() {
       return resultMap.success().message("您拥有用户权限,可以获得该接口的信息!");
   }

/**
    * 修改用户信息页面user/userEdit.html
    */
   @RequestMapping(value = "/editUserPage")
   public String editUserPage(Long userId, Model model) {
       model.addAttribute("manageUser", userId);
       if (null != userId) {
           User user = userService.selectByPrimaryKey(userId);
           model.addAttribute("manageUser", user);
       }
       return "user/userEdit";
   }

/**
    * 更新数据库
    */
   @ResponseBody
   @RequestMapping("/updateUser")
   public String updateUser(User user) {
       return userService.updateUser(user);
   }
}

健康评估控制层:

/**
* 健康评估
*/
@Controller("HealthController")
@RequestMapping("/health")
public class HealthController {
   @Autowired
   private DiagnosisService diagnosisService;
   @Autowired
   private AppointmentService appointmentService;
   @Autowired
   private PetService petService;
   @Autowired
   private PetDailyService petDailyService;
   @Autowired
   private UserService userService;
   @Autowired
   private StandardService standardService;

/**
    * 分析页面
    */
   @RequestMapping("/assess")
   public String applyListDoctor(Model model) {
       Subject subject = SecurityUtils.getSubject();
       User user = (User) subject.getPrincipal();
       Pet pet = new Pet();
       pet.setUserId(user.getId());
       pet.setPage(1);
       pet.setLimit(100);
       MMGridPageVoBean<Pet> voBean = (MMGridPageVoBean<Pet>) petService.getAllByLimit(pet);
       List<Pet> rows = voBean.getRows();
       // 获取到该用户下所有的宠物
       model.addAttribute("pets", rows);
       List<Long> applyCount = new ArrayList<>();
       List<String> dsCount = new ArrayList<>();
       List<String> tsCount = new ArrayList<>();
       List<String> wsCount = new ArrayList<>();
       List<String> hsCount = new ArrayList<>();
       List<String> asCount = new ArrayList<>();

List<Double> pt = new ArrayList<>();
       List<Double> pw = new ArrayList<>();
       List<Double> ph = new ArrayList<>();
       List<Double> pa = new ArrayList<>();

List<Double> mt = new ArrayList<>();
       List<Double> mw = new ArrayList<>();
       List<Double> mh = new ArrayList<>();
       List<Double> ma = new ArrayList<>();

for(Pet p: rows){
           // 获取预约次数
           Appointment appointment = new Appointment();
           appointment.setPetId(p.getId());
           appointment.setPage(1);
           appointment.setLimit(1000);
           MMGridPageVoBean<Appointment>  as = (MMGridPageVoBean<Appointment>) appointmentService.getAllByLimit(appointment);
           applyCount.add(as==null? 0L : as.getTotal());

// 获取就诊记录
           Diagnosis diagnosis = new Diagnosis();
           diagnosis.setPetId(p.getId());
           diagnosis.setPage(1);
           diagnosis.setLimit(10);
           MMGridPageVoBean<Diagnosis>  ds = (MMGridPageVoBean<Diagnosis>) diagnosisService.getAllByLimit(diagnosis);
           List<Diagnosis> dsRows = ds.getRows();
           int diagnosisStatus = 0;
           for (Diagnosis d: dsRows){
               diagnosisStatus += d.getStatus();
           }
           int sw = diagnosisStatus / dsRows.size();
           switch (sw){
               case 1:dsCount.add(p.getName() + "  宠物健康,请继续保持");break;
               case 2:dsCount.add(p.getName() + "  宠物异常请及时就诊!");break;
               case 3:dsCount.add(p.getName() + "  宠物病情比较严重,请及时就医!");break;
               case 4:dsCount.add(p.getName() + "  很抱歉宠物已无法治疗!");break;
               default:dsCount.add(p.getName() + "  宠物基本健康,请继续保持");break;
           }

// 获取宠物日志
           PetDaily petDaily = new PetDaily();
           petDaily.setPetId(p.getId());
           petDaily.setPage(1);
           petDaily.setLimit(10);
           MMGridPageVoBean<PetDaily>  ps = (MMGridPageVoBean<PetDaily>) petDailyService.getAllByLimit(petDaily);
           List<PetDaily> psRows = ps.getRows();
           double t = 0;
           double w = 0;
           double h = 0;
           double a = 0;

for (PetDaily petDaily1 : psRows){
               t+=petDaily1.getTemperature();
               w+=petDaily1.getWeight();
               h+=petDaily1.getHeight();
               a+=petDaily1.getAppetite();
           }
           t = t/psRows.size();
           w = w/psRows.size();
           h = h/psRows.size();
           a = a/psRows.size();

pt.add(t);
           pw.add(w);
           ph.add(h);
           pa.add(a);

// 获取标准
           Standard standard = new Standard();
           // 对应宠物类型
           standard.setType(p.getType());
           // 健康标准
           standard.setStatus(1);
           int petAge = MyUtils.get2DateDay(MyUtils.getDate2String(p.getBirthday(), "yyyy-MM-dd"), MyUtils.getDate2String(new Date(), "yyyy-MM-dd"));
           petAge = (petAge<0? -petAge : petAge)/365;
           // 年龄
           standard.setAgeMax(petAge);
           standard.setPage(1);
           standard.setLimit(100);
           MMGridPageVoBean<Standard>  ss = (MMGridPageVoBean<Standard>) standardService.getAllByLimit(standard);
           List<Standard> ssRows = ss.getRows();
           double tsMin = 0;
           double tsMax = 0;
           double wsMin = 0;
           double wsMax = 0;
           double hsMin = 0;
           double hsMax = 0;
           double asMin = 0;
           double asMax = 0;
           for (Standard s : ssRows){
               tsMin+=s.getTempMin();
               tsMax+=s.getTempMax();
               wsMin+=s.getWeightMin();
               wsMax+=s.getWeightMax();
               hsMin+=s.getHeightMin();
               hsMax+=s.getHeightMax();
               asMin+=s.getAppetiteMin();
               asMax+=s.getAppetiteMax();
           }
           tsMin = tsMin / ssRows.size();
           tsMax = tsMax / ssRows.size();
           wsMin = wsMin / ssRows.size();
           wsMax = wsMax / ssRows.size();
           hsMin = hsMin / ssRows.size();
           hsMax = hsMax / ssRows.size();
           asMin = asMin / ssRows.size();
           asMax = asMax / ssRows.size();

mt.add(tsMax);
           mw.add(wsMax);
           mh.add(hsMax);
           ma.add(asMax);

if (t>=tsMin && t<=tsMax){
               tsCount.add("  体温正常");
           }else if (t<tsMin){
               tsCount.add( "  体温偏低");
           }else if (t>tsMax){
               tsCount.add( "  体温偏高");
           }

if (w>=wsMin && w<=wsMax){
               wsCount.add( "  体重正常");
           }else if (w<wsMin){
               wsCount.add("  体重偏低");
           }else if (w>wsMax){
               wsCount.add("  体重偏高");
           }

if (h>=hsMin && h<=hsMax){
               hsCount.add("  身高正常");
           }else if (h<hsMin){
               hsCount.add( "  身高偏低");
           }else if (h>hsMax){
               hsCount.add("  身高偏高");
           }

if (a>=asMin && a<=asMax){
               asCount.add( "  饭量正常");
           }else if (a<asMin){
               asCount.add("  饭量偏低");
           }else if (a>asMax){
               asCount.add("  饭量偏高");
           }
       }
       model.addAttribute("pets", rows);
       model.addAttribute("tsCount", tsCount);
       model.addAttribute("wsCount", wsCount);
       model.addAttribute("hsCount", hsCount);
       model.addAttribute("asCount", asCount);
       model.addAttribute("dsCount", dsCount);
       System.out.println(pt);
       model.addAttribute("pt", pt);
       model.addAttribute("ph", ph);
       model.addAttribute("pw", pw);
       model.addAttribute("pa", pa);

model.addAttribute("mt", mt);
       model.addAttribute("mh", mh);
       model.addAttribute("mw", mw);
       model.addAttribute("ma", ma);
       return "tj/assess";
   }

/**
    * 普通用户预约统计
    */
   @RequestMapping("/tjApply")
   public String tjApply(Model model) {
       Subject subject = SecurityUtils.getSubject();
       User user = (User) subject.getPrincipal();
       Appointment appointment = new Appointment();
       appointment.setUserId(user.getId());
       appointment.setPage(1);
       appointment.setLimit(99999);
       MMGridPageVoBean<Appointment> voBean = (MMGridPageVoBean<Appointment>)  appointmentService.getAllByLimit(appointment);
       List<Appointment> rows = voBean.getRows();

Integer a1 = 0;
       Integer a2 = 0;
       Integer a3 = 0;
       Integer a4 = 0;
       for (Appointment a: rows){
           switch (a.getStatus()){
               case 1: a1++;break;
               case 2: a2++;break;
               case 3: a3++;break;
               case 4: a4++;break;
           }
       }
       model.addAttribute("a1", a1);
       model.addAttribute("a2", a2);
       model.addAttribute("a3", a3);
       model.addAttribute("a4", a4);

return "tj/tjApply";
   }

/**
    * 医生预约统计
    */
   @RequestMapping("/tjApplyDoctor")
   public String tjApplyDoctor(Model model) {
       Appointment appointment = new Appointment();
       appointment.setPage(1);
       appointment.setLimit(99999);
       MMGridPageVoBean<Appointment> voBean = (MMGridPageVoBean<Appointment>)  appointmentService.getAllByLimit(appointment);
       List<Appointment> rows = voBean.getRows();

Integer a1 = 0;
       Integer a2 = 0;
       Integer a3 = 0;
       Integer a4 = 0;
       for (Appointment a: rows){
           switch (a.getStatus()){
               case 1: a1++;break;
               case 2: a2++;break;
               case 3: a3++;break;
               case 4: a4++;break;
           }
       }
       model.addAttribute("a1", a1);
       model.addAttribute("a2", a2);
       model.addAttribute("a3", a3);
       model.addAttribute("a4", a4);

return "tj/tjApplyDoctor";
   }

/**
    * 普通用户宠物日志统计
    */
   @RequestMapping("/tjDaily")
   public String tjDaily(Model model) {
       Subject subject = SecurityUtils.getSubject();
       User user = (User) subject.getPrincipal();
       Pet pet = new Pet();
       pet.setUserId(user.getId());
       pet.setPage(1);
       pet.setLimit(99999);
       MMGridPageVoBean<Pet> voBean = (MMGridPageVoBean<Pet>)  petService.getAllByLimit(pet);
       List<Pet> rows = voBean.getRows();

model.addAttribute("pets", rows);
       if (rows.size()>0){
           pet = rows.get(0);
           PetDaily daily = new PetDaily();
           daily.setPetId(pet.getId());
           daily.setPage(1);
           daily.setLimit(99999);
           MMGridPageVoBean<PetDaily> ppp = (MMGridPageVoBean<PetDaily>)  petDailyService.getAllByLimit(daily);
           List<PetDaily> list = ppp.getRows();

for (PetDaily p : list){
               p.setDateTime(MyUtils.getDate2String(p.getCreateTime(), "yyyy-MM-dd"));
           }

model.addAttribute("dailys", list);
       }

return "tj/tjDaily";
   }
   /**
    * 医生宠物日志统计
    */
   @RequestMapping("/tjDailyDoctor")
   public String tjDailyDoctor(Model model) {
       Pet pet = new Pet();
       pet.setPage(1);
       pet.setLimit(99999);
       MMGridPageVoBean<Pet> voBean = (MMGridPageVoBean<Pet>)  petService.getAllByLimit(pet);
       List<Pet> rows = voBean.getRows();

model.addAttribute("pets", rows);
       if (rows.size()>0){
           pet = rows.get(0);
           PetDaily daily = new PetDaily();
           daily.setPetId(pet.getId());
           daily.setPage(1);
           daily.setLimit(99999);
           MMGridPageVoBean<PetDaily> ppp = (MMGridPageVoBean<PetDaily>)  petDailyService.getAllByLimit(daily);
           List<PetDaily> list = ppp.getRows();

for (PetDaily p : list){
               p.setDateTime(MyUtils.getDate2String(p.getCreateTime(), "yyyy-MM-dd"));
           }

model.addAttribute("dailys", list);
       }

return "tj/tjDailyDoctor";
   }

/**
    * 普通用户查询条件数据返回宠物日志
    */
   @RequestMapping("/tjDailyData")
   @ResponseBody
   public Object tjDailyData(Long id){
       PetDaily daily = new PetDaily();
       daily.setPetId(id);
       daily.setPage(1);
       daily.setLimit(99999);
       MMGridPageVoBean<PetDaily> ppp = (MMGridPageVoBean<PetDaily>)  petDailyService.getAllByLimit(daily);
       List<PetDaily> list = ppp.getRows();
       for (PetDaily p : list){
           p.setDateTime(MyUtils.getDate2String(p.getCreateTime(), "yyyy-MM-dd"));
       }
       return list;
   }

/**
    * 医生查询条件数据返回宠物日志
    */
   @RequestMapping("/tjDailyDataDoctor")
   @ResponseBody
   public Object tjDailyDataDoctor(Long id){
       PetDaily daily = new PetDaily();
       daily.setPetId(id);
       daily.setPage(1);
       daily.setLimit(99999);
       MMGridPageVoBean<PetDaily> ppp = (MMGridPageVoBean<PetDaily>)  petDailyService.getAllByLimit(daily);
       List<PetDaily> list = ppp.getRows();
       for (PetDaily p : list){
           p.setDateTime(MyUtils.getDate2String(p.getCreateTime(), "yyyy-MM-dd"));
       }
       return list;
   }

/**
    * 用户查看医生空闲时间
    */
   @RequestMapping(value = "/freeTime")
   public String freeTime(Model model) {
       List<User> doctors = userService.listDoctor();
       model.addAttribute("doctors", doctors);

Long docId = doctors.get(0).getId();
       model.addAttribute("docName", doctors.get(0).getName());
       String nowDateYMD = MyUtils.getNowDateYMD();

List<Map<String, Object>> map = appointmentService.getFreeTimeById(docId, nowDateYMD+MyUtils.START_HOUR);
       List<String> time = new ArrayList<>();
       List<Long> value = new ArrayList<>();

for (Map<String, Object> m : map){
           String df = (String) m.get("df");
           time.add(df);
           Long v = (Long) m.get("c");
           if (v == null) {
               value.add(0L);
           }else {
               value.add(v);
           }
       }

model.addAttribute("time", time);
       model.addAttribute("value", value);

return "tj/freeTime";
   }

@RequestMapping(value = "/getFreeTime")
   @ResponseBody
   public Object getFreeTime(Long id, String date) {
       User doctors = userService.selectByPrimaryKey(id);
       Map<String, Object> result = new HashMap<>();
       result.put("n", doctors.getName());
       List<Map<String, Object>> map = appointmentService.getFreeTimeById(id, date+MyUtils.START_HOUR);
       List<String> time = new ArrayList<>();
       List<Long> value = new ArrayList<>();

for (Map<String, Object> m : map){
           String df = (String) m.get("df");
           time.add(df+"点");
           Long v = (Long) m.get("c");
           if (v == null) {
               value.add(0L);
           }else {
               value.add(v);
           }
       }
       result.put("t", time);
       result.put("v", value);
       return result;
   }
}

来源:https://blog.csdn.net/m0_59687645/article/details/122231507

标签:Java,宠物在线交易,宠物店,实战
0
投稿

猜你喜欢

  • C#实现的字符串转MD5码函数实例

    2023-03-02 15:34:43
  • Android 基于IntentService的文件下载的示例代码

    2023-10-28 23:26:02
  • maven profile动态选择配置文件详解

    2023-11-05 22:05:20
  • Hibernate一级缓存和二级缓存详解

    2023-11-16 11:58:11
  • IDEA 2019.2.3破解激活教程(亲测有效)

    2023-02-21 22:16:23
  • Feign调用中的两种Header传参方式小结

    2022-10-25 02:47:17
  • java求余的技巧汇总

    2023-08-06 06:33:16
  • Mybatis 动态SQL的几种实现方法

    2023-11-10 12:15:15
  • Java字符串操作和C#字符串操作的不同小结

    2022-02-15 07:21:14
  • 史上最全图文讲解Java泛型

    2022-08-23 20:27:47
  • pom文件中${project.basedir}的使用

    2021-12-24 04:24:11
  • Java String类的常用方法汇总

    2022-04-10 11:58:24
  • Java中List Set和Map之间的区别_动力节点Java学院整理

    2022-12-11 04:57:38
  • springboot2.x 接入阿里云市场短信发送的实现

    2023-09-20 23:03:57
  • C#实现鼠标移动到曲线图上显示值的方法

    2023-06-01 00:56:06
  • 深入理解Java设计模式之外观模式

    2023-05-02 09:48:00
  • C#中实现Json序列化与反序列化的几种方式

    2021-11-06 01:31:07
  • SpringBoot、mybatis返回树结构的数据实现

    2022-05-12 18:56:08
  • 通过Java实现反向代理集群服务的平滑分配

    2023-05-28 12:51:54
  • 简单通用JDBC辅助类封装(实例)

    2021-10-14 23:09:28
  • asp之家 软件编程 m.aspxhome.com