diff --git a/src/main/java/com/quinn/common/wx/AccSettingType.java b/src/main/java/com/quinn/common/wx/AccSettingType.java new file mode 100644 index 0000000..23ac972 --- /dev/null +++ b/src/main/java/com/quinn/common/wx/AccSettingType.java @@ -0,0 +1,16 @@ +package com.quinn.common.wx; + +public enum AccSettingType { + /** + * 收入 + */ + INCOME_SETTING, + /** + * 支出 + */ + EXPEND_SETTING, + /** + * 账户 + */ + ACCOUNT_SETTING +} diff --git a/src/main/java/com/quinn/common/wx/YearAmnt.java b/src/main/java/com/quinn/common/wx/YearAmnt.java new file mode 100644 index 0000000..bad68cd --- /dev/null +++ b/src/main/java/com/quinn/common/wx/YearAmnt.java @@ -0,0 +1,12 @@ +package com.quinn.common.wx; + +import lombok.Data; + +@Data +public class YearAmnt { + + private int settingId; + + private double money; + +} diff --git a/src/main/java/com/quinn/controller/wx/BaseWxController.java b/src/main/java/com/quinn/controller/wx/BaseWxController.java new file mode 100644 index 0000000..5ee4467 --- /dev/null +++ b/src/main/java/com/quinn/controller/wx/BaseWxController.java @@ -0,0 +1,14 @@ +package com.quinn.controller.wx; + +import com.quinn.pojo.User; + +import javax.servlet.http.HttpServletRequest; + +public class BaseWxController { + + protected String getLoginUserId(HttpServletRequest request){ + String userId = request.getParameter("userId"); + return userId; + } + +} diff --git a/src/main/java/com/quinn/controller/wx/WxSettingsController.java b/src/main/java/com/quinn/controller/wx/WxSettingsController.java index 120b7f5..95d5145 100644 --- a/src/main/java/com/quinn/controller/wx/WxSettingsController.java +++ b/src/main/java/com/quinn/controller/wx/WxSettingsController.java @@ -1,13 +1,25 @@ package com.quinn.controller.wx; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.quinn.common.wx.AccSettingType; +import com.quinn.common.wx.YearAmnt; import com.quinn.dto.req.SearchPage; import com.quinn.dto.res.ResponseDTO; +import com.quinn.pojo.AccSetting; +import com.quinn.service.AccSettingService; import com.quinn.service.AccountCheckService; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -19,16 +31,72 @@ import javax.annotation.Resource; */ @RestController @RequestMapping("/wx") -public class WxSettingsController { +public class WxSettingsController extends BaseWxController{ @Resource private AccountCheckService accountCheckService; + @Resource + private AccSettingService accSettingService; @PostMapping("user/login") public ResponseDTO userIndexBlog(SearchPage searchPage){ - ResponseDTO result = ResponseDTO.ok(); - result.setData(accountCheckService.getUserId("openid")); - return result; + return ResponseDTO.ok().setData(accountCheckService.getUserId("openid")); + } + + @PostMapping("user/settings") + public ResponseDTO getSettings(HttpServletRequest request){ + Map> result = new HashMap<>(); + List userSetting = accSettingService.list(new QueryWrapper().eq("user_id", getLoginUserId(request))); + result.put(AccSettingType.INCOME_SETTING.name(), userSetting.stream().filter(x -> AccSettingType.INCOME_SETTING.equals(x.getSettingType())).collect(Collectors.toList())); + result.put(AccSettingType.EXPEND_SETTING.name(), userSetting.stream().filter(x -> AccSettingType.EXPEND_SETTING.equals(x.getSettingType())).collect(Collectors.toList())); + result.put(AccSettingType.ACCOUNT_SETTING.name(), userSetting.stream().filter(x -> AccSettingType.ACCOUNT_SETTING.equals(x.getSettingType())).collect(Collectors.toList())); + return ResponseDTO.ok().setData(result); + } + + /** + * 本年度支出统计 + * @param request + * @return + */ + @PostMapping("user/settings/{id}") + public ResponseDTO addSetting(HttpServletRequest request, @PathVariable("id") String id){ + AccSetting byId = accSettingService.getById(id); + return ResponseDTO.ok().setData(byId); + } + + /** + * 本年度支出统计 + * @param request + * @return + */ + @PostMapping("user/settings/add") + public ResponseDTO addSetting(HttpServletRequest request,AccSetting accSetting){ + accSetting.setGmtCreate(new Date()); + accSetting.setUserId(getLoginUserId(request)); + accSettingService.save(accSetting); + return ResponseDTO.ok(); + } + + /** + * 本年度支出统计 + * @param request + * @return + */ + @PostMapping("user/settings/expend") + public ResponseDTO getBillExpend(HttpServletRequest request){ + List billByType = accSettingService.getBillByType(getLoginUserId(request), AccSettingType.EXPEND_SETTING); + return ResponseDTO.ok().setData(billByType); + } + + /** + * 本年度收入统计 + * @param request + * @return + */ + @PostMapping("user/settings/income") + public ResponseDTO getBillIncome(HttpServletRequest request){ + List billByType = accSettingService.getBillByType(getLoginUserId(request), AccSettingType.INCOME_SETTING); + return ResponseDTO.ok().setData(billByType); } } diff --git a/src/main/java/com/quinn/generator/CodeGenerator.java b/src/main/java/com/quinn/generator/CodeGenerator.java index b3b1a7b..9051308 100644 --- a/src/main/java/com/quinn/generator/CodeGenerator.java +++ b/src/main/java/com/quinn/generator/CodeGenerator.java @@ -51,7 +51,7 @@ public class CodeGenerator { // 5、策略配置 StrategyConfig strategy = new StrategyConfig(); - strategy.setInclude("qn_user");//设置要映射的表名 + strategy.setInclude("qn_acc_bill");//设置要映射的表名 strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略 strategy.setTablePrefix("qn_");//设置表前缀不生成 diff --git a/src/main/resources/sql/account.sql b/src/main/resources/sql/account.sql index 6db5815..c39b8ba 100644 --- a/src/main/resources/sql/account.sql +++ b/src/main/resources/sql/account.sql @@ -5,9 +5,20 @@ DROP TABLE IF EXISTS `qn_acc_setting`; CREATE TABLE `qn_acc_setting` ( `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '自增id', `name` varchar(200) NOT NULL COMMENT '名称', - `setting_type` varchar(10) DEFAULT NULL COMMENT '设置类型1-支出 2-收入 3-账户', + `setting_type` varchar(20) DEFAULT NULL COMMENT '设置类型1-支出 2-收入 3-账户', `icon` varchar(200) NOT NULL COMMENT '收藏者id', `user_id` varchar(200) DEFAULT NULL, `gmt_create` datetime NOT NULL COMMENT '收藏创建时间', PRIMARY KEY (`id`) ); +DROP TABLE IF EXISTS `qn_acc_bill`; +CREATE TABLE `qn_acc_bill` ( + `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '自增id', + `money` double(9,2) NOT NULL COMMENT '金额', + `bill_type` int(10) DEFAULT NULL COMMENT '账单分类ID', + `account_type` int(10) NOT NULL COMMENT '账户分类ID', + `date` datetime DEFAULT NULL, + `remark` varchar(500) DEFAULT NULL, + `gmt_create` datetime NOT NULL COMMENT '收藏创建时间', + PRIMARY KEY (`id`) +);