Java vida privada 300 yuanes, completa el sistema de gestión de voluntarios JavaWeb (4)

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.

origen_img_v2_2218914d-e652-40f0-9385-be5c53fb47dg

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.

origen_img_v2_baa01cf7-122c-48e8-a8f5-4469be8cafag

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

origen_img_v2_b0c17fa8-0972-4ca8-951c-50f0699edadg

origen_img_v2_1069a64d-d61e-490a-8bf0-9753deb2651g

origen_img_v2_b5cab69f-9cb0-43a2-af68-9fdc984b73bg

demostración de vídeo

Sitio web de gestión de voluntarios front-end + back-end

Responda a las preguntas:

imagen-20220705185847989

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.

Supongo que te gusta

Origin blog.csdn.net/xianyu120/article/details/125694439
Recomendado
Clasificación