From f8f3212bdb3f99f99515abab41637fcee306c540 Mon Sep 17 00:00:00 2001 From: liuyingfang <1357764963@qq.com> Date: Thu, 14 Mar 2024 09:44:22 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E5=BD=95=E6=97=B6=E5=A2=9E=E5=8A=A0sh?= =?UTF-8?q?opName=EF=BC=8Clogo=EF=BC=9B=E5=A2=9E=E5=8A=A0=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E7=AC=94=E6=95=B0=EF=BC=9B=E6=94=AF=E4=BB=98=E7=AC=94?= =?UTF-8?q?=E6=95=B0=E9=A5=BC=E5=9B=BE=E5=8F=AA=E5=88=A4=E6=96=AD=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E7=9A=84=E8=AE=A2=E5=8D=95=EF=BC=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rest/AuthorizationController.java | 4 +- .../controller/shop/TbShopInfoController.java | 7 +++ .../cn/ysk/cashier/pojo/shop/TbShopUser.java | 5 +- .../repository/ShopUserDutyRepository.java | 12 +++++ .../order/TbOrderInfoRepository.java | 2 +- .../repository/shop/TbShopUserRepository.java | 4 ++ .../service/impl/SummaryServiceImpl.java | 46 +++++++++++++++++-- .../impl/shopimpl/TbShopInfoServiceImpl.java | 8 ++++ .../service/shop/TbShopInfoService.java | 3 ++ .../java/cn/ysk/cashier/vo/CountDateVO.java | 23 ++++++++++ .../java/cn/ysk/cashier/vo/SummaryVO.java | 5 +- 11 files changed, 110 insertions(+), 9 deletions(-) create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/vo/CountDateVO.java diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java b/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java index 803559a5..e72e33e5 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java @@ -108,7 +108,9 @@ public class AuthorizationController { put("token", properties.getTokenStartWith() + token); put("user", jwtUserDto); if (byAccount!= null){ - put("shopId",byAccount.getId()); + put("shopId", byAccount.getId()); + put("shopName", byAccount.getShopName()); + put("logo", byAccount.getLogo()); } }}; diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopInfoController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopInfoController.java index 5f2423c8..e356182a 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopInfoController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopInfoController.java @@ -99,6 +99,13 @@ public class TbShopInfoController { return new ResponseEntity<>(HttpStatus.NO_CONTENT); } + @PutMapping("/shop") + @Log("修改/shop/list") + public ResponseEntity updateShopInfoShopId(@Validated @RequestBody TbShopInfo resources){ + tbShopInfoService.updateShopId(resources); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + @DeleteMapping @Log("删除/shop/list") @ApiOperation("删除/shop/list") diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/shop/TbShopUser.java b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/shop/TbShopUser.java index eef71cb2..a1a09138 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/shop/TbShopUser.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/shop/TbShopUser.java @@ -23,6 +23,7 @@ import javax.persistence.*; import javax.validation.constraints.*; import java.math.BigDecimal; import java.io.Serializable; +import java.util.Date; /** * @website https://eladmin.vip @@ -141,11 +142,11 @@ public class TbShopUser implements Serializable { @Column(name = "`created_at`") @ApiModelProperty(value = "createdAt") - private Long createdAt; + private Date createdAt; @Column(name = "`updated_at`") @ApiModelProperty(value = "updatedAt") - private Long updatedAt; + private Date updatedAt; @Column(name = "`mini_open_id`") @ApiModelProperty(value = "小程序openId") diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/repository/ShopUserDutyRepository.java b/eladmin-system/src/main/java/cn/ysk/cashier/repository/ShopUserDutyRepository.java index 5d119b87..98639258 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/repository/ShopUserDutyRepository.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/repository/ShopUserDutyRepository.java @@ -39,4 +39,16 @@ public interface ShopUserDutyRepository extends JpaRepository sumByDateOrderNum(@Param("shopId")Integer shopId, @Param("startTime") Date startTime,@Param("endTime") Date endTime); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/repository/order/TbOrderInfoRepository.java b/eladmin-system/src/main/java/cn/ysk/cashier/repository/order/TbOrderInfoRepository.java index d82513c3..a0b16abf 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/repository/order/TbOrderInfoRepository.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/repository/order/TbOrderInfoRepository.java @@ -41,6 +41,6 @@ public interface TbOrderInfoRepository extends JpaRepository queryTbOrderPayCount(@Param("shopId")String shopId); @Query(value = "SELECT COUNT(1) ,pay_type AS payType FROM tb_order_info Where shop_id = :shopId AND " + - " created_at BETWEEN :startTime AND :endTime GROUP BY pay_type" ,nativeQuery = true) + " created_at BETWEEN :startTime AND :endTime AND status='closed' GROUP BY pay_type" ,nativeQuery = true) List countByShopId(@Param("shopId") String shopId, @Param("startTime") Long startTime, @Param("endTime") Long endTime); } \ No newline at end of file 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 6c36416a..4afa2893 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 @@ -23,6 +23,7 @@ import org.springframework.data.jpa.repository.Query; import javax.persistence.Tuple; import java.util.Date; +import java.util.List; /** * @website https://eladmin.vip @@ -37,4 +38,7 @@ public interface TbShopUserRepository extends JpaRepository @Query("SELECT count(0) from TbShopUser user where user.shopId = :shopId and user.createdAt BETWEEN :startTime AND :endTime") Tuple searchByCountToday(@Param("shopId") String shopId, @Param("startTime") Long startTime, @Param("endTime") Long endTime); + @Query("SELECT count(0) from TbShopUser user where user.shopId = :shopId and user.createdAt BETWEEN :startTime AND :endTime") + List CountTodayGroup(@Param("shopId") String shopId, @Param("startTime") Date startTime, @Param("endTime") Date endTime); + } \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/SummaryServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/SummaryServiceImpl.java index 767ee088..8ef60963 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/SummaryServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/SummaryServiceImpl.java @@ -10,11 +10,9 @@ import cn.ysk.cashier.repository.order.TbOrderInfoRepository; import cn.ysk.cashier.repository.shop.TbShopUserRepository; import cn.ysk.cashier.service.SummaryService; import cn.ysk.cashier.utils.DateUtil; -import cn.ysk.cashier.vo.CountPayTypeVO; -import cn.ysk.cashier.vo.SumDateVO; -import cn.ysk.cashier.vo.SummaryVO; -import cn.ysk.cashier.vo.ProductVO; +import cn.ysk.cashier.vo.*; import lombok.RequiredArgsConstructor; +import org.apache.poi.ss.formula.functions.T; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -53,9 +51,49 @@ public class SummaryServiceImpl implements SummaryService { //用户数 Tuple count = tbShopUserRepository.searchByCount(shopId.toString()); summaryVO.setTotalUser(count.get(0, Long.class)); + //支付笔数柱形图 + List objects = shopUserDutyRepository.sumByDateOrderNum(shopId, DateUtil.getDate30DaysAgo(), DateUtil.getDayEnd()); + List countDateList = new ArrayList<>(); + for (Object[] o :objects) { + CountDateVO countDateVO = new CountDateVO(); + countDateVO.setCount((BigDecimal) o[0]); + countDateVO.setTradeDay((String) o[1]); + countDateList.add(countDateVO); + } + //填充日期 + Map dataMap = new HashMap<>(); + for (CountDateVO entry : countDateList) { + String tradeDay = entry.getTradeDay(); + BigDecimal countOrder = entry.getCount(); + dataMap.put(tradeDay, new CountDateVO(tradeDay, countOrder)); + } + // 获取今天的日期 + LocalDate today = LocalDate.now(); + // 定义日期格式 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + // 转换为字符串 + List countDateLists = new ArrayList<>(); + for (int i = 0; i < 30; i++) { + LocalDate tradeDayLocalDate = today.minusDays(i); + String tradeDayString = tradeDayLocalDate.format(formatter); + CountDateVO countDateVO; + // 检查数据Map中是否存在该日期的数据 + if (dataMap.containsKey(tradeDayString)) { + countDateVO = dataMap.get(tradeDayString); + } else { + // 如果不存在,则创建新的SumDateVO对象,amount设为0 + countDateVO = new CountDateVO(tradeDayString, BigDecimal.ZERO); + } + // 将SumDateVO对象添加到列表中 + countDateLists.add(countDateVO); + } + summaryVO.setCountDateList(countDateLists); + //用户数折线图 return summaryVO; } + + @Override public Map selectSummaryDate(Integer shopId, Integer day) { Date startTime = new Date(); diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopInfoServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopInfoServiceImpl.java index 9f8cc73d..2ff11400 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopInfoServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopInfoServiceImpl.java @@ -243,9 +243,17 @@ public class TbShopInfoServiceImpl implements TbShopInfoService { TbShopInfo tbShopInfo = tbShopInfoRepository.findById(resources.getId()).orElseGet(TbShopInfo::new); ValidationUtil.isNull( tbShopInfo.getId(),"TbShopInfo","id",resources.getId()); tbShopInfo.copy(resources); + tbShopInfo.setUpdatedAt(Instant.now().toEpochMilli()); tbShopInfoRepository.save(tbShopInfo); } + @Override + public void updateShopId(TbShopInfo resources) { + TbShopInfo tbShopInfo = tbShopInfoRepository.findById(resources.getId()).orElseGet(TbShopInfo::new); + ValidationUtil.isNull( tbShopInfo.getId(),"TbShopInfo","id",resources.getId()); + tbShopInfo.copy(resources); + } + @Override @Transactional(rollbackFor = Exception.class) public void update(String account) { diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopInfoService.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopInfoService.java index ab1da404..e7cf4c63 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopInfoService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopInfoService.java @@ -70,6 +70,9 @@ public interface TbShopInfoService { */ void update(TbShopInfo resources); + + void updateShopId(TbShopInfo resources); + void update(String account); /** diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/vo/CountDateVO.java b/eladmin-system/src/main/java/cn/ysk/cashier/vo/CountDateVO.java new file mode 100644 index 00000000..2a60c20e --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/vo/CountDateVO.java @@ -0,0 +1,23 @@ +package cn.ysk.cashier.vo; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author lyf + */ +@Data +public class CountDateVO { + private String tradeDay; + private BigDecimal count; + + public CountDateVO(String tradeDay, BigDecimal count) { + this.tradeDay = tradeDay; + this.count = count; + } + + public CountDateVO() { + + } +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/vo/SummaryVO.java b/eladmin-system/src/main/java/cn/ysk/cashier/vo/SummaryVO.java index b154e4fb..1f20ff76 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/vo/SummaryVO.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/vo/SummaryVO.java @@ -30,5 +30,8 @@ public class SummaryVO { *用户数 */ private Long totalUser =0L; - + /** + * 支付笔数柱形图 + */ + private List countDateList; }