From 189a085f0b4c5e79509cffc2de467eac7324b02b Mon Sep 17 00:00:00 2001 From: limqhz Date: Tue, 7 Feb 2023 16:37:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E4=BF=A1API=20=E8=B4=A6=E5=8D=95?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/quinn/common/wx/AccBillDTO.java | 67 +++++++++++++ .../java/com/quinn/common/wx/AccBillType.java | 20 ++++ .../com/quinn/common/wx/AccSettingType.java | 6 +- .../quinn/controller/wx/WxBillController.java | 95 +++++++++++++++++++ .../com/quinn/generator/CodeGenerator.java | 2 +- .../java/com/quinn/mapper/AccBillMapper.java | 8 +- .../com/quinn/mapper/xml/AccBillMapper.xml | 22 +++++ src/main/java/com/quinn/pojo/AccBill.java | 20 +++- .../com/quinn/service/AccBillService.java | 9 +- .../service/impl/AccBillServiceImpl.java | 19 +++- src/main/resources/sql/account.sql | 10 +- 11 files changed, 264 insertions(+), 14 deletions(-) create mode 100644 src/main/java/com/quinn/common/wx/AccBillDTO.java create mode 100644 src/main/java/com/quinn/common/wx/AccBillType.java create mode 100644 src/main/java/com/quinn/controller/wx/WxBillController.java diff --git a/src/main/java/com/quinn/common/wx/AccBillDTO.java b/src/main/java/com/quinn/common/wx/AccBillDTO.java new file mode 100644 index 0000000..ec86072 --- /dev/null +++ b/src/main/java/com/quinn/common/wx/AccBillDTO.java @@ -0,0 +1,67 @@ +package com.quinn.common.wx; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author limqsh + * @since 2023-02-07 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("qn_acc_bill") +@ApiModel(value="AccBill对象", description="") +public class AccBillDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "自增id") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + private String name; + + @ApiModelProperty(value = "金额") + private Double money; + + @ApiModelProperty(value = "余额") + private Double balance; + + @ApiModelProperty(value = "账单类型") + private AccBillType billType; + + @ApiModelProperty(value = "转账&还款需要") + private Integer fromAccount; + + private String fromAccountName; + + @ApiModelProperty(value = "账户分类ID") + private Integer account; + + private String accountName; + + @ApiModelProperty(value = "-1 转账 -2 还款") + private Integer moneyType; + + private String moneyName; + + private String moneyIcon; + + private Date date; + + private String remark; +} diff --git a/src/main/java/com/quinn/common/wx/AccBillType.java b/src/main/java/com/quinn/common/wx/AccBillType.java new file mode 100644 index 0000000..2a7b5ac --- /dev/null +++ b/src/main/java/com/quinn/common/wx/AccBillType.java @@ -0,0 +1,20 @@ +package com.quinn.common.wx; + +public enum AccBillType { + /** + * 收入 + */ + INCOME, + /** + * 支出 + */ + EXPEND, + /** + * 转账 + */ + TRANSFER, + /** + * 还款 + */ + REPAYMENT +} diff --git a/src/main/java/com/quinn/common/wx/AccSettingType.java b/src/main/java/com/quinn/common/wx/AccSettingType.java index 4ea2a51..8f5f154 100644 --- a/src/main/java/com/quinn/common/wx/AccSettingType.java +++ b/src/main/java/com/quinn/common/wx/AccSettingType.java @@ -16,5 +16,9 @@ public enum AccSettingType { /** * 负债账户 */ - OWE_SETTING + OWE_SETTING, + /** + * 系统属性 + */ + OTHER } diff --git a/src/main/java/com/quinn/controller/wx/WxBillController.java b/src/main/java/com/quinn/controller/wx/WxBillController.java new file mode 100644 index 0000000..b8b3ed5 --- /dev/null +++ b/src/main/java/com/quinn/controller/wx/WxBillController.java @@ -0,0 +1,95 @@ +package com.quinn.controller.wx; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.quinn.common.wx.AccBillDTO; +import com.quinn.dto.res.ResponseDTO; +import com.quinn.pojo.AccBill; +import com.quinn.service.AccBillService; +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.List; + +/** + *

+ * 前端控制器 + *

+ * + * @author limqsh + * @since 2022-05-01 + */ +@RestController +@RequestMapping("/wx") +public class WxBillController extends BaseWxController{ + + @Resource + AccBillService accBillService; + + @PostMapping("user/bills") + public ResponseDTO getBills(HttpServletRequest request){ + List accBills = accBillService.list(new QueryWrapper().eq("user_id", getLoginUserId(request))); + return ResponseDTO.ok().setData(accBills); + } + + @PostMapping("user/bills/today") + public ResponseDTO getTodayBills(HttpServletRequest request){ + List accBills = accBillService.listAccToday(getLoginUserId(request)); + return ResponseDTO.ok().setData(accBills); + } + + /** + * 本年度支出统计 + * @return + */ + @PostMapping("user/bill/{id}") + public ResponseDTO getBill(@PathVariable("id") Integer id){ + AccBillDTO accBill = accBillService.getAccBill(id); + return ResponseDTO.ok().setData(accBill); + } + + /** + * 本年度支出统计 + * @return + */ + @PostMapping("user/bill/del/{id}") + public ResponseDTO deleteBill(@PathVariable("id") Integer id){ + accBillService.removeById(id); + return ResponseDTO.ok(); + } + + /** + * 本年度支出统计 + * @param request + * @return + */ + @PostMapping("user/bill/edit") + public ResponseDTO editBill(HttpServletRequest request,AccBill accBill){ + if (accBill.getId() != -1){ + AccBill byId = accBillService.getById(accBill.getId()); + if (byId != null){ + byId.setId(accBill.getId()); + byId.setName(accBill.getName()); + byId.setBillType(accBill.getBillType()); + byId.setMoneyType(accBill.getMoneyType()); + byId.setFromAccount(accBill.getFromAccount()); + byId.setAccount(accBill.getAccount()); + byId.setDate(accBill.getDate()); + byId.setMoney(accBill.getMoney()); + byId.setRemark(accBill.getRemark()); + } + accBillService.updateById(byId); + }else { + accBill.setGmtCreate(new Date()); + accBill.setUserId(getLoginUserId(request)); + accBillService.save(accBill); + } + return ResponseDTO.ok(); + } + +} + diff --git a/src/main/java/com/quinn/generator/CodeGenerator.java b/src/main/java/com/quinn/generator/CodeGenerator.java index 016786f..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_acc_setting");//设置要映射的表名 + strategy.setInclude("qn_acc_bill");//设置要映射的表名 strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略 strategy.setTablePrefix("qn_");//设置表前缀不生成 diff --git a/src/main/java/com/quinn/mapper/AccBillMapper.java b/src/main/java/com/quinn/mapper/AccBillMapper.java index 5c3a1c3..36457f7 100644 --- a/src/main/java/com/quinn/mapper/AccBillMapper.java +++ b/src/main/java/com/quinn/mapper/AccBillMapper.java @@ -1,16 +1,22 @@ package com.quinn.mapper; +import com.quinn.common.wx.AccBillDTO; import com.quinn.pojo.AccBill; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import java.util.Date; +import java.util.List; + /** *

* Mapper 接口 *

* * @author limqsh - * @since 2023-02-02 + * @since 2023-02-07 */ public interface AccBillMapper extends BaseMapper { + List listAccToday(String userId, Date date); + AccBillDTO getAccBill(Integer sid); } diff --git a/src/main/java/com/quinn/mapper/xml/AccBillMapper.xml b/src/main/java/com/quinn/mapper/xml/AccBillMapper.xml index 7639e52..bd7d9ab 100644 --- a/src/main/java/com/quinn/mapper/xml/AccBillMapper.xml +++ b/src/main/java/com/quinn/mapper/xml/AccBillMapper.xml @@ -2,4 +2,26 @@ + + + + diff --git a/src/main/java/com/quinn/pojo/AccBill.java b/src/main/java/com/quinn/pojo/AccBill.java index f0c3caa..6ca2e57 100644 --- a/src/main/java/com/quinn/pojo/AccBill.java +++ b/src/main/java/com/quinn/pojo/AccBill.java @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotation.TableId; import java.io.Serializable; + +import com.quinn.common.wx.AccBillType; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -13,11 +15,11 @@ import lombok.experimental.Accessors; /** *

- * + * *

* * @author limqsh - * @since 2023-02-02 + * @since 2023-02-07 */ @Data @EqualsAndHashCode(callSuper = false) @@ -32,16 +34,24 @@ public class AccBill implements Serializable { @TableId(value = "id", type = IdType.AUTO) private Integer id; + private String name; + private String userId; @ApiModelProperty(value = "金额") private Double money; - @ApiModelProperty(value = "账单分类ID") - private Integer billType; + @ApiModelProperty(value = "账单类型") + private AccBillType billType; + + @ApiModelProperty(value = "转账&还款需要") + private Integer fromAccount; @ApiModelProperty(value = "账户分类ID") - private Integer accountType; + private Integer account; + + @ApiModelProperty(value = "-1 转账 -2 还款") + private Integer moneyType; private Date date; diff --git a/src/main/java/com/quinn/service/AccBillService.java b/src/main/java/com/quinn/service/AccBillService.java index cee77e4..c74248e 100644 --- a/src/main/java/com/quinn/service/AccBillService.java +++ b/src/main/java/com/quinn/service/AccBillService.java @@ -1,16 +1,21 @@ package com.quinn.service; +import com.quinn.common.wx.AccBillDTO; import com.quinn.pojo.AccBill; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Date; +import java.util.List; + /** *

* 服务类 *

* * @author limqsh - * @since 2023-02-02 + * @since 2023-02-07 */ public interface AccBillService extends IService { - + List listAccToday(String userId); + AccBillDTO getAccBill(Integer sid); } diff --git a/src/main/java/com/quinn/service/impl/AccBillServiceImpl.java b/src/main/java/com/quinn/service/impl/AccBillServiceImpl.java index d6db745..5601ce3 100644 --- a/src/main/java/com/quinn/service/impl/AccBillServiceImpl.java +++ b/src/main/java/com/quinn/service/impl/AccBillServiceImpl.java @@ -1,20 +1,37 @@ package com.quinn.service.impl; +import com.quinn.common.wx.AccBillDTO; import com.quinn.pojo.AccBill; import com.quinn.mapper.AccBillMapper; import com.quinn.service.AccBillService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; + /** *

* 服务实现类 *

* * @author limqsh - * @since 2023-02-02 + * @since 2023-02-07 */ @Service public class AccBillServiceImpl extends ServiceImpl implements AccBillService { + @Resource + AccBillMapper accBillMapper; + + @Override + public List listAccToday(String userId) { + return accBillMapper.listAccToday(userId,new Date()); + } + + @Override + public AccBillDTO getAccBill(Integer sid) { + return accBillMapper.getAccBill(sid); + } } diff --git a/src/main/resources/sql/account.sql b/src/main/resources/sql/account.sql index 5a0cc44..1daa7de 100644 --- a/src/main/resources/sql/account.sql +++ b/src/main/resources/sql/account.sql @@ -14,12 +14,16 @@ CREATE TABLE `qn_acc_setting` ( DROP TABLE IF EXISTS `qn_acc_bill`; CREATE TABLE `qn_acc_bill` ( `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '自增id', + `name` varchar(255) NOT NULL, + `user_id` varchar(200) NOT NULL, `money` double(9,2) NOT NULL COMMENT '金额', - `bill_type` int(10) DEFAULT NULL COMMENT '账单分类ID', - `account_type` int(10) NOT NULL COMMENT '账户分类ID', + `bill_type` varchar(20) DEFAULT NULL COMMENT '账单类型', + `from_account` int(10) DEFAULT NULL COMMENT '转账&还款需要', + `account` int(10) DEFAULT NULL COMMENT '账户分类ID', + `money_type` int(10) DEFAULT NULL COMMENT '-1 转账 -2 还款', + `money_type_icon` varchar(255) DEFAULT NULL, `date` datetime DEFAULT NULL, `remark` varchar(500) DEFAULT NULL, - `user_id` varchar(200) DEFAULT NULL, `gmt_create` datetime NOT NULL COMMENT '收藏创建时间', PRIMARY KEY (`id`) );