From a09a46e0eadcf6904024e034f6adda10d615780f Mon Sep 17 00:00:00 2001 From: GYJ <1157756119@qq.com> Date: Tue, 9 Jul 2024 16:04:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=AF=BC=E5=87=BA=E5=85=85?= =?UTF-8?q?=E5=80=BC=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/shop/TbShopUserController.java | 41 +++++++++++++------ .../dto/shop/TbShopRechargeListDto.java | 18 ++++++++ .../dto/shop/TbShopRechargeRespDto.java | 36 ++++++++++++++++ .../mybatis/entity/TbShopUserFlow.java | 6 +++ .../mybatis/mapper/ShopUserMapper.java | 22 ++++++++++ .../repository/shop/TbShopUserRepository.java | 6 --- .../impl/shopimpl/TbShopUserServiceImpl.java | 36 +++++++++++++++- .../service/shop/TbShopUserService.java | 14 +++++++ 8 files changed, 159 insertions(+), 20 deletions(-) create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopRechargeListDto.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopRechargeRespDto.java diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java index f194ed06..ee7d8fd9 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java @@ -2,6 +2,9 @@ package cn.ysk.cashier.controller.shop; import cn.hutool.core.util.StrUtil; import cn.ysk.cashier.annotation.AnonymousAccess; +import cn.ysk.cashier.annotation.rest.AnonymousGetMapping; +import cn.ysk.cashier.annotation.rest.AnonymousPostMapping; +import cn.ysk.cashier.dto.shop.TbShopRechargeListDto; import cn.ysk.cashier.dto.shop.TbShopUserQueryCriteria; import cn.ysk.cashier.exception.BadRequestException; import cn.ysk.cashier.mybatis.service.TbMShopUserService; @@ -20,10 +23,10 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** -* @website https://eladmin.vip -* @author lyf -* @date 2024-03-01 -**/ + * @author lyf + * @website https://eladmin.vip + * @date 2024-03-01 + **/ @RestController @RequiredArgsConstructor @Api(tags = "/shop/user管理") @@ -41,35 +44,35 @@ public class TbShopUserController { @GetMapping @ApiOperation("查询/shop/user") - public ResponseEntity queryTbShopUser(TbShopUserQueryCriteria criteria, Pageable pageable){ - return new ResponseEntity<>(tbShopUserService.queryAll(criteria,pageable),HttpStatus.OK); + public ResponseEntity queryTbShopUser(TbShopUserQueryCriteria criteria, Pageable pageable) { + return new ResponseEntity<>(tbShopUserService.queryAll(criteria, pageable), HttpStatus.OK); } @GetMapping("queryAllShopUser") @ApiOperation("查询商家用户") - public ResponseEntity queryAllShopUser(TbShopUserQueryCriteria criteria){ - return new ResponseEntity<>(tbShopUserService.queryShopUser(criteria),HttpStatus.OK); + public ResponseEntity queryAllShopUser(TbShopUserQueryCriteria criteria) { + return new ResponseEntity<>(tbShopUserService.queryShopUser(criteria), HttpStatus.OK); } @GetMapping("summary") @ApiOperation("查询会员概述") - public ResponseEntity summary(TbShopUserQueryCriteria criteria){ + public ResponseEntity summary(TbShopUserQueryCriteria criteria) { if (StrUtil.isBlank(criteria.getShopId())) { throw new BadRequestException("店铺id不为空"); } - return new ResponseEntity<>(tbMShopUserService.summary(criteria),HttpStatus.OK); + return new ResponseEntity<>(tbMShopUserService.summary(criteria), HttpStatus.OK); } @PostMapping @ApiOperation("新增/shop/user") - public ResponseEntity createTbShopUser(@Validated @RequestBody TbShopUser resources){ - return new ResponseEntity<>(tbShopUserService.create(resources),HttpStatus.CREATED); + public ResponseEntity createTbShopUser(@Validated @RequestBody TbShopUser resources) { + return new ResponseEntity<>(tbShopUserService.create(resources), HttpStatus.CREATED); } @PutMapping @ApiOperation("修改/shop/user") - public ResponseEntity updateTbShopUser(@Validated @RequestBody TbShopUser resources){ + public ResponseEntity updateTbShopUser(@Validated @RequestBody TbShopUser resources) { tbShopUserService.update(resources); return new ResponseEntity<>(HttpStatus.NO_CONTENT); } @@ -80,4 +83,16 @@ public class TbShopUserController { tbShopUserService.deleteAll(ids); return new ResponseEntity<>(HttpStatus.OK); } + + @GetMapping("/recharge") + @ApiOperation("充值记录") + public ResponseEntity rechargeList(TbShopRechargeListDto criteria, Pageable pageable) { + return new ResponseEntity<>(tbShopUserService.rechargeList(criteria, pageable), HttpStatus.OK); + } + + @PostMapping("/recharge/download") + @ApiOperation("导出充值记录") + public void rechargeListDownload(HttpServletResponse response, @RequestBody TbShopRechargeListDto criteria) throws IOException { + tbShopUserService.rechargeListDownload(response, criteria); + } } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopRechargeListDto.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopRechargeListDto.java new file mode 100644 index 00000000..1be68f5a --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopRechargeListDto.java @@ -0,0 +1,18 @@ +package cn.ysk.cashier.dto.shop; + +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * @author GYJ + */ +@Data +public class TbShopRechargeListDto { + private String shopId; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date startTime; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endTime; +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopRechargeRespDto.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopRechargeRespDto.java new file mode 100644 index 00000000..120744fa --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopRechargeRespDto.java @@ -0,0 +1,36 @@ +package cn.ysk.cashier.dto.shop; + +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * @author GYJ + */ +@Data +public class TbShopRechargeRespDto { + private Integer id; + private String shopId; + private String shopName; + private String userId; + private String userName; + private String userPhone; + private Object rechargeAmount; + private String rechargeType; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date rechargeTime; + + public TbShopRechargeRespDto(Integer id, String shopId, String shopName, String userId, String userName, String userPhone, + String rechargeAmount, String rechargeType, Date rechargeTime) { + this.id = id; + this.shopId = shopId; + this.shopName = shopName; + this.userId = userId; + this.userName = userName; + this.userPhone = userPhone; + this.rechargeAmount = rechargeAmount; + this.rechargeType = rechargeType; + this.rechargeTime = rechargeTime; + } +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbShopUserFlow.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbShopUserFlow.java index d030469a..75152a2f 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbShopUserFlow.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbShopUserFlow.java @@ -5,16 +5,22 @@ import com.baomidou.mybatisplus.extension.activerecord.Model; import lombok.Data; import lombok.EqualsAndHashCode; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; import java.math.BigDecimal; import java.util.Date; /** * @author GYJ */ +@Entity @Data @EqualsAndHashCode(callSuper = true) @TableName("tb_shop_user_flow") +@Table(name="tb_shop_user_flow") public class TbShopUserFlow extends Model { + @Id private Integer id; private Integer shopUserId; diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/ShopUserMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/ShopUserMapper.java index 3c94530b..e6f39314 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/ShopUserMapper.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/ShopUserMapper.java @@ -1,5 +1,7 @@ package cn.ysk.cashier.mybatis.mapper; +import cn.ysk.cashier.dto.shop.TbShopRechargeListDto; +import cn.ysk.cashier.dto.shop.TbShopRechargeRespDto; import cn.ysk.cashier.dto.shop.TbShopUserQueryCriteria; import cn.ysk.cashier.pojo.shop.TbShopUser; import cn.ysk.cashier.vo.ShopUserInfoVo; @@ -30,5 +32,25 @@ public interface ShopUserMapper extends BaseMapper { "" + "") IPage queryUser(TbShopUserQueryCriteria param, Page pageInfo); + + @Select("") + IPage queryRechargeList(TbShopRechargeListDto param, Page pageInfo); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/repository/shop/TbShopUserRepository.java b/eladmin-system/src/main/java/cn/ysk/cashier/repository/shop/TbShopUserRepository.java index 8ba9e9bc..acff9e4f 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/repository/shop/TbShopUserRepository.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/repository/shop/TbShopUserRepository.java @@ -16,10 +16,7 @@ package cn.ysk.cashier.repository.shop; import cn.ysk.cashier.pojo.shop.TbShopUser; -import cn.ysk.cashier.vo.ShopUserInfoVo; import org.apache.ibatis.annotations.Param; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.Query; @@ -27,7 +24,6 @@ import org.springframework.data.jpa.repository.Query; import javax.persistence.Tuple; import java.util.Date; import java.util.List; -import java.util.Map; /** * @website https://eladmin.vip @@ -48,6 +44,4 @@ public interface TbShopUserRepository extends JpaRepository @Query("SELECT user.userId from TbShopUser user where user.shopId = :shopId") List getUserIdByShopId(String shopId); - - } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java index e9d131c2..e1b011c7 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java @@ -1,5 +1,8 @@ package cn.ysk.cashier.service.impl.shopimpl; +import cn.hutool.core.date.DateUtil; +import cn.ysk.cashier.dto.shop.TbShopRechargeListDto; +import cn.ysk.cashier.dto.shop.TbShopRechargeRespDto; import cn.ysk.cashier.dto.shop.TbShopUserDto; import cn.ysk.cashier.dto.shop.TbShopUserQueryCriteria; import cn.ysk.cashier.mapper.shop.TbShopUserMapper; @@ -22,6 +25,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.time.Instant; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; @@ -47,7 +51,7 @@ public class TbShopUserServiceImpl implements TbShopUserService { public Map queryShopUser(TbShopUserQueryCriteria criteria) { IPage iPage = shopUserMapper.queryUser(criteria, new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(criteria.getPage(), criteria.getSize())); - return PageUtil.toPlusPage(iPage.getRecords(),Integer.valueOf(iPage.getTotal()+"")); + return PageUtil.toPlusPage(iPage.getRecords(), Integer.valueOf(iPage.getTotal() + "")); } @Override @@ -129,4 +133,34 @@ public class TbShopUserServiceImpl implements TbShopUserService { FileUtil.downloadExcel(list, response); } + @Override + public IPage rechargeList(TbShopRechargeListDto criteria, Pageable pageable) { + if (criteria.getStartTime() == null) { + criteria.setStartTime(DateUtil.parseDate("2024-01-01 00:00:00")); + } + if (criteria.getEndTime() == null) { + criteria.setEndTime(DateUtil.date(Instant.now())); + } + + return shopUserMapper.queryRechargeList(criteria, + new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(pageable == null ? 0 : pageable.getPageNumber(), pageable == null ? 1000000 : pageable.getPageSize())); + } + + @Override + public void rechargeListDownload(HttpServletResponse response, TbShopRechargeListDto criteria) throws IOException { + List> list = new ArrayList<>(); + IPage page = rechargeList(criteria, null); + for (TbShopRechargeRespDto tbShopRechargeRespDto : page.getRecords()) { + Map map = new LinkedHashMap<>(); + map.put("id", tbShopRechargeRespDto.getId()); + map.put("门店", tbShopRechargeRespDto.getShopName()); + map.put("用户手机号", tbShopRechargeRespDto.getUserPhone()); + map.put("用户名", tbShopRechargeRespDto.getUserName()); + map.put("充值金额", tbShopRechargeRespDto.getRechargeAmount()); + map.put("充值类型", tbShopRechargeRespDto.getRechargeType()); + map.put("充值时间", tbShopRechargeRespDto.getRechargeTime()); + list.add(map); + } + FileUtil.downloadExcel(list, response); + } } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopUserService.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopUserService.java index 2fc389f0..ad4c884b 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopUserService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopUserService.java @@ -1,8 +1,12 @@ package cn.ysk.cashier.service.shop; +import cn.ysk.cashier.dto.shop.TbShopRechargeListDto; +import cn.ysk.cashier.dto.shop.TbShopRechargeRespDto; import cn.ysk.cashier.pojo.shop.TbShopUser; import cn.ysk.cashier.dto.shop.TbShopUserDto; import cn.ysk.cashier.dto.shop.TbShopUserQueryCriteria; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import java.util.Map; import java.util.List; @@ -75,4 +79,14 @@ public interface TbShopUserService { */ void download(List all, HttpServletResponse response) throws IOException; + /** + * 充值记录 + * @param criteria 条件 + * @param pageable 分页参数 + * @return Map + */ + IPage rechargeList(TbShopRechargeListDto criteria, Pageable pageable); + + void rechargeListDownload(HttpServletResponse response, TbShopRechargeListDto criteria) throws IOException; + }