diff --git a/mall-portal/pom.xml b/mall-portal/pom.xml index 2255830..aa0845a 100644 --- a/mall-portal/pom.xml +++ b/mall-portal/pom.xml @@ -59,6 +59,7 @@ org.projectlombok lombok true + 1.18.20 diff --git a/mall-portal/src/main/java/com/buy507/mall/portal/controller/MyWalletController.java b/mall-portal/src/main/java/com/buy507/mall/portal/controller/MyWalletController.java new file mode 100644 index 0000000..a51c6e2 --- /dev/null +++ b/mall-portal/src/main/java/com/buy507/mall/portal/controller/MyWalletController.java @@ -0,0 +1,41 @@ +package com.buy507.mall.portal.controller; + +import com.buy507.mall.common.api.CommonResult; +import com.buy507.mall.portal.service.MyWalletService; +import com.buy507.mall.portal.vo.WalletCashVo; +import com.buy507.mall.portal.vo.WalletPointsVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/wallet") +public class MyWalletController { + + @Autowired + private MyWalletService myWalletService; + + /** + * 获取现金余额和流水 + * @param userId + * @return + */ + @GetMapping("/balance") + public CommonResult getBalance(@RequestParam Long userId){ + WalletCashVo walletCashVo = myWalletService.getBalanceAndCashFlow(userId); + return CommonResult.success(walletCashVo); + } + + /** + * 获取积分余额和流水 + * @param userId + * @return + */ + @GetMapping("/points") + public CommonResult getIntegration(@RequestParam Long userId){ + WalletPointsVo walletPointsVo = myWalletService.getIntegrationAndPointsFlow(userId); + return CommonResult.success(walletPointsVo); + } +} diff --git a/mall-portal/src/main/java/com/buy507/mall/portal/dao/MyWalletMapper.java b/mall-portal/src/main/java/com/buy507/mall/portal/dao/MyWalletMapper.java new file mode 100644 index 0000000..a142017 --- /dev/null +++ b/mall-portal/src/main/java/com/buy507/mall/portal/dao/MyWalletMapper.java @@ -0,0 +1,47 @@ +package com.buy507.mall.portal.dao; + +import com.buy507.mall.portal.vo.TransactionCashVo; +import com.buy507.mall.portal.vo.TransactionPointsVo; +import com.buy507.mall.portal.vo.WalletCashVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; + +import java.math.BigDecimal; +import java.util.List; + +@Mapper +public interface MyWalletMapper { + /** + * 获取用户现金余额 + * @param userId + * @return + */ + @Select("SELECT balance FROM ums_member WHERE id = #{userId}") + BigDecimal getBalance(Long userId); + + /** + * 获取用户现金流水 + * @param userId + * @return + */ + @Select("SELECT revenue_amount, remarks, transfer_payment_time FROM ums_member_account_transaction " + + "WHERE ums_member_account_transaction.member_id = #{userId} ORDER BY transfer_payment_time DESC") + List getCashFlow(Long userId); + + /** + * 获取用户积分余额 + * @param userId + * @return + */ + @Select("SELECT integration FROM ums_member WHERE id = #{userId}") + Integer getIntegration(Long userId); + + /** + * 获取用户积分流水 + * @param userId + * @return + */ + @Select("SELECT revenue_points, remarks, transfer_payment_time FROM ums_member_account_transaction " + + "WHERE ums_member_account_transaction.member_id = #{userId} ORDER BY transfer_payment_time DESC") + List getPointsFlow(Long userId); +} diff --git a/mall-portal/src/main/java/com/buy507/mall/portal/service/MyWalletService.java b/mall-portal/src/main/java/com/buy507/mall/portal/service/MyWalletService.java new file mode 100644 index 0000000..c40c13a --- /dev/null +++ b/mall-portal/src/main/java/com/buy507/mall/portal/service/MyWalletService.java @@ -0,0 +1,21 @@ +package com.buy507.mall.portal.service; + +import com.buy507.mall.portal.vo.WalletCashVo; +import com.buy507.mall.portal.vo.WalletPointsVo; + +public interface MyWalletService { + + /** + * 获取现金余额和流水 + * @param userId + * @return + */ + WalletCashVo getBalanceAndCashFlow(Long userId); + + /** + * 获取积分余额和流水 + * @param userId + * @return + */ + WalletPointsVo getIntegrationAndPointsFlow(Long userId); +} diff --git a/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/MyWalletServiceImpl.java b/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/MyWalletServiceImpl.java new file mode 100644 index 0000000..806b477 --- /dev/null +++ b/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/MyWalletServiceImpl.java @@ -0,0 +1,49 @@ +package com.buy507.mall.portal.service.impl; + +import com.buy507.mall.portal.dao.MyWalletMapper; +import com.buy507.mall.portal.service.MyWalletService; +import com.buy507.mall.portal.vo.WalletCashVo; +import com.buy507.mall.portal.vo.WalletPointsVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class MyWalletServiceImpl implements MyWalletService { + + @Autowired + private MyWalletMapper myWalletMapper; + + /** + * 获取现金余额和流水 + * @param userId + * @return + */ + @Override + public WalletCashVo getBalanceAndCashFlow(Long userId) { + + WalletCashVo walletCashVo = new WalletCashVo(); + //获取现金余额 + walletCashVo.setBalance(myWalletMapper.getBalance(userId)); + //获取现金流水 + walletCashVo.setCashVoList(myWalletMapper.getCashFlow(userId)); + + return walletCashVo; + } + + /** + * 获取积分余额和流水 + * @param userId + * @return + */ + @Override + public WalletPointsVo getIntegrationAndPointsFlow(Long userId) { + WalletPointsVo walletPointsVo = new WalletPointsVo(); + + //获取积分余额 + walletPointsVo.setIntegration(myWalletMapper.getIntegration(userId)); + //获取积分流水 + walletPointsVo.setPointsVoList(myWalletMapper.getPointsFlow(userId)); + + return walletPointsVo; + } +} diff --git a/mall-portal/src/main/java/com/buy507/mall/portal/vo/TransactionCashVo.java b/mall-portal/src/main/java/com/buy507/mall/portal/vo/TransactionCashVo.java new file mode 100644 index 0000000..ad45480 --- /dev/null +++ b/mall-portal/src/main/java/com/buy507/mall/portal/vo/TransactionCashVo.java @@ -0,0 +1,22 @@ +package com.buy507.mall.portal.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class TransactionCashVo implements Serializable { + + //现金数额 + private Integer revenueAmount; + + //备注 + private String remarks; + + //时间 + private Data transferPaymentTime; +} diff --git a/mall-portal/src/main/java/com/buy507/mall/portal/vo/TransactionPointsVo.java b/mall-portal/src/main/java/com/buy507/mall/portal/vo/TransactionPointsVo.java new file mode 100644 index 0000000..df7d12a --- /dev/null +++ b/mall-portal/src/main/java/com/buy507/mall/portal/vo/TransactionPointsVo.java @@ -0,0 +1,21 @@ +package com.buy507.mall.portal.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class TransactionPointsVo implements Serializable { + //积分数额 + private Integer revenuePoints; + + //备注 + private String remarks; + + //时间 + private Data transferPaymentTime; +} diff --git a/mall-portal/src/main/java/com/buy507/mall/portal/vo/WalletCashVo.java b/mall-portal/src/main/java/com/buy507/mall/portal/vo/WalletCashVo.java new file mode 100644 index 0000000..934f8da --- /dev/null +++ b/mall-portal/src/main/java/com/buy507/mall/portal/vo/WalletCashVo.java @@ -0,0 +1,16 @@ +package com.buy507.mall.portal.vo; + +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +@Data +public class WalletCashVo { + + // 余额现金 + private BigDecimal balance; + + //现金流水 + private List cashVoList; +} diff --git a/mall-portal/src/main/java/com/buy507/mall/portal/vo/WalletPointsVo.java b/mall-portal/src/main/java/com/buy507/mall/portal/vo/WalletPointsVo.java new file mode 100644 index 0000000..55b0fdc --- /dev/null +++ b/mall-portal/src/main/java/com/buy507/mall/portal/vo/WalletPointsVo.java @@ -0,0 +1,15 @@ +package com.buy507.mall.portal.vo; + +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +@Data +public class WalletPointsVo { + // 余额积分 + private Integer integration; + + //积分流水 + private List pointsVoList; +} diff --git a/mall-portal/src/main/resources/dao/MyWalletMapper.xml b/mall-portal/src/main/resources/dao/MyWalletMapper.xml new file mode 100644 index 0000000..0daca2c --- /dev/null +++ b/mall-portal/src/main/resources/dao/MyWalletMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file