一天撸一个财务APP系统【安卓端+前端+后端】

简介: 昨天没事,开发了一个APP的财务系统,如果需要学习开发,可以一起啊!

昨天没事,开发了一个APP的财务系统,如果需要学习开发,可以一起啊!加油,奥利给!


一,系统的技术栈


移动端,采用安卓进行开发,Android它应用于安卓系统软件和程序开发,其由谷歌公司推出,目前在国际市场上有着广泛的应用及开发环境,并不瘦限制研发人员能够通过修改开放的源代码来实现各种使用的 APP软件,开发的软件程序具有界面友好稳定性好等特点,安卓系统架构图具体如下:


微信图片_20221009231542.png

后端采用的Java进行开发的,数据库采用的Mysql。


系统的功能架构:


微信图片_20221009231547.png

二,系统界面


微信图片_20221009231551.png


微信图片_20221009231600.png


微信图片_20221009231609.png


微信图片_20221009231614.png


微信图片_20221009231618.png


微信图片_20221009231622.png


微信图片_20221009231627.png


后台:


微信图片_20221009231633.png


微信图片_20221009231637.png


微信图片_20221009231641.png


微信图片_20221009231645.png


微信图片_20221009231650.png


微信图片_20221009231654.png


三,系统核心代码


/**
 * 小孟v:jishulearn
 */
@Controller
@RequestMapping("/api")
public class ApiController {
    @Autowired
    private UsersService userService;
    @Autowired
    private ShouruService shouruService;
    @Autowired
    private ZhichuService zhichuService;
    @Autowired
    private GudingzhichuService gudingzhichuService;
    @Autowired
    private GudingzhichuleixService gudingzhichuleixService;
    @Autowired
    private ShourutypeService shourutypeService;
    @Autowired
    private ZhichutypeService zhichutypeService;
    @Autowired
    private WenzhangService wenzhangService;
    @Autowired
    private GonggaoService gonggaoService;
    @PostMapping("/userlogin")
    @ResponseBody
    public JsonResult login(String username, String password) {
        if (username == null || username.trim().isEmpty()) return JsonResult.error("请输入账号");
        if (password == null || password.trim().isEmpty()) return JsonResult.error("请输入密码");
        Users user = userService.getOne(new QueryWrapper<Users>().eq("username", username).eq("password", password));
        if (user != null) {
            return JsonResult.ok("登录成功").setData(user);
        } else {
            return JsonResult.error("用户名或密码错误");
        }
    }
    @PostMapping("/userreg")
    @ResponseBody
    public JsonResult reg(String username, String password, String nickname, String dianhua, String youxiang,String image) {
        if (username == null || username.trim().isEmpty()) return JsonResult.error("请输入账号");
        if (password == null || password.trim().isEmpty()) return JsonResult.error("请输入密码");
        if (nickname == null || nickname.trim().isEmpty()) return JsonResult.error("请输入真实姓名");
        if (dianhua == null || dianhua.trim().isEmpty()) return JsonResult.error("请输入电话");
        if (youxiang == null || youxiang.trim().isEmpty()) return JsonResult.error("请输入邮箱");
        Users user1 = new Users();
        user1.setUsername(username);
        user1.setNickname(nickname);
        user1.setPassword(password);
        user1.setDianhua(dianhua);
        user1.setYouxiang(youxiang);
        user1.setImage(image);
        Users user = userService.getOne(new QueryWrapper<Users>().eq("username", username));
        if (user!=null){
            return JsonResult.error("用户名已经存在,请重试!");
        }
        if (userService.save(user1)) {
            return JsonResult.ok("注册成功");
        }
        return JsonResult.error("注册失败");
    }
    @PostMapping("/userupdate")
    @ResponseBody
    public JsonResult update(Integer id, String username, String password, String nickname) {
        if (username == null || username.trim().isEmpty()) return JsonResult.error("请输入账号");
        if (password == null || password.trim().isEmpty()) return JsonResult.error("请输入密码");
        if (nickname == null || nickname.trim().isEmpty()) return JsonResult.error("请输入真实姓名");
        Users userone = userService.getById(id);
        if (userone == null) {
            return JsonResult.ok("用户不存在!");
        }
        userone.setUsername(username);
        userone.setPassword(password);
        userone.setNickname(nickname);
        if (userService.updateById(userone)) {
            return JsonResult.ok("修改成功");
        }
        return JsonResult.error("修改失败");
    }
    @PostMapping("/userupdatePass")
    @ResponseBody
    public JsonResult updatePass(Integer id, String username, String password) {
        if (username == null || username.trim().isEmpty()) return JsonResult.error("请输入账号");
        if (password == null || password.trim().isEmpty()) return JsonResult.error("请输入密码");
        Users userone = userService.getById(id);
        if (userone == null) {
            return JsonResult.ok("用户不存在!");
        }
        userone.setUsername(username);
        userone.setPassword(password);
        if (userService.updateById(userone)) {
            return JsonResult.ok("修改成功");
        }
        return JsonResult.error("修改失败");
    }
    @PostMapping("/userupdateImage")
    @ResponseBody
    public JsonResult updateImage(Integer id, String image) {
        Users userone = userService.getById(id);
        if (userone == null) {
            return JsonResult.ok("用户不存在!");
        }
        userone.setImage(image);
        if (userService.updateById(userone)) {
            return JsonResult.ok("修改成功");
        }
        return JsonResult.error("修改失败");
    }
    @ResponseBody
    @RequestMapping("/shouru/list")
    public JsonResult ShouRuList(String username) {
        PageParam<Zhichu> pageParam = new PageParam<>();
        pageParam.put("username", username);
        List<Shouru> records = shouruService.listAll(pageParam.getNoPageParam());
        return JsonResult.ok().setData(records);
    }
    @ResponseBody
    @RequestMapping("/wenzhang/list")
    public JsonResult WenZhangList() {
        PageParam<Wenzhang> pageParam = new PageParam<>();
        List<Wenzhang> records = wenzhangService.listAll(pageParam.getNoPageParam());
        return JsonResult.ok().setData(records);
    }
    @ResponseBody
    @RequestMapping("/gonggao/list")
    public JsonResult GongGaoList() {
        PageParam<Gonggao> pageParam = new PageParam<>();
        List<Gonggao> records = gonggaoService.listAll(pageParam.getNoPageParam());
        return JsonResult.ok().setData(records);
    }


/**
 * 管理
 * Created by xiaomeng,vx:jiushulearn
 */
@Controller
@RequestMapping("/caiwu/gonggao")
public class GonggaoController extends BaseController {
    @Autowired
    private GonggaoService gonggaoService;
    @RequestMapping()
    public String view() {
        return "caiwu/gonggao.html";
    }
    /**
     * 分页查询
     */
    @ResponseBody
    @RequestMapping("/page")
    public PageResult<Gonggao> page(HttpServletRequest request) {
        PageParam<Gonggao> pageParam = new PageParam<>(request);
        return new PageResult<>(gonggaoService.page(pageParam, pageParam.getWrapper()).getRecords(), pageParam.getTotal());
        //return gonggaoService.listPage(pageParam);  // 使用关联查询
    }
    /**
     * 查询全部
     */
    @ResponseBody
    @RequestMapping("/list")
    public JsonResult list(HttpServletRequest request) {
        PageParam<Gonggao> pageParam = new PageParam<>(request);
        return JsonResult.ok().setData(gonggaoService.list(pageParam.getOrderWrapper()));
        //List<Gonggao> records = gonggaoService.listAll(pageParam.getNoPageParam());  // 使用关联查询
        //return JsonResult.ok().setData(pageParam.sortRecords(records));
    }
    /**
     * 根据id查询
     */
    @ResponseBody
    @RequestMapping("/get")
    public JsonResult get(Integer id) {
        return JsonResult.ok().setData(gonggaoService.getById(id));
  // 使用关联查询
        //PageParam<Gonggao> pageParam = new PageParam<>();
  //pageParam.put("id", id);
        //List<Gonggao> records = gonggaoService.listAll(pageParam.getNoPageParam());
        //return JsonResult.ok().setData(pageParam.getOne(records));
    }
    /**
     * 添加
     */
    @ResponseBody
    @RequestMapping("/save")
    public JsonResult save(Gonggao gonggao) {
        if (gonggaoService.save(gonggao)) {
            return JsonResult.ok("添加成功");
        }
        return JsonResult.error("添加失败");
    }
    /**
     * 修改
     */
    @ResponseBody
    @RequestMapping("/update")
    public JsonResult update(Gonggao gonggao) {
        if (gonggaoService.updateById(gonggao)) {
            return JsonResult.ok("修改成功");
        }
        return JsonResult.error("修改失败");
    }
    /**
     * 删除
     */
    @ResponseBody
    @RequestMapping("/remove")
    public JsonResult remove(Integer id) {
        if (gonggaoService.removeById(id)) {
            return JsonResult.ok("删除成功");
        }
        return JsonResult.error("删除失败");
    }
    /**
     * 批量添加
     */
    @ResponseBody
    @RequestMapping("/saveBatch")
    public JsonResult saveBatch(@RequestBody List<Gonggao> list) {
        if (gonggaoService.saveBatch(list)) {
            return JsonResult.ok("添加成功");
        }
        return JsonResult.error("添加失败");
    }
    /**
     * 批量修改
     */
    @ResponseBody
    @RequestMapping("/updateBatch")
    public JsonResult updateBatch(@RequestBody BatchParam<Gonggao> batchParam) {
        if (batchParam.update(gonggaoService, "id")) {
            return JsonResult.ok("修改成功");
        }
        return JsonResult.error("修改失败");
    }


@Controller
@RequestMapping("/caiwu/gudingzhichu")
public class GudingzhichuController extends BaseController {
    @Autowired
    private GudingzhichuService gudingzhichuService;
    @Autowired
    private GudingzhichuleixService gudingzhichuleixService;
    private List<String> shijianleixing=new ArrayList<>();
    @RequestMapping()
    public String view(Model model) {
        model.addAttribute("leixing",gudingzhichuleixService.list());
        //每周  每月  每年  一直
        shijianleixing.add("每周");
        shijianleixing.add("每月");
        shijianleixing.add("每年");
        shijianleixing.add("一直");
        model.addAttribute("shijianleixing", shijianleixing);
        return "caiwu/gudingzhichu.html";
    }
    /**
     * 分页查询
     */
    @ResponseBody
    @RequestMapping("/page")
    public PageResult<Gudingzhichu> page(HttpServletRequest request) {
        PageParam<Gudingzhichu> pageParam = new PageParam<>(request);
        return new PageResult<>(gudingzhichuService.page(pageParam, pageParam.getWrapper()).getRecords(), pageParam.getTotal());
        //return gudingzhichuService.listPage(pageParam);  // 使用关联查询
    }
    /**
     * 查询全部
     */
    @ResponseBody
    @RequestMapping("/list")
    public JsonResult list(HttpServletRequest request) {
        PageParam<Gudingzhichu> pageParam = new PageParam<>(request);
        return JsonResult.ok().setData(gudingzhichuService.list(pageParam.getOrderWrapper()));
        //List<Gudingzhichu> records = gudingzhichuService.listAll(pageParam.getNoPageParam());  // 使用关联查询
        //return JsonResult.ok().setData(pageParam.sortRecords(records));
    }
    /**
     * 根据id查询
     */
    @ResponseBody
    @RequestMapping("/get")
    public JsonResult get(Integer id) {
        return JsonResult.ok().setData(gudingzhichuService.getById(id));
  // 使用关联查询
        //PageParam<Gudingzhichu> pageParam = new PageParam<>();
  //pageParam.put("id", id);
        //List<Gudingzhichu> records = gudingzhichuService.listAll(pageParam.getNoPageParam());
        //return JsonResult.ok().setData(pageParam.getOne(records));
    }
    /**
     * 添加
     */
    @ResponseBody
    @RequestMapping("/save")
    public JsonResult save(Gudingzhichu gudingzhichu) {
        if (gudingzhichuService.save(gudingzhichu)) {
            return JsonResult.ok("添加成功");
        }
        return JsonResult.error("添加失败");
    }
    /**
     * 修改
     */
    @ResponseBody
    @RequestMapping("/update")
    public JsonResult update(Gudingzhichu gudingzhichu) {
        if (gudingzhichuService.updateById(gudingzhichu)) {
            return JsonResult.ok("修改成功");
        }
        return JsonResult.error("修改失败");
    }
目录
相关文章
|
19天前
|
安全 定位技术 API
婚恋交友系统匹配功能 婚恋相亲软件实现定位 语音社交app红娘系统集成高德地图SDK
在婚恋交友系统中集成高德地图,可实现用户定位、导航及基于地理位置的匹配推荐等功能。具体步骤如下: 1. **注册账号**:访问高德开放平台,注册并创建应用。 2. **获取API Key**:记录API Key以备开发使用。 3. **集成SDK**:根据开发平台下载并集成高德地图SDK。 4. **配置功能**:实现定位、导航及基于位置的匹配推荐。 5. **注意事项**:保护用户隐私,确保API Key安全,定期更新地图数据,添加错误处理机制。 6. **测试优化**:完成集成后进行全面测试,并根据反馈优化功能。 通过以上步骤,提升用户体验,提供更便捷的服务。
|
20天前
|
运维 小程序 前端开发
结合圈层营销策略,打造稳定可靠的圈子app系统,圈子小程序!
圈子系统是一种社交平台,用户可按兴趣、职业等创建或加入“圈子”,进行内容发布、讨论和资源共享。开发时需考虑需求分析、技术选型(如PHP、MySQL)、页面设计、功能实现(注册、登录、发布、评论等)、测试优化及运维管理。圈层营销则通过精准化、高端化的方式传递品牌信息,增强客户归属感。圈子小程序基于微信等平台,具备跨平台、便捷性和社交性,开发过程中需明确需求、选择技术框架、设计页面并确保稳定性和流畅性。
111 9
|
14天前
|
人工智能 前端开发 小程序
2024年12月30日蜻蜓蜻蜓AI工具系统v1.0.0发布-优雅草科技本产品前端源代码已对外开源可免费商用-优雅草老八
2024年12月30日蜻蜓蜻蜓AI工具系统v1.0.0发布-优雅草科技本产品前端源代码已对外开源可免费商用-优雅草老八
2024年12月30日蜻蜓蜻蜓AI工具系统v1.0.0发布-优雅草科技本产品前端源代码已对外开源可免费商用-优雅草老八
|
1天前
|
Windows
【Azure App Service】对App Service中CPU指标数据中系统占用部分(System CPU)的解释
在Azure App Service中,CPU占比可在App Service Plan级别查看整个实例的资源使用情况。具体应用中仅能查看CPU时间,需通过公式【CPU Time / (CPU核数 * 60)】估算占比。CPU百分比适用于可横向扩展的计划(Basic、Standard、Premium),而CPU时间适用于Free或Shared计划。然而,CPU Percentage包含所有应用及系统占用的CPU,高CPU指标可能由系统而非应用请求引起。详细分析每个进程的CPU占用需抓取Windows Performance Trace数据。
56 40
|
7天前
|
测试技术 Android开发 开发者
【03】优雅草央千澈详解关于APP签名以及分发-上架完整流程-第三篇安卓APP上架华为商店后面的步骤-华为应用商店相对比较麻烦一些-华为商店安卓上架
【03】优雅草央千澈详解关于APP签名以及分发-上架完整流程-第三篇安卓APP上架华为商店后面的步骤-华为应用商店相对比较麻烦一些-华为商店安卓上架
|
7天前
|
小程序 数据挖掘
圈子系统兴趣讨论群组的创建,社群运营的重要性及策略制定,同城交友app、小程序方式的创新
### 圈子系统与社群运营简介 圈子系统是社交平台中的功能模块,允许用户创建和管理兴趣小组,设置名称、规则等,吸引志同道合者加入。通过浏览不同圈子,用户可以选择感兴趣的群体参与。社群运营则通过对具有共同需求或兴趣的用户进行组织和管理,提升品牌影响力和商业价值。有效的社群运营策略包括明确定位、制定策略、持续输出有价值内容、定期举办活动、合理分配角色及数据监测优化,从而增强用户粘性和活跃度。 **圈子系统源码获取:** [链接](https://gitee.com/multi-customer-software/qz)
49 9
|
14天前
|
开发框架 小程序 前端开发
圈子社交app前端+后端源码,uniapp社交兴趣圈子开发,框架php圈子小程序安装搭建
本文介绍了圈子社交APP的源码获取、分析与定制,PHP实现的圈子框架设计及代码编写,以及圈子小程序的安装搭建。涵盖环境配置、数据库设计、前后端开发与接口对接等内容,确保平台的安全性、性能和功能完整性。通过详细指导,帮助开发者快速搭建稳定可靠的圈子社交平台。
123 18
|
4天前
|
消息中间件 监控 小程序
电竞陪玩系统架构优化设计,陪玩app如何提升系统稳定性,陪玩小程序平台的测试与监控
电竞陪玩系统架构涵盖前端(React/Vue)、后端(Spring Boot/php)、数据库(MySQL/MongoDB)、实时通信(WebSocket)及其他组件(Redis、RabbitMQ、Nginx)。通过模块化设计、微服务架构和云计算技术优化,提升系统性能与可靠性。同时,加强全面测试、实时监控及故障管理,确保系统稳定运行。
|
14天前
|
存储 监控 API
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
|
13天前
年轻人如果运用圈子系统进行扩列,社交圈子论坛app扩列的好处,兴趣行业圈子提升社交技能
年轻人通过圈子系统扩列,在数字化时代积极扩展社交网络、增进人际交往。圈子系统是社交媒体中的虚拟社区,提供内容发布、互动等功能。扩列能拓宽社交圈、增进交流、获取信息资源、提升社交技能并发现商业机会。策略包括明确目标、筛选适合的圈子、积极参与和保持诚信。同时需注意保护隐私、警惕不良信息及合理规划时间。