微信小程序 宠物社区源码
1、项目介绍
本项目是一个宠物们的社交平台,可以在这里发布领养、寻宠信息。同时也提供了宠物社区,分享宠友们与爱宠的沙雕日常!!
- 小程序前端使用 uniapp 框架,适配性多,在页面的打开和渲染效率上更快,可大大增加用户体验。
- 后端使用 Java 主流框架 Springboot、Spring security、Redis、Mybatis-plus。
- 后台前端使用 vue、ElementUI。
- 后台后端使用若依框架,Springboot、Spring security、Redis、Mybatis、Jwt。
2、功能列表
- 宠物领养
- 宠物走失
- 每日签到
- 宠物科普
- 每日答题
- 宠物社区
- 文章发布
- 咨询对话
- 个人中心
- 消息列表
- 我的收藏
3、相关截图
小程序截图
后台截图
4、项目目录
部分代码
@Slf4j@AllArgsConstructor@Servicepublic class PetAdoptServiceImpl implements PetAdoptService { private final PetAdoptMapper petAdoptMapper; private final AliYunOssProperties ossProperties; private final WxUserMapper wxUserMapper; private final PetFindService petFindService; @Override public void addPetAdopt(AddPetAdoptDTO req) { PetAdopt petAdopt = ResponseBeanFactory.getPetAdopt(req, ossProperties.getUrlPrefix()); petAdoptMapper.insert(petAdopt); log.info("执行成功[发布宠物领养]"); } @Override public List<PetAdoptVO> queryAdoptList(QueryAdoptDTO req) { IPage<PetAdopt> page = new Page<>(req.getPageNum(), req.getPageSize()); IPage<PetAdopt> iPage = petAdoptMapper.selectPage(page, Wrappers.<PetAdopt>lambdaQuery() .eq(StringUtils.isNotBlank(req.getOpenId()), PetAdopt::getOpenId, req.getOpenId()) .eq(StringUtils.isNotBlank(req.getCity()), PetAdopt::getCity, req.getCity()) .orderByDesc(PetAdopt::getCreateTime)); List<PetAdoptVO> petAdoptVOS = iPage.getRecords().stream() .map(PetAdoptVO::fromPetAdopt).collect(Collectors.toList()); log.info("执行成功[查询领养列表]"); return petAdoptVOS; } @Override public AdoptAndUserVO getPetAdoptById(Integer adoptId) { PetAdopt petAdopt = petAdoptMapper.selectById(adoptId); PetAdopt adopt = new PetAdopt(); adopt.setId(adoptId); adopt.setView(petAdopt.getView() + 1); petAdoptMapper.updateById(adopt); // 送养人信息 WxUser wxUser = wxUserMapper.selectOne(Wrappers.<WxUser>lambdaQuery().eq(WxUser::getOpenId, petAdopt.getOpenId())); // 正在送养数量 Integer finishingCount = petAdoptMapper.selectCount(Wrappers.<PetAdopt>lambdaQuery() .eq(PetAdopt::getOpenId, wxUser.getOpenId()) .eq(PetAdopt::getIsFinish, FinishStatusEnum.FINISHING.code())); // 已送养数量 Integer finishedCount = petAdoptMapper.selectCount(Wrappers.<PetAdopt>lambdaQuery() .eq(PetAdopt::getOpenId, wxUser.getOpenId()) .eq(PetAdopt::getIsFinish, FinishStatusEnum.FINISHED.code())); AdoptAndUserVO resultVO = AdoptAndUserVO.builder() .petAdoptVO(PetAdoptVO.fromPetAdopt(petAdopt)) .wxUserVO(WxUserVO.fromWxUser(wxUser)) .build(); resultVO.getWxUserVO().setDoingNum(finishingCount); resultVO.getWxUserVO().setDoneNum(finishedCount); log.info("执行成功[查询领养详情]adoptId={}", adoptId); return resultVO; } @Override public PetCountVO queryCount(String openId) { Integer petAdoptCount = petAdoptMapper.selectCount(Wrappers.<PetAdopt>lambdaQuery().eq(PetAdopt::getOpenId, openId)); Integer petFindCount = petFindService.queryCount(openId); log.info("执行成功[查询领养/寻宠总数],openId={}", openId); return PetCountVO.builder() .petAdoptCount(petAdoptCount) .petFindCount(petFindCount) .build(); } @Override public List<PetAdoptVO> queryAdoptsInIds(QueryAdoptsInDTO req) { if (req.getIds().isEmpty()) { return Collections.emptyList(); } Page<PetAdopt> page = new Page<>(req.getPageNum(), req.getPageSize()); Page<PetAdopt> iPage = petAdoptMapper.selectPage(page, Wrappers.<PetAdopt>lambdaQuery() .in(PetAdopt::getId, req.getIds())); List<PetAdopt> petAdopts = iPage.getRecords(); if (petAdopts.isEmpty()) { return Collections.emptyList(); } List<PetAdoptVO> petAdoptVOS = petAdopts.stream() .map(PetAdoptVO::fromPetAdopt).collect(Collectors.toList()); log.info("执行成功[查询领养列表]"); return petAdoptVOS; }}
可用作毕业设计
有需要前后端源码的,可私聊看演示。