Advertisement

基于web的智慧社区设计与实现

阅读量:

springboot076基于web的智慧社区设计与实现

表4.17 周边服务

基于网络平台的智慧社区管理系统中包含有系统管理员这一重要角色,在该系统中管理员具备管理车位信息的功能。此外该系统还支持车位信息的增删改查操作具体界面则由相关软件自动生成并可参考图5.1进行查看

系统管理员可执行 CRUD 操作(新增数据/更新现有记录/移除数据项)查看客户信息,并检索所需数据。具体界面如图5.2所示。

客户可以对社区信息进行添加,修改,删除以及查询操作。界面如下图所示:

客户能够购买车位时,在个人中心完成付款流程。界面如上图所示

客户登录之后,可以查看前台车位信息。界面如下图所示:

在客户登录状态下可查看停车位详情。随后可对停车位详情执行预定操作。界面展示如下图

任务:旨在消除软件故障并确保程序稳定运行。在分析系统性能时应考虑其响应时间指标的表现情况以及系统的负载能力等关键参数指标的表现情况。这些参数指标能够帮助我们全面了解系统的性能特征及其稳定性表现情况

测试与纠错之间的关系可以用图6-1所示的数据流图来说明

图片
图片
图片
图片
图片
CommonController.java
复制代码
    package com.controller;
    
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import org.apache.commons.lang3.StringUtils;
    import org.json.JSONObject;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.util.ResourceUtils;
    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.annotation.IgnoreAuth;
    import com.baidu.aip.face.AipFace;
    import com.baidu.aip.face.MatchRequest;
    import com.baidu.aip.util.Base64Util;
    import com.baomidou.mybatisplus.mapper.EntityWrapper;
    import com.baomidou.mybatisplus.mapper.Wrapper;
    import com.entity.ConfigEntity;
    import com.service.CommonService;
    import com.service.ConfigService;
    import com.utils.BaiduUtil;
    import com.utils.FileUtil;
    import com.utils.R;
    
    /** * 通用接口
     */
    @RestController
    public class CommonController{
    	@Autowired
    	private CommonService commonService;
    	
    	@Autowired
    	private ConfigService configService;
    	
    	private static AipFace client = null;
    	
    	private static String BAIDU_DITU_AK = null;
    	
    	@RequestMapping("/location")
    	public R location(String lng,String lat) {
    		if(BAIDU_DITU_AK==null) {
    			BAIDU_DITU_AK = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "baidu_ditu_ak")).getValue();
    			if(BAIDU_DITU_AK==null) {
    				return R.error("请在配置管理中正确配置baidu_ditu_ak");
    			}
    		}
    		Map<String, String> map = BaiduUtil.getCityByLonLat(BAIDU_DITU_AK, lng, lat);
    		return R.ok().put("data", map);
    	}
    	
    	/** * 人脸比对
    	 * * @param face1 人脸1
    	 * @param face2 人脸2
    	 * @return
    	 */
    	@RequestMapping("/matchFace")
    	public R matchFace(String face1, String face2) {
    		if(client==null) {
    			/*String AppID = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "AppID")).getValue();*/
    			String APIKey = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "APIKey")).getValue();
    			String SecretKey = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "SecretKey")).getValue();
    			String token = BaiduUtil.getAuth(APIKey, SecretKey);
    			if(token==null) {
    				return R.error("请在配置管理中正确配置APIKey和SecretKey");
    			}
    			client = new AipFace(null, APIKey, SecretKey);
    			client.setConnectionTimeoutInMillis(2000);
    			client.setSocketTimeoutInMillis(60000);
    		}
    		JSONObject res = null;
    		try {
    			File file1 = new File(ResourceUtils.getFile("classpath:static/upload").getAbsolutePath()+"/"+face1);
    			File file2 = new File(ResourceUtils.getFile("classpath:static/upload").getAbsolutePath()+"/"+face2);
    			String img1 = Base64Util.encode(FileUtil.FileToByte(file1));
    			String img2 = Base64Util.encode(FileUtil.FileToByte(file2));
    			MatchRequest req1 = new MatchRequest(img1, "BASE64");
    			MatchRequest req2 = new MatchRequest(img2, "BASE64");
    			ArrayList<MatchRequest> requests = new ArrayList<MatchRequest>();
    			requests.add(req1);
    			requests.add(req2);
    			res = client.match(requests);
    			System.out.println(res.get("result"));
    		} catch (FileNotFoundException e) {
    			e.printStackTrace();
    			return R.error("文件不存在");
    		} catch (IOException e) {
    			e.printStackTrace();
    		} 
    		return R.ok().put("data", com.alibaba.fastjson.JSONObject.parse(res.get("result").toString()));
    	}
    
    	/** * 获取table表中的column列表(联动接口)
    	 * @param table
    	 * @param column
    	 * @return
    	 */
    	@IgnoreAuth
    	@RequestMapping("/option/{tableName}/{columnName}")
    	public R getOption(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName,String level,String parent) {
    		Map<String, Object> params = new HashMap<String, Object>();
    		params.put("table", tableName);
    		params.put("column", columnName);
    		if(StringUtils.isNotBlank(level)) {
    			params.put("level", level);
    		}
    		if(StringUtils.isNotBlank(parent)) {
    			params.put("parent", parent);
    		}
    		List<String> data = commonService.getOption(params);
    		return R.ok().put("data", data);
    	}
    	
    	/** * 根据table中的column获取单条记录
    	 * @param table
    	 * @param column
    	 * @return
    	 */
    	@IgnoreAuth
    	@RequestMapping("/follow/{tableName}/{columnName}")
    	public R getFollowByOption(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName, @RequestParam String columnValue) {
    		Map<String, Object> params = new HashMap<String, Object>();
    		params.put("table", tableName);
    		params.put("column", columnName);
    		params.put("columnValue", columnValue);
    		Map<String, Object> result = commonService.getFollowByOption(params);
    		return R.ok().put("data", result);
    	}
    	
    	/** * 修改table表的sfsh状态
    	 * @param table
    	 * @param map
    	 * @return
    	 */
    	@RequestMapping("/sh/{tableName}")
    	public R sh(@PathVariable("tableName") String tableName, @RequestBody Map<String, Object> map) {
    		map.put("table", tableName);
    		commonService.sh(map);
    		return R.ok();
    	}
    	
    	/** * 获取需要提醒的记录数
    	 * @param tableName
    	 * @param columnName
    	 * @param type 1:数字 2:日期
    	 * @param map
    	 * @return
    	 */
    	@IgnoreAuth
    	@RequestMapping("/remind/{tableName}/{columnName}/{type}")
    	public R remindCount(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName, 
    						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
    		map.put("table", tableName);
    		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));
    			}
    		}
    		
    		int count = commonService.remindCount(map);
    		return R.ok().put("count", count);
    	}
    	
    	/** * 单列求和
    	 */
    	@IgnoreAuth
    	@RequestMapping("/cal/{tableName}/{columnName}")
    	public R cal(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName) {
    		Map<String, Object> params = new HashMap<String, Object>();
    		params.put("table", tableName);
    		params.put("column", columnName);
    		Map<String, Object> result = commonService.selectCal(params);
    		return R.ok().put("data", result);
    	}
    	
    	/** * 分组统计
    	 */
    	@IgnoreAuth
    	@RequestMapping("/group/{tableName}/{columnName}")
    	public R group(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName) {
    		Map<String, Object> params = new HashMap<String, Object>();
    		params.put("table", tableName);
    		params.put("column", columnName);
    		List<Map<String, Object>> result = commonService.selectGroup(params);
    		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    		for(Map<String, Object> m : result) {
    			for(String k : m.keySet()) {
    				if(m.get(k) instanceof Date) {
    					m.put(k, sdf.format((Date)m.get(k)));
    				}
    			}
    		}
    		return R.ok().put("data", result);
    	}
    	
    	/** * (按值统计)
    	 */
    	@IgnoreAuth
    	@RequestMapping("/value/{tableName}/{xColumnName}/{yColumnName}")
    	public R value(@PathVariable("tableName") String tableName, @PathVariable("yColumnName") String yColumnName, @PathVariable("xColumnName") String xColumnName) {
    		Map<String, Object> params = new HashMap<String, Object>();
    		params.put("table", tableName);
    		params.put("xColumn", xColumnName);
    		params.put("yColumn", yColumnName);
    		List<Map<String, Object>> result = commonService.selectValue(params);
    		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    		for(Map<String, Object> m : result) {
    			for(String k : m.keySet()) {
    				if(m.get(k) instanceof Date) {
    					m.put(k, sdf.format((Date)m.get(k)));
    				}
    			}
    		}
    		return R.ok().put("data", result);
    	}
    	
    }
KehuServiceImpl.java
复制代码
    package com.service.impl;
    
    import org.springframework.stereotype.Service;
    import java.util.Map;
    import java.util.List;
    
    import com.baomidou.mybatisplus.mapper.Wrapper;
    import com.baomidou.mybatisplus.mapper.EntityWrapper;
    import com.baomidou.mybatisplus.plugins.Page;
    import com.baomidou.mybatisplus.service.impl.ServiceImpl;
    import com.utils.PageUtils;
    import com.utils.Query;
    
    
    import com.dao.KehuDao;
    import com.entity.KehuEntity;
    import com.service.KehuService;
    import com.entity.vo.KehuVO;
    import com.entity.view.KehuView;
    
    @Service("kehuService")
    public class KehuServiceImpl extends ServiceImpl<KehuDao, KehuEntity> implements KehuService {
    	
    	
    @Override
    public PageUtils queryPage(Map<String, Object> params) {
        Page<KehuEntity> page = this.selectPage(
                new Query<KehuEntity>(params).getPage(),
                new EntityWrapper<KehuEntity>()
        );
        return new PageUtils(page);
    }
    
    @Override
    	public PageUtils queryPage(Map<String, Object> params, Wrapper<KehuEntity> wrapper) {
    		  Page<KehuView> page =new Query<KehuView>(params).getPage();
    	        page.setRecords(baseMapper.selectListView(page,wrapper));
    	    	PageUtils pageUtil = new PageUtils(page);
    	    	return pageUtil;
     	}
    
    @Override
    	public List<KehuVO> selectListVO(Wrapper<KehuEntity> wrapper) {
     		return baseMapper.selectListVO(wrapper);
    	}
    	
    	@Override
    	public KehuVO selectVO(Wrapper<KehuEntity> wrapper) {
     		return baseMapper.selectVO(wrapper);
    	}
    	
    	@Override
    	public List<KehuView> selectListView(Wrapper<KehuEntity> wrapper) {
    		return baseMapper.selectListView(wrapper);
    	}
    
    	@Override
    	public KehuView selectView(Wrapper<KehuEntity> wrapper) {
    		return baseMapper.selectView(wrapper);
    	}
    
    }
babel.config.js
复制代码
    module.exports = {
      presets: [
    '@vue/cli-plugin-babel/preset'
      ]
    }

全部评论 (0)

还没有任何评论哟~