Springboot+vue front-end y back-end sitio web de alquiler separado

Lenguaje de desarrollo: Java

Herramientas de desarrollo: IDEA/Eclipse

Base de datos: MYSQL5.7

Servicio de aplicaciones: Tomcat7/Tomcat8

Marco de uso: springboot + vue

Versión JDK: jdk1.8

Este sistema tiene administradores; página de inicio, centro personal, gestión de usuarios, gestión de tipo de casa, gestión de información de la casa, gestión de visualización de citas, gestión de contratos en línea, gestión de evaluación de alquileres, foro de comunicación, gestión del sistema, usuarios; página de inicio, centro personal, visualización de citas Gestión de habitaciones, gestión de contratos en línea, gestión de evaluación de alquileres, gestión de mi colección, página de inicio de la página principal; página de inicio, información de vivienda, foro de intercambio, información de vivienda, centro personal, gestión de antecedentes, servicio al cliente en línea y otras funciones. 

Análisis de flujo del sistema

Los usuarios deben tener su propia cuenta y contraseña, que debe ser correcta, para que puedan iniciar sesión en el sistema sin problemas. Después de ingresar al sitio web, los usuarios pueden consultar la información por sí mismos y pueden operar directamente en la página de detalles de la información de alquiler. El proceso específico es el siguiente

Para garantizar la seguridad del sistema, para usar este sistema para administrar la información del sistema, primero debe iniciar sesión en el sistema. Su diagrama de flujo de inicio de sesión específico se muestra en la figura 

arquitectura del sistema 

La estructura del sitio web de alquiler.

 Diagrama de estructura del sistema de inicio de sesión

 Diagrama de estructura del sistema, como se muestra en la figura.

 Módulo de funciones de inicio en la página principal

En el sitio web de alquiler, puede ver la página de inicio, la información de la vivienda, el foro de intercambio, la información de la vivienda, el centro personal, la gestión de antecedentes, el servicio de atención al cliente en línea, etc., como se muestra en la figura.

 

 

Inicio de sesión de usuario, registro de usuario, a través del registro para obtener nombre de usuario, contraseña, nombre, teléfono móvil, tarjeta de identificación y otra información para registro e inicio de sesión, como se muestra en la figura

Inicio de sesión de usuario

 

informacion de la casa

  

Para programar una cita para verlo, puede ver el número de cita, el nombre de la casa, el tipo de casa, la fotografía, el área, el estado de la casa, la comunidad, el precio de alquiler mensual, los meses de alquiler, el monto del alquiler, el depósito, la fecha de la cita, el nombre de usuario y el teléfono móvil. , ID y otra información para enviar como se muestra en la figura

Foro de intercambio

 

informacion de vivienda

 

centro personal

 

Servicio en línea

 

Inicio de sesión de administrador

El administrador ingresa el nombre de usuario, la contraseña y el rol personal para iniciar sesión en el sistema. En este momento, la base de datos del sistema buscará información relevante. Si el nombre de usuario, la contraseña y el rol que ingresamos son incorrectos, la base de datos le pedirá un mensaje de error Al mismo tiempo, se le pedirá al administrador que vuelva a ingresar su nombre de usuario, contraseña y rol, hasta que la contraseña de la cuenta se ingrese correctamente, y se mostrará la información de inicio de sesión exitosa. Las representaciones de inicio de sesión del administrador del sitio web se muestran en la figura 

Módulo de funciones de administrador 

Gestión de usuarios

El administrador puede realizar operaciones de detalle, eliminación y modificación en la gestión de usuarios. El diagrama de efecto del programa es el siguiente

gestión de tipo de casa

El administrador puede realizar operaciones de detalle, borrado y modificación en la gestión del tipo de casa. El diagrama de efecto del programa es el siguiente 

Gestión de la información de la vivienda

El administrador realiza operaciones como detalle, modificación y eliminación de la gestión de la información de la vivienda. El diagrama de efecto del programa es el siguiente 

 

informacion de vivienda

El administrador puede realizar operaciones como detallar, borrar, modificar y visualizar información de la vivienda. El diagrama de efecto del programa es el siguiente 

Gestión de visualización de citas

El administrador puede modificar la gestión de reservas, detalles y otras operaciones. El diagrama de efecto del programa es el siguiente 

Gestión de contratos en línea

El administrador puede modificar y detallar la gestión de contratos online. El diagrama de efecto del programa es el siguiente 

Foro de intercambio

Los administradores pueden modificar el foro de intercambio, los detalles y otras operaciones. El diagrama de efecto del programa es el siguiente 

Módulo de función de usuario 

Después de ingresar al sistema, los usuarios pueden realizar las operaciones correspondientes en la página de inicio, el centro personal, la gestión de visualización de citas, la gestión de firma en línea, la gestión de evaluación de alquileres y la gestión de mi colección. El diagrama de efecto del programa es el siguiente

Gestión de visualización de citas

Los usuarios pueden realizar operaciones como detallar, modificar, borrar, etc. a través de la gestión de visualización de citas. El diagrama de efecto del programa es el siguiente 

 Gestión de contratos en línea

Los usuarios pueden realizar operaciones como detalles y eliminación a través de la gestión de contratos en línea. El diagrama de efecto del programa es el siguiente

Gestión de evaluación de alquiler

Los usuarios pueden realizar operaciones como detallar y borrar a través de la gestión de evaluación de alquileres. El diagrama de efecto del programa es el siguiente 

Parte del código:  

package com.controller;

import java.text.SimpleDateFormat;
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.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.ZulinpingjiaEntity;
import com.entity.view.ZulinpingjiaView;

import com.service.ZulinpingjiaService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;


/**
 * 租赁评价
 * 后端接口
 * @author 
 * @email 
 * @date 2021-03-11 14:12:56
 */
@RestController
@RequestMapping("/zulinpingjia")
public class ZulinpingjiaController {
    @Autowired
    private ZulinpingjiaService zulinpingjiaService;
    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,ZulinpingjiaEntity zulinpingjia,
		HttpServletRequest request){
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("yonghu")) {
			zulinpingjia.setYonghuming((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<ZulinpingjiaEntity> ew = new EntityWrapper<ZulinpingjiaEntity>();
		PageUtils page = zulinpingjiaService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, zulinpingjia), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,ZulinpingjiaEntity zulinpingjia, HttpServletRequest request){
        EntityWrapper<ZulinpingjiaEntity> ew = new EntityWrapper<ZulinpingjiaEntity>();
		PageUtils page = zulinpingjiaService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, zulinpingjia), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( ZulinpingjiaEntity zulinpingjia){
       	EntityWrapper<ZulinpingjiaEntity> ew = new EntityWrapper<ZulinpingjiaEntity>();
      	ew.allEq(MPUtil.allEQMapPre( zulinpingjia, "zulinpingjia")); 
        return R.ok().put("data", zulinpingjiaService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(ZulinpingjiaEntity zulinpingjia){
        EntityWrapper< ZulinpingjiaEntity> ew = new EntityWrapper< ZulinpingjiaEntity>();
 		ew.allEq(MPUtil.allEQMapPre( zulinpingjia, "zulinpingjia")); 
		ZulinpingjiaView zulinpingjiaView =  zulinpingjiaService.selectView(ew);
		return R.ok("查询租赁评价成功").put("data", zulinpingjiaView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        ZulinpingjiaEntity zulinpingjia = zulinpingjiaService.selectById(id);
        return R.ok().put("data", zulinpingjia);
    }

    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        ZulinpingjiaEntity zulinpingjia = zulinpingjiaService.selectById(id);
        return R.ok().put("data", zulinpingjia);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody ZulinpingjiaEntity zulinpingjia, HttpServletRequest request){
    	zulinpingjia.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(zulinpingjia);
        zulinpingjiaService.insert(zulinpingjia);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody ZulinpingjiaEntity zulinpingjia, HttpServletRequest request){
    	zulinpingjia.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(zulinpingjia);
        zulinpingjiaService.insert(zulinpingjia);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody ZulinpingjiaEntity zulinpingjia, HttpServletRequest request){
        //ValidatorUtils.validateEntity(zulinpingjia);
        zulinpingjiaService.updateById(zulinpingjia);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        zulinpingjiaService.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<ZulinpingjiaEntity> wrapper = new EntityWrapper<ZulinpingjiaEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}

		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("yonghu")) {
			wrapper.eq("yonghuming", (String)request.getSession().getAttribute("username"));
		}

		int count = zulinpingjiaService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	


}

 

 

Supongo que te gusta

Origin blog.csdn.net/m0_49113107/article/details/123939246
Recomendado
Clasificación