Java vida privada 300 yuanes, completa el sistema de gestión de voluntarios JavaWeb (4)
necesitar
Recibí un pedido solicitando completar un sitio web de diseño de curso, tanto en la parte delantera como en la trasera, y la tarifa es de 300 yuanes.
análisis de la demanda
Pila de tecnología utilizada:
Interfaz: springboot + vue + layui + maven + mysql
Fondo: primavera + jsp + tomcat8 + mysql
1. Seleccione la plantilla que se ha desarrollado en la interfaz y cambie algunos detalles directamente
2. Cree uno y haga clic para verificar varios atributos en el fondo del sistema de gestión de voluntarios, y el generador de código verificará condiciones como adiciones, eliminaciones, cambios y comprobaciones, y luego lo generará automáticamente.
parte del código
capa de controlador:
/**
* 新闻资讯
* 后端接口
* @author
* @email
* @date 2022-03-15 20:26:16
*/
@RestController
@RequestMapping("/news")
public class NewsController {
@Autowired
private NewsService newsService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,NewsEntity news,
HttpServletRequest request){
EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){
EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( NewsEntity news){
EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
ew.allEq(MPUtil.allEQMapPre( news, "news"));
return R.ok().put("data", newsService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(NewsEntity news){
EntityWrapper< NewsEntity> ew = new EntityWrapper< NewsEntity>();
ew.allEq(MPUtil.allEQMapPre( news, "news"));
NewsView newsView = newsService.selectView(ew);
return R.ok("查询新闻资讯成功").put("data", newsView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
NewsEntity news = newsService.selectById(id);
return R.ok().put("data", news);
}
/**
* 前端详情
*/
@IgnoreAuth
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
NewsEntity news = newsService.selectById(id);
return R.ok().put("data", news);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody NewsEntity news, HttpServletRequest request){
news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(news);
newsService.insert(news);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody NewsEntity news, HttpServletRequest request){
news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(news);
newsService.insert(news);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody NewsEntity news, HttpServletRequest request){
//ValidatorUtils.validateEntity(news);
newsService.updateById(news);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
newsService.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 Map<String, 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));
}
}
Wrapper<NewsEntity> wrapper = new EntityWrapper<NewsEntity>();
if(map.get("remindstart")!=null) {
wrapper.ge(columnName, map.get("remindstart"));
}
if(map.get("remindend")!=null) {
wrapper.le(columnName, map.get("remindend"));
}
int count = newsService.selectCount(wrapper);
return R.ok().put("count", count);
}
}
<!-- 首页 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>首页</title>
<link rel="stylesheet" href="./layui/css/layui.css">
<!-- 样式 -->
<link rel="stylesheet" href="./css/style.css" />
<!-- 主题(主要颜色设置) -->
<link rel="stylesheet" href="./css/theme.css" />
<!-- 通用的css -->
<link rel="stylesheet" href="./css/common.css" />
</head>
<body scrolling="no" style="overflow-y: hidden;overflow-x: hidden;">
<!-- 顶部导航栏 -->
<header id="header">
<div class="top">
<div class="logo">
<a href="#">
{
{systemName}}
</a>
</div>
<div class="tel-container">
<img style="margin-right: 30px;" src="img/index_icon.png" >
<div class="tel">
<div>全国服务热线:</div>
<div>9999-888-999</div>
</div>
</div>
</div>
<ul class="layui-nav nav">
<li class="layui-nav-item"><a href="javascript:navPage('./pages/home/home.html')">首页</a></li>
<li v-for="(item,index) in indexNav" v-bind:key="index" class="layui-nav-item"><a :href="'javascript:navPage(\''+item.url+'\')'">{
{item.name}}</a></li>
<li class="layui-nav-item">
<a href="javascript:centerPage();">我的</a
Efecto
demostración de vídeo
Sitio web de gestión de voluntarios front-end + back-end
Responda a las preguntas:
En el primer artículo mencioné 200 yuanes por un trabajo privado de un administrador de archivos HDFS. En el artículo, se decía que había hecho algo similar antes y simplemente lo tomé y lo entregué. 200 yuanes se consideran una pérdida de dinero. De Por supuesto, esto también lleva tiempo. Después de acumular tantos pedidos, siempre hay algunos pedidos que venden el producto terminado directamente a un precio personalizado. Esta también es una pequeña habilidad para recibir pedidos. A continuación se muestra el enlace al texto original:
https://blog.csdn.net/xianyu120/article/details/125508845
¡Sígueme para conocer más formas de tener vida privada!
Resumir
Lo anterior es para usar el generador de códigos para generar el intercambio de antecedentes del sistema de gestión de voluntarios. Use el generador de códigos para automatizar el tipeo de códigos que no necesita saber. O, esa oración no puede hacerte rico. y rico, y todavía es muy fácil ganar algo de dinero de bolsillo. Sí, los amigos que quieran tomar un trabajo privado o tener ideas sobre generadores de código pueden hacer clic en la tarjeta a continuación para contactarme.