大家好,我是程序员小孟。
现在有很多的产品或者工具都开始信息话了,寺庙或者佛教也需要小程序吗?
当然了!
前面我们还开发了很多寺庙相关的小程序,都有相关的介绍:
今天要介绍的是另一款寺庙系统,该系统可以作为小程序、H5网页、安卓端。
这个寺庙小程序的功能非常多。
一,系统的用途
系统的用途该系统用于线上的祭奠、纪念亲人、名人、朋友,同时可以在线放生,同时管理员可以对小程序端所有的信息进行管理。
该小程序适用各大寺庙。
二,系统的功能需求
用户:登录、注册、纪念台查看、在线祭拜、在线放生、名人馆查看、在线祭拜名人、新建纪念馆,查看亲友馆、查看家族纪念馆、祈福台查看、在线寄语、对寄语进行在线点赞、评论、AI和亲人对话、在线商城、在线赠与商衣服,可以赠与师傅衣服,纪念台可以查看简介、生平事迹、相册、回音、寄语、我的信息查看。
管理员:用户管理、纪念台管理、祭拜管理、放生管理、放生的动物管理、在线名人信息管理、纪念馆管理、家族纪念信息管理、祈福台信息管理、寄语管理、寄语的评论管理、AI管理、商城商品管理、赠与订单管理、生平事迹管理、相册管理、寄语管理、数据统计。
三,系统的技术栈
因为客户没有技术方面的要求,那就按照我习惯用的技术开发的,无所谓什么最新不最新技术了。
小程序:uniapp
后台框架:SpringBoot,
数据库采用的Mysql,
后端的页面采用的Vue进行开发,
缓存用的Redis,
搜索引擎采用的是elasticsearch,
ORM层框架:MyBatis,
连接池:Druid,
分库分表:MyCat,
权限:SpringSecurity,
代码质量检查:sonar。
看下系统的功能框架图应该更加清楚:
四,系统演示
五,系统核心代码
java
package com.example.controller;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter;
import com.example.common.Result;
import com.example.entity.ChaobaInfo;
import com.example.service.ChaobaInfoService;
import com.example.vo.ChaobaInfoVo;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@RestController
@RequestMapping(value = "/chaobaInfo")
public class ChaobaInfoController {
@Resource
private ChaobaInfoService chaobaInfoService;
@PostMapping
public Result<ChaobaInfo> add(@RequestBody ChaobaInfo chaobaInfo) {
chaobaInfoService.add(chaobaInfo);
return Result.success(chaobaInfo);
}
@DeleteMapping("/{id}")
public Result delete(@PathVariable Long id) {
chaobaInfoService.delete(id);
return Result.success();
}
@PutMapping
public Result update(@RequestBody ChaobaInfo chaobaInfo) {
chaobaInfoService.update(chaobaInfo);
return Result.success();
}
@PutMapping("/zhifu")
public Result zhifu(@RequestBody ChaobaInfo chaobaInfo) {
chaobaInfoService.zhifu(chaobaInfo);
return Result.success();
}
@GetMapping("/{id}")
public Result<ChaobaInfo> detail(@PathVariable Long id) {
ChaobaInfo chaobaInfo = chaobaInfoService.findById(id);
return Result.success(chaobaInfo);
}
@GetMapping("/getByUserId/{id}")
public Result<List<ChaobaInfo>> getByUserId(@PathVariable Long id) {
return Result.success( chaobaInfoService.getByUserId(id));
}
@GetMapping
public Result<List<ChaobaInfo>> all() {
return Result.success(chaobaInfoService.findAll());
}
@PostMapping("/page")
public Result<PageInfo<ChaobaInfo>> page(@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize,
@RequestBody ChaobaInfoVo chaobaInfo,
HttpServletRequest request
) {
return Result.success(chaobaInfoService.findPage(pageNum, pageSize,chaobaInfo));
}
@PostMapping("/getExcel")
public void getExcel(HttpServletResponse response,
@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize,
@RequestBody ChaobaInfoVo chaobaInfo) throws IOException {
// 1. 生成excel
Map<String, Object> row = new LinkedHashMap<>();
row.put("address","地址");
row.put("yangshangren","阳上人");
row.put("xingshi","姓氏");
row.put("wangren","亡人");
row.put("telephone","电话");
row.put("wangxijinsheng","往昔今生");
row.put("jine","金额");
row.put("username","操作用户");
List<Map<String, Object>> list = CollUtil.newArrayList(row);
PageHelper.startPage(pageNum,pageSize);
List<Map<String, Object>> daochuexcellist = chaobaInfoService.daochuexcel(chaobaInfo);
List<Map<String, Object>> resultList = PageInfo.of(daochuexcellist).getList();
for (Map<String, Object> map : resultList) {
list.add(map);
}
// 2. 写excel
ExcelWriter writer = ExcelUtil.getWriter(true);
writer.write(list, true);
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
response.setHeader("Content-Disposition","attachment;filename=chaoba.xlsx");
ServletOutputStream out = response.getOutputStream();
writer.flush(out, true);
writer.close();
IoUtil.close(System.out);
}
}
java
package com.example.controller;
import com.example.common.Result;
import com.example.entity.AdvertiserInfo;
import com.example.service.AdvertiserInfoService;
import com.example.vo.ChaobaInfoVo;
import com.github.pagehelper.PageInfo;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
@RestController
@RequestMapping(value = "/advertiserInfo")
public class AdvertiserInfoController {
@Resource
private AdvertiserInfoService advertiserInfoService;
@PostMapping
public Result<AdvertiserInfo> add(@RequestBody AdvertiserInfo advertiserInfo) {
advertiserInfoService.add(advertiserInfo);
return Result.success(advertiserInfo);
}
@DeleteMapping("/{id}")
public Result delete(@PathVariable Long id) {
advertiserInfoService.delete(id);
return Result.success();
}
@PutMapping
public Result update(@RequestBody AdvertiserInfo advertiserInfo) {
advertiserInfoService.update(advertiserInfo);
return Result.success();
}
@GetMapping("/{id}")
public Result<AdvertiserInfo> detail(@PathVariable Long id) {
AdvertiserInfo advertiserInfo = advertiserInfoService.findById(id);
return Result.success(advertiserInfo);
}
@GetMapping
public Result<List<AdvertiserInfo>> all() {
return Result.success(advertiserInfoService.findAll());
}
@GetMapping("/getNew")
public Result<List<AdvertiserInfo>> getNew() {
return Result.success(advertiserInfoService.getNew());
}
@PostMapping("/page")
public Result<PageInfo<AdvertiserInfo>> page( @RequestBody AdvertiserInfo advertiserInfo,
@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize,
HttpServletRequest request) {
return Result.success(advertiserInfoService.findPage(advertiserInfo.getName(), pageNum, pageSize, request));
}
@PostMapping("/front/page")
public Result<PageInfo<AdvertiserInfo>> page(
@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "4") Integer pageSize,
HttpServletRequest request) {
return Result.success(advertiserInfoService.findFrontPage(pageNum, pageSize, request));
}
}
我是程序员小孟,专注软件开发,系统分享,有问题的小伙伴,欢迎交流。
感谢三联,点赞、关注!