eclipse网站建设,有域名怎么建立网站,北京网站制作南昌,广州地铁封闭最新消息大家好#xff0c;我是java1234_小锋老师#xff0c;看到一个不错的微信小程序宠物医院管理系统(uni-appSpringBoot后端Vue管理端)#xff0c;分享下哈。
项目视频演示
【免费】微信小程序宠物医院管理系统(uni-appSpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibi…大家好我是java1234_小锋老师看到一个不错的微信小程序宠物医院管理系统(uni-appSpringBoot后端Vue管理端)分享下哈。
项目视频演示
【免费】微信小程序宠物医院管理系统(uni-appSpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili
项目介绍
近年来科技飞速发展在经济全球化的背景之下互联网技术将进一步提高社会综合发展的效率和速度互联网技术也会涉及到各个领域而宠物医院微信小程序在网络背景下有着无法忽视的作用。信息管理系统的开发是一个不断优化的过程随着网络数据时代的到来信息管理系统与计算机的集成成为必然。
本次将以宠物医院管理方面为切入点论述了宠物医院管理的意义和内容以此展开对宠物医院的开发与建设的详细分析。从数据挖掘的角度出发了解信息管理系统的作用对宠物医院的过程以及用处进行更深一步的研究数据的处理效率以及具体的应用方向。对于宠物医院微信小程序所带来的影响将从传统管理方式进行对比分析从硬件优化、软件开发这几个方面来论述宠物医院微信小程序的优势所在分析宠物医院管理在计算机时代发展的变化趋势。 系统展示 部分代码
package com.controller;import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;import com.entity.YonghuEntity;
import com.entity.view.YonghuView;import com.service.YonghuService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
import java.io.IOException;/*** 用户* 后端接口* author * email * date 2023-04-07 10:56:52*/
RestController
RequestMapping(/yonghu)
public class YonghuController {Autowiredprivate YonghuService yonghuService;Autowiredprivate TokenService tokenService;/*** 登录*/IgnoreAuthRequestMapping(value /login)public R login(String username, String password, String captcha, HttpServletRequest request) {YonghuEntity u yonghuService.selectOne(new EntityWrapperYonghuEntity().eq(yonghuming, username));if(unull || !u.getMima().equals(password)) {return R.error(账号或密码不正确);}String token tokenService.generateToken(u.getId(), username,yonghu, 用户 );return R.ok().put(token, token);}/*** 注册*/IgnoreAuthRequestMapping(/register)public R register(RequestBody YonghuEntity yonghu){//ValidatorUtils.validateEntity(yonghu);YonghuEntity u yonghuService.selectOne(new EntityWrapperYonghuEntity().eq(yonghuming, yonghu.getYonghuming()));if(u!null) {return R.error(注册用户已存在);}Long uId new Date().getTime();yonghu.setId(uId);yonghuService.insert(yonghu);return R.ok();}/*** 退出*/RequestMapping(/logout)public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok(退出成功);}/*** 获取用户的session用户信息*/RequestMapping(/session)public R getCurrUser(HttpServletRequest request){Long id (Long)request.getSession().getAttribute(userId);YonghuEntity u yonghuService.selectById(id);return R.ok().put(data, u);}/*** 密码重置*/IgnoreAuthRequestMapping(value /resetPass)public R resetPass(String username, HttpServletRequest request){YonghuEntity u yonghuService.selectOne(new EntityWrapperYonghuEntity().eq(yonghuming, username));if(unull) {return R.error(账号不存在);}u.setMima(123456);yonghuService.updateById(u);return R.ok(密码已重置为123456);}/*** 后端列表*/RequestMapping(/page)public R page(RequestParam MapString, Object params,YonghuEntity yonghu,HttpServletRequest request){EntityWrapperYonghuEntity ew new EntityWrapperYonghuEntity();PageUtils page yonghuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yonghu), params), params));return R.ok().put(data, page);}/*** 前端列表*/IgnoreAuthRequestMapping(/list)public R list(RequestParam MapString, Object params,YonghuEntity yonghu, HttpServletRequest request){EntityWrapperYonghuEntity ew new EntityWrapperYonghuEntity();PageUtils page yonghuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yonghu), params), params));return R.ok().put(data, page);}/*** 列表*/RequestMapping(/lists)public R list( YonghuEntity yonghu){EntityWrapperYonghuEntity ew new EntityWrapperYonghuEntity();ew.allEq(MPUtil.allEQMapPre( yonghu, yonghu)); return R.ok().put(data, yonghuService.selectListView(ew));}/*** 查询*/RequestMapping(/query)public R query(YonghuEntity yonghu){EntityWrapper YonghuEntity ew new EntityWrapper YonghuEntity();ew.allEq(MPUtil.allEQMapPre( yonghu, yonghu)); YonghuView yonghuView yonghuService.selectView(ew);return R.ok(查询用户成功).put(data, yonghuView);}/*** 后端详情*/RequestMapping(/info/{id})public R info(PathVariable(id) Long id){YonghuEntity yonghu yonghuService.selectById(id);return R.ok().put(data, yonghu);}/*** 前端详情*/IgnoreAuthRequestMapping(/detail/{id})public R detail(PathVariable(id) Long id){YonghuEntity yonghu yonghuService.selectById(id);return R.ok().put(data, yonghu);}/*** 后端保存*/RequestMapping(/save)public R save(RequestBody YonghuEntity yonghu, HttpServletRequest request){yonghu.setId(new Date().getTime()new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(yonghu);YonghuEntity u yonghuService.selectOne(new EntityWrapperYonghuEntity().eq(yonghuming, yonghu.getYonghuming()));if(u!null) {return R.error(用户已存在);}yonghu.setId(new Date().getTime());yonghuService.insert(yonghu);return R.ok();}/*** 前端保存*/RequestMapping(/add)public R add(RequestBody YonghuEntity yonghu, HttpServletRequest request){yonghu.setId(new Date().getTime()new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(yonghu);YonghuEntity u yonghuService.selectOne(new EntityWrapperYonghuEntity().eq(yonghuming, yonghu.getYonghuming()));if(u!null) {return R.error(用户已存在);}yonghu.setId(new Date().getTime());yonghuService.insert(yonghu);return R.ok();}/*** 修改*/RequestMapping(/update)Transactionalpublic R update(RequestBody YonghuEntity yonghu, HttpServletRequest request){//ValidatorUtils.validateEntity(yonghu);yonghuService.updateById(yonghu);//全部更新return R.ok();}/*** 删除*/RequestMapping(/delete)public R delete(RequestBody Long[] ids){yonghuService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/RequestMapping(/remind/{columnName}/{type})public R remindCount(PathVariable(columnName) String columnName, HttpServletRequest request, PathVariable(type) String type,RequestParam MapString, Object map) {map.put(column, columnName);map.put(type, type);if(type.equals(2)) {SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd);Calendar c Calendar.getInstance();Date remindStartDate null;Date remindEndDate null;if(map.get(remindstart)!null) {Integer remindStart Integer.parseInt(map.get(remindstart).toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate c.getTime();map.put(remindstart, sdf.format(remindStartDate));}if(map.get(remindend)!null) {Integer remindEnd Integer.parseInt(map.get(remindend).toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate c.getTime();map.put(remindend, sdf.format(remindEndDate));}}WrapperYonghuEntity wrapper new EntityWrapperYonghuEntity();if(map.get(remindstart)!null) {wrapper.ge(columnName, map.get(remindstart));}if(map.get(remindend)!null) {wrapper.le(columnName, map.get(remindend));}int count yonghuService.selectCount(wrapper);return R.ok().put(count, count);}}templatedivdiv classcontainer :style{minHeight:100vh,backgroundAttachment:fixed,alignItems:center,background:url(http://codegen.caihongy.cn/20220730/2be727de991f410c97c83c9a65acacc8.png),display:flex,width:100%,backgroundSize:cover,backgroundPosition:center center,backgroundRepeat:no-repeat,justifyContent:center}el-form :style{padding:40px 20px 80px,boxShadow:0px 4px 10px 0px #78ABC3,margin:0,outline:4px solid #78ABC3,borderRadius:0,outlineOffset:30px,background:#fff,width:500px,height:auto}div v-iftrue :style{margin:0 0 10px 0,color:#000,textAlign:center,width:100%,lineHeight:60px,fontSize:26px,textShadow:4px 4px 2px rgba(120, 171, 195, 0.3),fontWeight:bold} classtitle-container宠物医院微信小程序的设计与实现登录/divdiv v-ifloginType1 classlist-item :style{width:80%,margin:0 auto 20px,alignItems:center,flexWrap:wrap,display:flex}div v-iffalse classlable :style{width:64px,lineHeight:44px,fontSize:14px,color:rgba(64, 158, 255, 1)}用户名/divinput :style{border:0px solid rgba(64, 158, 255, 1),padding:0 10px,boxShadow:0px 4px 10px 0px rgba(0,0,0,0.3020),color:#758659,width:100%,fontSize:14px,height:44px} placeholder请输入用户名 nameusername typetext v-modelrulesForm.username/divdiv v-ifloginType1 classlist-item :style{width:80%,margin:0 auto 20px,alignItems:center,flexWrap:wrap,display:flex}div v-iffalse classlable :style{width:64px,lineHeight:44px,fontSize:14px,color:rgba(64, 158, 255, 1)}密码/divinput :style{border:0px solid rgba(64, 158, 255, 1),padding:0 10px,boxShadow:0px 4px 10px 0px rgba(0,0,0,0.3020),color:#758659,width:100%,fontSize:14px,height:44px} placeholder请输入密码 namepassword typepassword v-modelrulesForm.password/divdiv :style{width:80%,margin:20px auto} v-ifroles.length1 proploginInRole classlist-typeel-radio v-foritem in roles v-bind:keyitem.roleName v-modelrulesForm.role :labelitem.roleName{{item.roleName}}/el-radio/divdiv :style{width:80%,margin:20px auto,alignItems:center,flexWrap:wrap,justifyContent:center,display:flex}el-button v-ifloginType1 :style{border:0,cursor:pointer,padding:0 24px,margin:0,outline:none,color:#fff,borderRadius:0,background:#78ABC3,width:100%,fontSize:18px,height:60px} typeprimary clicklogin() classloginInBt登录/el-button/div/el-form/div/div
/template
scriptimport menu from /utils/menu;
export default {data() {return {baseUrl:this.$base.url,loginType: 1,rulesForm: {username: ,password: ,role: ,code: ,},menus: [],roles: [],tableName: ,codes: [{num: 1,color: #000,rotate: 10deg,size: 16px},{num: 2,color: #000,rotate: 10deg,size: 16px},{num: 3,color: #000,rotate: 10deg,size: 16px},{num: 4,color: #000,rotate: 10deg,size: 16px}],};},mounted() {let menus menu.list();this.menus menus;for (let i 0; i this.menus.length; i) {if (this.menus[i].hasBackLogin是) {this.roles.push(this.menus[i])}}},created() {this.getRandCode()},destroyed() {},components: {},methods: {//注册register(tableName){this.$storage.set(loginTable, tableName);this.$storage.set(pageFlag, register);this.$router.push({path:/register})},// 登陆login() {if (!this.rulesForm.username) {this.$message.error(请输入用户名);return;}if (!this.rulesForm.password) {this.$message.error(请输入密码);return;}if(this.roles.length1) {if (!this.rulesForm.role) {this.$message.error(请选择角色);return;}let menus this.menus;for (let i 0; i menus.length; i) {if (menus[i].roleName this.rulesForm.role) {this.tableName menus[i].tableName;}}} else {this.tableName this.roles[0].tableName;this.rulesForm.role this.roles[0].roleName;}this.$http({url: ${this.tableName}/login?username${this.rulesForm.username}password${this.rulesForm.password},method: post}).then(({ data }) {if (data data.code 0) {this.$storage.set(Token, data.token);this.$storage.set(role, this.rulesForm.role);this.$storage.set(sessionTable, this.tableName);this.$storage.set(adminName, this.rulesForm.username);this.$router.replace({ path: /index/ });} else {this.$message.error(data.msg);}});},getRandCode(len 4){this.randomString(len)},randomString(len 4) {let chars [a, b, c, d, e, f, g, h, i, j, k,l, m, n, o, p, q, r, s, t, u, v,w, x, y, z, A, B, C, D, E, F, G,H, I, J, K, L, M, N, O, P, Q, R,S, T, U, V, W, X, Y, Z, 0, 1, 2,3, 4, 5, 6, 7, 8, 9]let colors [0, 1, 2,3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f]let sizes [14, 15, 16, 17, 18]let output [];for (let i 0; i len; i) {// 随机验证码let key Math.floor(Math.random()*chars.length)this.codes[i].num chars[key]// 随机验证码颜色let code #for (let j 0; j 6; j) {let key Math.floor(Math.random()*colors.length)code colors[key]}this.codes[i].color code// 随机验证码方向let rotate Math.floor(Math.random()*60)let plus Math.floor(Math.random()*2)if(plus 1) rotate -rotatethis.codes[i].rotate rotate(rotatedeg)// 随机验证码字体大小let size Math.floor(Math.random()*sizes.length)this.codes[i].size sizes[size]px}},}
};
/scriptstyle langscss scoped
.container {min-height: 100vh;position: relative;background-repeat: no-repeat;background-position: center center;background-size: cover;background: url(http://codegen.caihongy.cn/20220730/2be727de991f410c97c83c9a65acacc8.png);.list-item /deep/ .el-input .el-input__inner {border: 0px solid rgba(64, 158, 255, 1);padding: 0 10px;box-shadow: 0px 4px 10px 0px rgba(0,0,0,0.3020);color: #758659;width: 100%;font-size: 14px;height: 44px;}.list-code /deep/ .el-input .el-input__inner {border: 0px solid rgba(64, 158, 255, 1);padding: 0 10px;box-shadow: 0px 4px 10px 0px rgba(0,0,0,0.3020);outline: none;color: #758659;width: calc(100% - 20px);font-size: 14px;height: 44px;}.list-type /deep/ .el-radio__input .el-radio__inner {background: rgba(53, 53, 53, 0);border-color: #666666;}.list-type /deep/ .el-radio__input.is-checked .el-radio__inner {background: #758659;border-color: #758659;}.list-type /deep/ .el-radio__label {color: #666666;font-size: 14px;}.list-type /deep/ .el-radio__input.is-checked.el-radio__label {color: #758659;font-size: 14px;}
}
/style源码下载
链接https://pan.baidu.com/s/1r0XTQjDbmTam_cDbX0n68Q 提取码1234