微信API 账单处理
This commit is contained in:
67
src/main/java/com/quinn/common/wx/AccBillDTO.java
Normal file
67
src/main/java/com/quinn/common/wx/AccBillDTO.java
Normal file
@@ -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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @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;
|
||||||
|
}
|
||||||
20
src/main/java/com/quinn/common/wx/AccBillType.java
Normal file
20
src/main/java/com/quinn/common/wx/AccBillType.java
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
package com.quinn.common.wx;
|
||||||
|
|
||||||
|
public enum AccBillType {
|
||||||
|
/**
|
||||||
|
* 收入
|
||||||
|
*/
|
||||||
|
INCOME,
|
||||||
|
/**
|
||||||
|
* 支出
|
||||||
|
*/
|
||||||
|
EXPEND,
|
||||||
|
/**
|
||||||
|
* 转账
|
||||||
|
*/
|
||||||
|
TRANSFER,
|
||||||
|
/**
|
||||||
|
* 还款
|
||||||
|
*/
|
||||||
|
REPAYMENT
|
||||||
|
}
|
||||||
@@ -16,5 +16,9 @@ public enum AccSettingType {
|
|||||||
/**
|
/**
|
||||||
* 负债账户
|
* 负债账户
|
||||||
*/
|
*/
|
||||||
OWE_SETTING
|
OWE_SETTING,
|
||||||
|
/**
|
||||||
|
* 系统属性
|
||||||
|
*/
|
||||||
|
OTHER
|
||||||
}
|
}
|
||||||
|
|||||||
95
src/main/java/com/quinn/controller/wx/WxBillController.java
Normal file
95
src/main/java/com/quinn/controller/wx/WxBillController.java
Normal file
@@ -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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 前端控制器
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @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<AccBill> accBills = accBillService.list(new QueryWrapper<AccBill>().eq("user_id", getLoginUserId(request)));
|
||||||
|
return ResponseDTO.ok().setData(accBills);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("user/bills/today")
|
||||||
|
public ResponseDTO getTodayBills(HttpServletRequest request){
|
||||||
|
List<AccBillDTO> 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();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@@ -51,7 +51,7 @@ public class CodeGenerator {
|
|||||||
|
|
||||||
// 5、策略配置
|
// 5、策略配置
|
||||||
StrategyConfig strategy = new StrategyConfig();
|
StrategyConfig strategy = new StrategyConfig();
|
||||||
strategy.setInclude("qn_acc_setting");//设置要映射的表名
|
strategy.setInclude("qn_acc_bill");//设置要映射的表名
|
||||||
strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
|
strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
|
||||||
strategy.setTablePrefix("qn_");//设置表前缀不生成
|
strategy.setTablePrefix("qn_");//设置表前缀不生成
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,22 @@
|
|||||||
package com.quinn.mapper;
|
package com.quinn.mapper;
|
||||||
|
|
||||||
|
import com.quinn.common.wx.AccBillDTO;
|
||||||
import com.quinn.pojo.AccBill;
|
import com.quinn.pojo.AccBill;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* Mapper 接口
|
* Mapper 接口
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author limqsh
|
* @author limqsh
|
||||||
* @since 2023-02-02
|
* @since 2023-02-07
|
||||||
*/
|
*/
|
||||||
public interface AccBillMapper extends BaseMapper<AccBill> {
|
public interface AccBillMapper extends BaseMapper<AccBill> {
|
||||||
|
|
||||||
|
List<AccBillDTO> listAccToday(String userId, Date date);
|
||||||
|
AccBillDTO getAccBill(Integer sid);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,4 +2,26 @@
|
|||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.quinn.mapper.AccBillMapper">
|
<mapper namespace="com.quinn.mapper.AccBillMapper">
|
||||||
|
|
||||||
|
<select id="listAccToday" resultType="com.quinn.common.wx.AccBillDTO">
|
||||||
|
select id,name,bill_type "billType",money,balance,
|
||||||
|
from_account "fromAccount",(select name from qn_acc_setting b where b.id = a.from_account) "fromAccountName",
|
||||||
|
account "account",(select name from qn_acc_setting b where b.id = a.account) "accountName",
|
||||||
|
a.money_type "moneyType",
|
||||||
|
(select name from qn_acc_setting b where b.id = a.money_type) "moneyName",
|
||||||
|
(select icon from qn_acc_setting b where b.id = a.money_type) "moneyIcon",
|
||||||
|
a.date
|
||||||
|
from qn_acc_bill a where a.user_id = #{userId} and a.date = #{date}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="getAccBill" resultType="com.quinn.common.wx.AccBillDTO">
|
||||||
|
select id,name,bill_type "billType",money,balance,
|
||||||
|
from_account "fromAccount",(select name from qn_acc_setting b where b.id = a.from_account) "fromAccountName",
|
||||||
|
account "account",(select name from qn_acc_setting b where b.id = a.account) "accountName",
|
||||||
|
a.money_type "moneyType",
|
||||||
|
(select name from qn_acc_setting b where b.id = a.money_type) "moneyName",
|
||||||
|
(select icon from qn_acc_setting b where b.id = a.money_type) "moneyIcon",
|
||||||
|
a.date,a.remark
|
||||||
|
from qn_acc_bill a where a.id = #{sid}
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
import com.quinn.common.wx.AccBillType;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -17,7 +19,7 @@ import lombok.experimental.Accessors;
|
|||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author limqsh
|
* @author limqsh
|
||||||
* @since 2023-02-02
|
* @since 2023-02-07
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = false)
|
@EqualsAndHashCode(callSuper = false)
|
||||||
@@ -32,16 +34,24 @@ public class AccBill implements Serializable {
|
|||||||
@TableId(value = "id", type = IdType.AUTO)
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
private Integer id;
|
private Integer id;
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
|
||||||
private String userId;
|
private String userId;
|
||||||
|
|
||||||
@ApiModelProperty(value = "金额")
|
@ApiModelProperty(value = "金额")
|
||||||
private Double money;
|
private Double money;
|
||||||
|
|
||||||
@ApiModelProperty(value = "账单分类ID")
|
@ApiModelProperty(value = "账单类型")
|
||||||
private Integer billType;
|
private AccBillType billType;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "转账&还款需要")
|
||||||
|
private Integer fromAccount;
|
||||||
|
|
||||||
@ApiModelProperty(value = "账户分类ID")
|
@ApiModelProperty(value = "账户分类ID")
|
||||||
private Integer accountType;
|
private Integer account;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "-1 转账 -2 还款")
|
||||||
|
private Integer moneyType;
|
||||||
|
|
||||||
private Date date;
|
private Date date;
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,21 @@
|
|||||||
package com.quinn.service;
|
package com.quinn.service;
|
||||||
|
|
||||||
|
import com.quinn.common.wx.AccBillDTO;
|
||||||
import com.quinn.pojo.AccBill;
|
import com.quinn.pojo.AccBill;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 服务类
|
* 服务类
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author limqsh
|
* @author limqsh
|
||||||
* @since 2023-02-02
|
* @since 2023-02-07
|
||||||
*/
|
*/
|
||||||
public interface AccBillService extends IService<AccBill> {
|
public interface AccBillService extends IService<AccBill> {
|
||||||
|
List<AccBillDTO> listAccToday(String userId);
|
||||||
|
AccBillDTO getAccBill(Integer sid);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,20 +1,37 @@
|
|||||||
package com.quinn.service.impl;
|
package com.quinn.service.impl;
|
||||||
|
|
||||||
|
import com.quinn.common.wx.AccBillDTO;
|
||||||
import com.quinn.pojo.AccBill;
|
import com.quinn.pojo.AccBill;
|
||||||
import com.quinn.mapper.AccBillMapper;
|
import com.quinn.mapper.AccBillMapper;
|
||||||
import com.quinn.service.AccBillService;
|
import com.quinn.service.AccBillService;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 服务实现类
|
* 服务实现类
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author limqsh
|
* @author limqsh
|
||||||
* @since 2023-02-02
|
* @since 2023-02-07
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class AccBillServiceImpl extends ServiceImpl<AccBillMapper, AccBill> implements AccBillService {
|
public class AccBillServiceImpl extends ServiceImpl<AccBillMapper, AccBill> implements AccBillService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
AccBillMapper accBillMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<AccBillDTO> listAccToday(String userId) {
|
||||||
|
return accBillMapper.listAccToday(userId,new Date());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AccBillDTO getAccBill(Integer sid) {
|
||||||
|
return accBillMapper.getAccBill(sid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,12 +14,16 @@ CREATE TABLE `qn_acc_setting` (
|
|||||||
DROP TABLE IF EXISTS `qn_acc_bill`;
|
DROP TABLE IF EXISTS `qn_acc_bill`;
|
||||||
CREATE TABLE `qn_acc_bill` (
|
CREATE TABLE `qn_acc_bill` (
|
||||||
`id` int(10) NOT NULL AUTO_INCREMENT COMMENT '自增id',
|
`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 '金额',
|
`money` double(9,2) NOT NULL COMMENT '金额',
|
||||||
`bill_type` int(10) DEFAULT NULL COMMENT '账单分类ID',
|
`bill_type` varchar(20) DEFAULT NULL COMMENT '账单类型',
|
||||||
`account_type` int(10) NOT NULL COMMENT '账户分类ID',
|
`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,
|
`date` datetime DEFAULT NULL,
|
||||||
`remark` varchar(500) DEFAULT NULL,
|
`remark` varchar(500) DEFAULT NULL,
|
||||||
`user_id` varchar(200) DEFAULT NULL,
|
|
||||||
`gmt_create` datetime NOT NULL COMMENT '收藏创建时间',
|
`gmt_create` datetime NOT NULL COMMENT '收藏创建时间',
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user