首次进入小程序选择添加宝宝,可以在"我的"里面再次添加多个宝宝。
添加宝宝需要填写宝宝的小名,姓名,性别,我是宝宝的(爸爸、妈妈、姥姥…)等基本信息,在系统中以小名作为宝宝的称呼。
添加完成后进入"亲宝宝"目录,随后每次进入小程序都会先进入"亲宝宝"目录。
大目录分为"亲宝宝",“商城”,“系统通知”,"我的"四个模块。
"亲宝宝"页面中可以选择已经添加的宝宝,每个宝宝的内容分开记录。下次进入小程序时页面展示上次退出系统前最后一次选择的宝宝。
"亲宝宝"中展示已选择宝宝的小名、成长天数。
"亲宝宝"页面中以日志的形式(可以上传照片、视频)记录和展示宝宝的日常生活。
"亲宝宝"页面中可以邀请家人共同关注宝宝,由邀请人决定被邀请人的身份爸爸、妈妈、姥姥…),被邀请人接受后,该宝宝加入到被邀请人的宝宝目录中。
“亲宝宝"中有"云相册”,“生长记录”,“疫苗接种”,“大事记”,"亲友团"五个子目录。
"云相册"用于上传宝宝的照片。
“生长记录”-"记录列表"中根据提示输入身高、体重、头围,自动生成记录生成时的日期,
“生长记录”-“身高曲线”,“生长记录”-"体重曲线"中以折线图展示宝宝的成长曲线。
"疫苗接种"按照宝宝生长程度列出宝宝需要接种的疫苗、剂次,手动选择是否接种、接种时间。
"大事记"中以日志的形式记录和展示宝宝的"第一次"的格式记录和展示。
“亲友团”。初次添加宝宝的用户和第8条接受邀请的用户会被加入宝宝的亲友团,"亲友团"页面用于展示亲友团成员和来访记录。
"商城"模块后台可上架商品,有搜索、购物车,订单功能。
"系统通知"用于显示体统发送的通知,可以通过系统在对应时间通知宝宝打疫苗。
系统总体功能结构图如下所示:
程序上交给用户进行使用时,需要提供程序的操作流程图,这样便于用户容易理解程序的具体工作步骤,现如今程序的操作流程都有一个大致的标准,即先通过登录页面提交登录数据,通过程序验证正确之后,用户才能在程序功能操作区页面操作对应的功能。
系统总体E-R图设计如下所示:
四.部分效果展示
4.1用户微信端实现效果
用户登录通过账号、密码页面,进入到系统小程序主界面,进入到操作界面,进行相对应操作,如下图所示。
小程序首页是用户注册登录后进入的第一个界面,包括轮播图、关于我们、商城推荐、系统通知等信息,界面如下图所示:
用户进入亲宝宝界面,能够添加宝宝的相关信息,界面如下图所示:
用户进入商城界面,首先能够进行查询母婴商品的相关信息,界面如下图所示:
用户进入某个母婴商品的详情界面,可以查看商品的库存、价格、商品介绍等信息,并可进行收藏、评论、加入购物车和立即购买等操作,界面如下图所示:
用户进入宝宝日志界面,能够进行添加宝宝的日志内容,界面如下所示:
用户进入宝宝相册界面,能够进行上传宝宝的相关相册图片信息,界面如下所示:
用户进入生长记录界面,能够进行添加成长记录的操作,界面如下所示:
用户进入疫苗接种界面,能够进行添加每次的疫苗接种信息,添加完成后可查看对应的疫苗接种信息操作,界面如下所示:
我的,在我的页面包括亲宝宝、宝宝日志、宝宝相册、生长记录、大事记、亲友团、疫苗接种等详细信息进行操作,如下图所示。
4.2后台管理端实现效果
五.部分功能代码
/\*\*
\* 权限(Token)验证
\*/
@Component
public class AuthorizationInterceptor implements HandlerInterceptor {
public static final String LOGIN\_TOKEN\_KEY = "Token";
@Autowired
private TokenService tokenService;
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String servletPath = request.getServletPath();
if("/dictionary/page".equals(request.getServletPath()) || "/file/upload".equals(request.getServletPath()) || "/yonghu/register".equals(request.getServletPath()) ){//请求路径是字典表或者文件上传 直接放行
return true;
}
//支持跨域请求
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with,request-source,Token, Origin,imgType, Content-Type, cache-control,postman-token,Cookie, Accept,authorization");
response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
IgnoreAuth annotation;
if (handler instanceof HandlerMethod) {
annotation = ((HandlerMethod) handler).getMethodAnnotation(IgnoreAuth.class);
} else {
return true;
}
//从header中获取token
String token = request.getHeader(LOGIN\_TOKEN\_KEY);
/\*\*
\* 不需要验证权限的方法直接放过
\*/
if(annotation!=null) {
return true;
}
TokenEntity tokenEntity = null;
if(StringUtils.isNotBlank(token)) {
tokenEntity = tokenService.getTokenEntity(token);
}
if(tokenEntity != null) {
request.getSession().setAttribute("userId", tokenEntity.getUserid());
request.getSession().setAttribute("role", tokenEntity.getRole());
request.getSession().setAttribute("tableName", tokenEntity.getTablename());
request.getSession().setAttribute("username", tokenEntity.getUsername());
return true;
}
PrintWriter writer = null;
response.setCharacterEncoding("UTF-8");
response.setContentType("application/json; charset=utf-8");
try {
writer = response.getWriter();
writer.print(JSONObject.toJSONString(R.error(401, "请先登录")));
} finally {
if(writer != null){
writer.close();
}
}
// throw new EIException("请先登录", 401);
return false;
}
}
最后
总结
面试难免让人焦虑不安。经历过的人都懂的。但是如果你提前预测面试官要问你的问题并想出得体的回答方式,就会容易很多。
此外,都说“面试造火箭,工作拧螺丝”,那对于准备面试的朋友,你只需懂一个字:刷!
给我刷刷刷刷,使劲儿刷刷刷刷刷!今天既是来谈面试的,那就必须得来整点面试真题,这不花了我整28天,做了份“Java一线大厂高岗面试题解析合集:JAVA基础-中级-高级面试+SSM框架+分布式+性能调优+微服务+并发编程+网络+设计模式+数据结构与算法等”
且除了单纯的刷题,也得需准备一本【JAVA进阶核心知识手册】:JVM、JAVA集合、JAVA多线程并发、JAVA基础、Spring 原理、微服务、Netty与RPC、网络、日志、Zookeeper、Kafka、RabbitMQ、Hbase、MongoDB、Cassandra、设计模式、负载均衡、数据库、一致性算法、JAVA算法、数据结构、加密算法、分布式缓存、Hadoop、Spark、Storm、YARN、机器学习、云计算,用来查漏补缺最好不过。
Zookeeper、Kafka、RabbitMQ、Hbase、MongoDB、Cassandra、设计模式、负载均衡、数据库、一致性算法、JAVA算法、数据结构、加密算法、分布式缓存、Hadoop、Spark、Storm、YARN、机器学习、云计算,用来查漏补缺最好不过。
[外链图片转存中…(img-zroikKhd-1723263047075)]