diff --git a/src/main/java/com/quinn/common/wx/AccBillDTO.java b/src/main/java/com/quinn/common/wx/AccBillDTO.java index 79c1282..b4e86c7 100644 --- a/src/main/java/com/quinn/common/wx/AccBillDTO.java +++ b/src/main/java/com/quinn/common/wx/AccBillDTO.java @@ -33,8 +33,6 @@ public class AccBillDTO implements Serializable { @TableId(value = "id", type = IdType.AUTO) private Integer id; - private String name; - @ApiModelProperty(value = "金额") private Double money; diff --git a/src/main/java/com/quinn/common/wx/EditBill.java b/src/main/java/com/quinn/common/wx/EditBill.java new file mode 100644 index 0000000..8398c4b --- /dev/null +++ b/src/main/java/com/quinn/common/wx/EditBill.java @@ -0,0 +1,11 @@ +package com.quinn.common.wx; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class EditBill implements Serializable { + private Integer sid; + private Double balance; +} diff --git a/src/main/java/com/quinn/common/wx/ListBillByAccount.java b/src/main/java/com/quinn/common/wx/ListBillByAccount.java new file mode 100644 index 0000000..c946303 --- /dev/null +++ b/src/main/java/com/quinn/common/wx/ListBillByAccount.java @@ -0,0 +1,11 @@ +package com.quinn.common.wx; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class ListBillByAccount implements Serializable { + private Integer sid; + private String dateRange; +} diff --git a/src/main/java/com/quinn/controller/wx/WxBillController.java b/src/main/java/com/quinn/controller/wx/WxBillController.java index b8b3ed5..8acce90 100644 --- a/src/main/java/com/quinn/controller/wx/WxBillController.java +++ b/src/main/java/com/quinn/controller/wx/WxBillController.java @@ -2,6 +2,7 @@ package com.quinn.controller.wx; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.quinn.common.wx.AccBillDTO; +import com.quinn.common.wx.ListBillByAccount; import com.quinn.dto.res.ResponseDTO; import com.quinn.pojo.AccBill; import com.quinn.service.AccBillService; @@ -42,6 +43,12 @@ public class WxBillController extends BaseWxController{ return ResponseDTO.ok().setData(accBills); } + @PostMapping("user/bills/account") + public ResponseDTO getBillsByBills(HttpServletRequest request, ListBillByAccount listBillByAccount){ + List accBills = accBillService.listBillByAccount(getLoginUserId(request),listBillByAccount.getSid(),listBillByAccount.getDateRange()); + return ResponseDTO.ok().setData(accBills); + } + /** * 本年度支出统计 * @return diff --git a/src/main/java/com/quinn/controller/wx/WxSettingsController.java b/src/main/java/com/quinn/controller/wx/WxSettingsController.java index a1c399b..71cf902 100644 --- a/src/main/java/com/quinn/controller/wx/WxSettingsController.java +++ b/src/main/java/com/quinn/controller/wx/WxSettingsController.java @@ -2,6 +2,7 @@ package com.quinn.controller.wx; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.quinn.common.wx.AccSettingType; +import com.quinn.common.wx.EditBill; import com.quinn.common.wx.YearAmnt; import com.quinn.dto.req.SearchPage; import com.quinn.dto.res.ResponseDTO; @@ -37,8 +38,8 @@ public class WxSettingsController extends BaseWxController{ private AccSettingService accSettingService; @PostMapping("user/login") - public ResponseDTO userIndexBlog(String openId){ - return ResponseDTO.ok().setData(accountCheckService.getUserId(openId)); + public ResponseDTO userIndexBlog(String wxCode){ + return ResponseDTO.ok().setData(accountCheckService.getUserId(wxCode)); } @PostMapping("user/settings") @@ -71,6 +72,18 @@ public class WxSettingsController extends BaseWxController{ accSettingService.removeById(id); return ResponseDTO.ok(); } + /** + * 本年度支出统计 + * @return + */ + @PostMapping("/user/settings/edit/bill") + public ResponseDTO editBill(EditBill editBill){ + AccSetting accSetting = new AccSetting(); + accSetting.setId(editBill.getSid()); + accSetting.setBalance(editBill.getBalance()); + accSettingService.updateById(accSetting); + return ResponseDTO.ok(); + } /** * 本年度支出统计 diff --git a/src/main/java/com/quinn/mapper/AccBillMapper.java b/src/main/java/com/quinn/mapper/AccBillMapper.java index 3c82589..c2789bb 100644 --- a/src/main/java/com/quinn/mapper/AccBillMapper.java +++ b/src/main/java/com/quinn/mapper/AccBillMapper.java @@ -19,4 +19,12 @@ public interface AccBillMapper extends BaseMapper { List listAccToday(String userId, String date); AccBillDTO getAccBill(Integer sid); + + List listBillByAccount(String userId, Integer accountId, String startDate, String endDate); + + List listBillByDate(String userId, String startDate, String endDate); + + List listIncomeBillOrder(String userId, String startDate, String endDate); + + List listExpendBillOrder(String userId, String startDate, String endDate); } diff --git a/src/main/java/com/quinn/mapper/xml/AccBillMapper.xml b/src/main/java/com/quinn/mapper/xml/AccBillMapper.xml index bd7d9ab..22abcc4 100644 --- a/src/main/java/com/quinn/mapper/xml/AccBillMapper.xml +++ b/src/main/java/com/quinn/mapper/xml/AccBillMapper.xml @@ -3,24 +3,72 @@ - + select id,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 + DATE_FORMAT(a.date,'%Y-%m-%d') date + from qn_acc_bill a where a.user_id = #{userId} and a.account = #{accountId} and a.date = ]]> #{startDate} a.date #{startDate} + order by a.date desc + + + + + + + + + diff --git a/src/main/java/com/quinn/pojo/AccBill.java b/src/main/java/com/quinn/pojo/AccBill.java index fae575f..9d7be64 100644 --- a/src/main/java/com/quinn/pojo/AccBill.java +++ b/src/main/java/com/quinn/pojo/AccBill.java @@ -41,6 +41,9 @@ public class AccBill implements Serializable { @ApiModelProperty(value = "金额") private Double money; + @ApiModelProperty(value = "余额") + private Double balance; + @ApiModelProperty(value = "账单类型") private AccBillType billType; diff --git a/src/main/java/com/quinn/pojo/AccSetting.java b/src/main/java/com/quinn/pojo/AccSetting.java index 2059efe..67031ba 100644 --- a/src/main/java/com/quinn/pojo/AccSetting.java +++ b/src/main/java/com/quinn/pojo/AccSetting.java @@ -43,6 +43,9 @@ public class AccSetting implements Serializable { @ApiModelProperty(value = "收藏者id") private String icon; + @ApiModelProperty(value = "余额") + private Double balance; + private String userId; @ApiModelProperty(value = "收藏创建时间") diff --git a/src/main/java/com/quinn/service/AccBillService.java b/src/main/java/com/quinn/service/AccBillService.java index c74248e..d72c56e 100644 --- a/src/main/java/com/quinn/service/AccBillService.java +++ b/src/main/java/com/quinn/service/AccBillService.java @@ -17,5 +17,9 @@ import java.util.List; */ public interface AccBillService extends IService { List listAccToday(String userId); + List listBillByAccount(String userId,Integer accountId,String rangeDate); + List listBillByDate(String userId,String rangeDate); + List listIncomeBillOrder(String userId,String rangeDate); + List listExpendBillOrder(String userId,String rangeDate); 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 853b54d..9725cf6 100644 --- a/src/main/java/com/quinn/service/impl/AccBillServiceImpl.java +++ b/src/main/java/com/quinn/service/impl/AccBillServiceImpl.java @@ -31,6 +31,34 @@ public class AccBillServiceImpl extends ServiceImpl impl return accBillMapper.listAccToday(userId, QuinnUtils.getViewStrFromDate(new Date())); } + @Override + public List listBillByAccount(String userId,Integer accountId,String rangeDate) { + String startDate = rangeDate.substring(0,rangeDate.indexOf("至")); + String endDate = rangeDate.substring(rangeDate.indexOf("至")+1); + return accBillMapper.listBillByAccount(userId, accountId,startDate,endDate); + } + + @Override + public List listBillByDate(String userId, String rangeDate) { + String startDate = rangeDate + "-01"; + String endDate = rangeDate + "-31"; + return accBillMapper.listBillByDate(userId,startDate,endDate); + } + + @Override + public List listIncomeBillOrder(String userId, String rangeDate) { + String startDate = rangeDate + "-01"; + String endDate = rangeDate + "-31"; + return accBillMapper.listIncomeBillOrder(userId,startDate,endDate); + } + + @Override + public List listExpendBillOrder(String userId, String rangeDate) { + String startDate = rangeDate + "-01"; + String endDate = rangeDate + "-31"; + return accBillMapper.listExpendBillOrder(userId,startDate,endDate); + } + @Override public AccBillDTO getAccBill(Integer sid) { return accBillMapper.getAccBill(sid); diff --git a/src/main/java/com/quinn/service/impl/AccountCheckServiceImpl.java b/src/main/java/com/quinn/service/impl/AccountCheckServiceImpl.java index ec08d2b..bb61122 100644 --- a/src/main/java/com/quinn/service/impl/AccountCheckServiceImpl.java +++ b/src/main/java/com/quinn/service/impl/AccountCheckServiceImpl.java @@ -5,20 +5,43 @@ import com.quinn.intergration.AttrIcon; import com.quinn.mapper.UserMapper; import com.quinn.pojo.User; import com.quinn.service.AccountCheckService; +import com.quinn.utils.HttpUtils; +import com.quinn.utils.JsonUtils; import com.quinn.utils.QuinnUtils; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + @Component public class AccountCheckServiceImpl implements AccountCheckService { @Resource UserMapper userMapper; + private final String WX_OPENID_URL = "https://api.weixin.qq.com/sns/jscode2session"; + private final String WX_APP_ID = "wxb1f499f0a173865b"; + private final String WX_APP_SECRET = "833eefaf9206337d6c2d643f94baef7b"; + private final String GRANT_TYPE = "authorization_code"; + @Override - public String getUserId(String openid) { + public String getUserId(String code) { +// let param = { +// appid:'wxb1f499f0a173865b', +// secret:'833eefaf9206337d6c2d643f94baef7b', +// js_code: res.code, +// grant_type: 'authorization_code' +// }; + Map param = new HashMap<>(); + param.put("appid",WX_APP_ID); + param.put("secret",WX_APP_SECRET); + param.put("js_code",code); + param.put("GRANT_TYPE",GRANT_TYPE); + String result = HttpUtils.doPost(WX_OPENID_URL, param); + String openid = (String) JsonUtils.decode(result,Map.class).get("openid"); String uid = userMapper.getUserByOpenid(openid); if (StringUtils.isEmpty(uid)){ // 没有这个用户,需要构建用户对象 diff --git a/src/main/resources/sql/account.sql b/src/main/resources/sql/account.sql index 8879f79..052095e 100644 --- a/src/main/resources/sql/account.sql +++ b/src/main/resources/sql/account.sql @@ -7,6 +7,7 @@ CREATE TABLE `qn_acc_setting` ( `name` varchar(200) NOT NULL COMMENT '名称', `setting_type` varchar(20) DEFAULT NULL COMMENT '设置类型', `icon` varchar(200) NOT NULL COMMENT '收藏者id', + `balance` double(9,2) NOT NULL DEFAULT 0 COMMENT '余额', `user_id` varchar(200) DEFAULT NULL, `gmt_create` datetime NOT NULL COMMENT '收藏创建时间', PRIMARY KEY (`id`) @@ -14,7 +15,6 @@ 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 DEFAULT 0 COMMENT '金额', `balance` double(9,2) NOT NULL DEFAULT 0 COMMENT '余额',