Android快速實(shí)現(xiàn)一個財務(wù)APP程序詳解
前言
昨天有個粉絲朋友也想學(xué)開發(fā)Web和小程序、安卓,問可以在大學(xué)學(xué)會嗎?
在學(xué)校學(xué)到的東西真的有限:
在很多的高校,有一些教授是學(xué)院派的,他們沒有做過多少開發(fā)工作,上課就是照本宣科,講的知識點(diǎn)都是陳年落伍的技術(shù),更別說帶學(xué)生做項目了。
現(xiàn)在的很多碩博學(xué)生幫老師做課件,然后老師上課一頓讀。
當(dāng)然有的老師開發(fā)能力也是很強(qiáng)的,他們有開發(fā)經(jīng)驗(yàn),可以更加全面地理解技術(shù)知識點(diǎn),然后傳遞給學(xué)生,也能拿到一些科研項目,然后帶學(xué)生實(shí)戰(zhàn)。
但是,但是,這種老師少之又少。我平時輔導(dǎo)過大量的計算機(jī)學(xué)生,也有個VIP群,很多學(xué)習(xí)VIP項目的小伙伴,也變得越來越強(qiáng),
我總結(jié)出來,大部門計算機(jī)教學(xué)水平真的一般般:
1,教材落后,還有很多Java課程在教Swing/SSH框架,這已經(jīng)是淘汰多少年的技術(shù)了。
2,實(shí)戰(zhàn)不足。學(xué)生在大學(xué)期間代碼量極少,少得可憐,沒有項目實(shí)戰(zhàn)。找工作和企業(yè)的要求無法匹配。
3,教授課程方式極其落后。這是計算機(jī)啊,不是匯報工作,你全課程ppt有啥用。是念ppt學(xué)生能理解,還是給學(xué)生實(shí)操下項目,學(xué)生可以理解????
4,課后輔導(dǎo)比較差。在國外的一些名校,老師每周抽出三個小時作為 office hour,國內(nèi)的老師下課,直接拍屁股走人,課后沒有輔導(dǎo)。
昨天沒事,開發(fā)了一個APP的財務(wù)系統(tǒng),如果需要學(xué)習(xí)開發(fā),可以一起??!加油,奧利給!
一,系統(tǒng)的技術(shù)棧
移動端,采用安卓進(jìn)行開發(fā),Android它應(yīng)用于安卓系統(tǒng)軟件和程序開發(fā),其由谷歌公司推出,目前在國際市場上有著廣泛的應(yīng)用及開發(fā)環(huán)境,并不瘦限制研發(fā)人員能夠通過修改開放的源代碼來實(shí)現(xiàn)各種使用的 APP軟件,開發(fā)的軟件程序具有界面友好穩(wěn)定性好等特點(diǎn),安卓系統(tǒng)架構(gòu)圖具體如下:

后端采用的Java進(jìn)行開發(fā)的,數(shù)據(jù)庫采用的Mysql。
系統(tǒng)的功能架構(gòu):

二,系統(tǒng)界面







后臺:






三,系統(tǒng)核心代碼
/**
* 小孟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("請輸入真實(shí)姓名");
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("用戶名已經(jīng)存在,請重試!");
}
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("請輸入真實(shí)姓名");
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); // 使用關(guān)聯(lián)查詢
}
/**
* 查詢?nèi)?
*/
@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()); // 使用關(guān)聯(lián)查詢
//return JsonResult.ok().setData(pageParam.sortRecords(records));
}
/**
* 根據(jù)id查詢
*/
@ResponseBody
@RequestMapping("/get")
public JsonResult get(Integer id) {
return JsonResult.ok().setData(gonggaoService.getById(id));
// 使用關(guān)聯(lián)查詢
//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); // 使用關(guān)聯(lián)查詢
}
/**
* 查詢?nèi)?
*/
@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()); // 使用關(guān)聯(lián)查詢
//return JsonResult.ok().setData(pageParam.sortRecords(records));
}
/**
* 根據(jù)id查詢
*/
@ResponseBody
@RequestMapping("/get")
public JsonResult get(Integer id) {
return JsonResult.ok().setData(gudingzhichuService.getById(id));
// 使用關(guān)聯(lián)查詢
//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("修改失敗");
}到此這篇關(guān)于Android快速實(shí)現(xiàn)一個財務(wù)APP程序詳解的文章就介紹到這了,更多相關(guān)Android財務(wù)APP內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android模擬器實(shí)現(xiàn)手機(jī)添加文件到sd卡的方法
這篇文章主要介紹了Android模擬器實(shí)現(xiàn)手機(jī)添加文件到sd卡的方法,詳細(xì)分析了Android模擬器添加文件到sd卡的步驟與相關(guān)技巧,需要的朋友可以參考下2016-06-06
一文帶你了解Android中的網(wǎng)絡(luò)請求
安卓開發(fā)網(wǎng)絡(luò)請求可謂是安卓開發(fā)的靈魂,如果你不會網(wǎng)絡(luò)請求,那么你開發(fā)的應(yīng)用軟件就是一具沒有靈魂的枯骨。本文主要為大家介紹的是Android的網(wǎng)絡(luò)請求,感興趣的可以跟隨小編一起學(xué)習(xí)一下2022-11-11
Android自定義View實(shí)現(xiàn)仿1號店垂直滾動廣告條代碼
這篇文章主要介紹了Android自定義View實(shí)現(xiàn)仿1號店垂直滾動廣告條代碼,實(shí)現(xiàn)步驟及實(shí)現(xiàn)原理本文給大家介紹的非常詳細(xì),需要的朋友參考下吧2017-01-01
Android開發(fā)四大組件之實(shí)現(xiàn)電話攔截和電話錄音
這篇文章給大家介紹Android開發(fā)四大組件之實(shí)現(xiàn)電話攔截和電話錄音,涉及到android四大基本組件在程序中的應(yīng)用,對android四大基本組件感興趣的朋友可以參考下本篇文章2015-10-10
Android簡單實(shí)現(xiàn)菜單拖拽排序的功能
這篇文章主要介紹了Android簡單實(shí)現(xiàn)菜單拖拽排序的功能,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價價值,需要的朋友可以參考一下2022-07-07
Android中使用Vectors(2)繪制優(yōu)美的路徑動畫
這篇文章主要介紹了Android中使用Vectors(2)繪制優(yōu)美的路徑動畫的相關(guān)資料,需要的朋友可以參考下2016-03-03
Android編程實(shí)現(xiàn)讀取工程中的txt文件功能
這篇文章主要介紹了Android編程實(shí)現(xiàn)讀取工程中的txt文件功能,結(jié)合實(shí)例形式詳細(xì)分析了Android讀取txt文件的原理、操作步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-02-02
Android Studio導(dǎo)入項目非常慢的解決方法
這篇文章主要為大家詳細(xì)介紹了Android Studio導(dǎo)入項目非常慢的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11

