From fec76b62592ac98025c0a9a3943ed8e82f9386d9 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Tue, 18 Feb 2025 15:07:26 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat:=E8=AE=A2=E5=8D=95=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/vo/order/excel/HardOrderExcelVo.java | 44 ++++++++ .../controller/order/HardOrderController.java | 69 +++++++++++- .../hard/mapper/order/HardOrderMapper.java | 23 +++- .../hard/service/HardOrderService.java | 5 + .../impl/order/HardOrderServiceImpl.java | 100 ++++++++++-------- .../src/main/resources/file/订单交易汇总.xlsx | Bin 0 -> 10120 bytes .../wallet/mapper/WalletActiveMapper.java | 2 +- 7 files changed, 194 insertions(+), 49 deletions(-) create mode 100644 pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/excel/HardOrderExcelVo.java create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/file/订单交易汇总.xlsx diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/excel/HardOrderExcelVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/excel/HardOrderExcelVo.java new file mode 100644 index 000000000..59ff29243 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/excel/HardOrderExcelVo.java @@ -0,0 +1,44 @@ +package com.bsd.pjcloud.hard.api.vo.order.excel; + + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +@ColumnWidth(30) +public class HardOrderExcelVo { + + @ExcelProperty("商户") + private String merchantName; + + @ExcelProperty("姓名") + private String username; + + @ExcelProperty("手机号") + private String userMobile; + + @ExcelProperty("部门") + private String deptName; + + @ExcelProperty("支付方式") + private String payType; + + @ExcelProperty("用餐时间段") + private String hourType; + + @ExcelProperty("商品总价") + private Integer totalPrice; + + @ExcelProperty("额外支付") + private Integer extraPrice; + + @ExcelProperty("实际支付") + private Integer payPrice; + + @ExcelProperty("订单支付时间") + private LocalDateTime payTime; + +} diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java index 95a533a96..889fc75c0 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java @@ -1,10 +1,19 @@ package com.bsd.pjcloud.hard.controller.order; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.LocalDateTimeUtil; +import cn.hutool.core.io.resource.ResourceUtil; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.excel.write.metadata.fill.FillConfig; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bsd.pjcloud.common.core.util.BeanUtils; import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.common.idempotent.annotation.Idempotent; import com.bsd.pjcloud.common.log.annotation.SysLog; @@ -18,9 +27,12 @@ import com.bsd.pjcloud.hard.api.dto.order.HardOrderDto; import com.bsd.pjcloud.hard.api.dto.order.HardOrderPreferencesDto; import com.bsd.pjcloud.hard.api.dto.order.app.HardAppCreateOrderDto; import com.bsd.pjcloud.hard.api.entity.order.HardOrderEntity; +import com.bsd.pjcloud.hard.api.vo.order.HardOrderVo; +import com.bsd.pjcloud.hard.api.vo.order.excel.HardOrderExcelVo; import com.bsd.pjcloud.hard.mapper.order.HardOrderMapper; import com.bsd.pjcloud.hard.service.HardOrderService; import com.bsd.pjcloud.wallet.api.constant.WalletTypeEnum; +import jakarta.servlet.http.HttpServletResponse; import org.springframework.security.access.prepost.PreAuthorize; import com.bsd.pjcloud.common.excel.annotation.ResponseExcel; import io.swagger.v3.oas.annotations.security.SecurityRequirement; @@ -31,7 +43,12 @@ import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.io.IOException; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 订单表 @@ -137,10 +154,56 @@ public class HardOrderController { return R.ok(hardwareOrderService.removeBatchByIds(CollUtil.toList(ids))); } - @ResponseExcel @GetMapping("/export") @PreAuthorize("@pms.hasPermission('hard_hardwareOrder_export')") - public List export(HardOrderEntity hardwareOrder, Long[] ids) { - return hardwareOrderService.list(Wrappers.lambdaQuery(hardwareOrder).in(ArrayUtil.isNotEmpty(ids), HardOrderEntity::getId, ids)); + public void export(HttpServletResponse response, HardOrderDto dto) throws IOException { + List list = hardwareOrderService.scopeList(dto); + List excelList = BeanUtils.toBean(list, HardOrderExcelVo.class); + try (ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).withTemplate(ResourceUtil.getStream("file/订单交易汇总.xlsx")).build()) { + WriteSheet writeSheet = EasyExcel.writerSheet().build(); + FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build(); + Map map = new HashMap(); + if (ObjectUtil.isNotEmpty(dto.getCreateTimeList())) { + map.put("timeSpan", " 到 "); + map.put("startTime", LocalDateTimeUtil.format(dto.getCreateTimeList()[0], DatePattern.NORM_DATETIME_PATTERN)); + map.put("endTime", LocalDateTimeUtil.format(dto.getCreateTimeList()[0], DatePattern.NORM_DATETIME_PATTERN)); + } + if (ObjectUtil.isNotEmpty(excelList)) { + BigDecimal totalPriceSum = BigDecimal.ZERO; + BigDecimal extraPriceSum = BigDecimal.ZERO; + BigDecimal payPriceSum = BigDecimal.ZERO; + for (HardOrderExcelVo v : excelList) { + if (ObjectUtil.isNotEmpty(v.getTotalPrice())) { + totalPriceSum = totalPriceSum.add(BigDecimal.valueOf(v.getTotalPrice())); + v.setTotalPrice(BigDecimal.valueOf(v.getTotalPrice()).divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).intValue()); + } + if (ObjectUtil.isNotEmpty(v.getExtraPrice())) { + extraPriceSum = extraPriceSum.add(BigDecimal.valueOf(v.getExtraPrice())); + v.setExtraPrice(BigDecimal.valueOf(v.getExtraPrice()).divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).intValue()); + } + if (ObjectUtil.isNotEmpty(v.getPayPrice())) { + payPriceSum = payPriceSum.add(BigDecimal.valueOf(v.getPayPrice())); + v.setPayPrice(BigDecimal.valueOf(v.getPayPrice()).divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).intValue()); + } + if (ObjectUtil.isNotEmpty(v.getHourType())) { + HardPayTypeEnum hardPayTypeEnum = HardPayTypeEnum.valueOfByType(v.getPayType()); + if (ObjectUtil.isNotEmpty(hardPayTypeEnum)) { + v.setPayType(hardPayTypeEnum.getDescription()); + } + } + if (ObjectUtil.isNotEmpty(v.getPayType())) { + HardPayTypeEnum hardPayTypeEnum = HardPayTypeEnum.valueOfByType(v.getPayType()); + if (ObjectUtil.isNotEmpty(hardPayTypeEnum)) { + v.setPayType(hardPayTypeEnum.getDescription()); + } + } + } + map.put("totalPriceSum", totalPriceSum.divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).toString()); + map.put("extraPriceSum", extraPriceSum.divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).toString()); + map.put("payPriceSum", payPriceSum.divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).toString()); + } + excelWriter.fill(map, writeSheet); + excelWriter.fill(list, fillConfig, writeSheet); + } } } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java index 2fb097611..3991e32e4 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java @@ -80,7 +80,28 @@ public interface HardOrderMapper extends PjcloudBaseMapper { default List list(HardOrderDto dto) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper() - .in(ObjectUtil.isNotEmpty(dto.getOrderIds()), HardOrderEntity::getId, dto.getOrderIds()); + .eq(ObjectUtil.isNotEmpty(dto.getOrderType()), HardOrderEntity::getOrderType, dto.getOrderType()) + .eq(ObjectUtil.isNotEmpty(dto.getPayType()), HardOrderEntity::getPayType, dto.getPayType()) + .eq(ObjectUtil.isNotEmpty(dto.getOrderStatus()), HardOrderEntity::getOrderStatus, dto.getOrderStatus()) + .eq(ObjectUtil.isNotEmpty(dto.getHourType()), HardOrderEntity::getHourType, dto.getHourType()) + .in(ObjectUtil.isNotEmpty(dto.getOrderIds()), HardOrderEntity::getId, dto.getOrderIds()) + .in(ObjectUtil.isNotEmpty(dto.getUserIds()), HardOrderEntity::getUserId, dto.getUserIds()) + .in(ObjectUtil.isNotEmpty(dto.getHardIds()), HardOrderEntity::getHardId, dto.getHardIds()) + .in(ObjectUtil.isNotEmpty(dto.getMchIds()), HardOrderEntity::getMerchantId, dto.getMchIds()) + .in(ObjectUtil.isNotEmpty(dto.getUserDeptIds()), HardOrderEntity::getDeptId, dto.getUserDeptIds()) + .between( + ObjectUtil.isNotEmpty(dto.getCreateTimeList()), + HardOrderEntity::getCreateTime, + ObjectUtil.isNotEmpty(dto.getCreateTimeList()) ? dto.getCreateTimeList()[0] : null, + ObjectUtil.isNotEmpty(dto.getCreateTimeList()) ? dto.getCreateTimeList()[1] : null + ) + .between( + ObjectUtil.isNotEmpty(dto.getPayTimeList()), + HardOrderEntity::getPayTime, + ObjectUtil.isNotEmpty(dto.getPayTimeList()) ? dto.getPayTimeList()[0] : null, + ObjectUtil.isNotEmpty(dto.getPayTimeList()) ? dto.getPayTimeList()[1] : null + ) + .orderByDesc(HardOrderEntity::getCreateTime); return selectListByScope(wrapper, DataScope.of()); } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderService.java index 78801b9bd..e05fa847f 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderService.java @@ -9,14 +9,19 @@ import com.bsd.pjcloud.hard.api.dto.order.HardOrderDto; import com.bsd.pjcloud.hard.api.dto.order.app.HardAppCreateOrderDto; import com.bsd.pjcloud.hard.api.entity.order.HardOrderEntity; import com.bsd.pjcloud.hard.api.vo.order.HardOrderVo; +import com.bsd.pjcloud.hard.api.vo.order.excel.HardOrderExcelVo; import jakarta.validation.Valid; +import java.util.List; + public interface HardOrderService extends IService { Page pagejoin(Page page, HardOrderDto dto); Page scopePageList(Page page, HardOrderDto dto); + List scopeList(HardOrderDto dto); + HardOrderVo join(Long id); Long createOrder(HardCreateOrderDto dto); diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java index c42adbcd6..e5843ab36 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java @@ -102,53 +102,18 @@ public class HardOrderServiceImpl extends ServiceImpl pagejoin(Page page, HardOrderDto dto) { Page list = baseMapper.pageJoin(page, dto); - if (ObjectUtil.isNotEmpty(list.getRecords())) { - // 用户 - List userIds = list.getRecords().stream().map(HardOrderVo::getUserId).filter(ObjectUtil::isNotEmpty).distinct().toList(); - if (ObjectUtil.isNotEmpty(userIds)) { - R> userList = userService.getUserById(new ArrayList<>(userIds)); - if (ObjectUtil.isNotEmpty(userList.getData())) { - DataUtil.convertUserList(list.getRecords(), CollectionUtils.convertMap(userList.getData(), SysUser::getUserId)); - } - } - // 部门 - List deptIds = list.getRecords().stream().map(HardOrderVo::getDeptId).filter(ObjectUtil::isNotEmpty).distinct().toList(); - if (ObjectUtil.isNotEmpty(deptIds)) { - R> deptList = deptService.getDeptByDeptIds(deptIds); - if (ObjectUtil.isNotEmpty(deptList.getData())) { - DataUtil.convertDeptList(list.getRecords(), deptList.getData()); - } - } - // 商户 - List mchIds = list.getRecords().stream().map(HardOrderVo::getMerchantId).filter(ObjectUtil::isNotEmpty).distinct().toList(); - if (ObjectUtil.isNotEmpty(mchIds)) { - R> mchList = remoteMchService.getByIds(mchIds); - if (ObjectUtil.isNotEmpty(mchList.getData())) { - WalletDataUtil.convertMchList(list.getRecords(), CollectionUtils.convertMap(mchList.getData(), MchManageVo::getId)); - } - } - // 设备 - List hardIds = list.getRecords().stream().map(HardOrderVo::getHardId).filter(ObjectUtil::isNotEmpty).distinct().toList(); - if (ObjectUtil.isNotEmpty(mchIds)) { - HardManagerDto hardManagerDto = new HardManagerDto(); - hardManagerDto.setIds(hardIds); - List hardList = hardManagerMapper.list(hardManagerDto); - if (ObjectUtil.isNotEmpty(hardList)) { - HardUtil.convertHardList(list.getRecords(), CollectionUtils.convertMap(hardList, HardManagerEntity::getId)); - } - } - // 购物车 - if (dto.getIsFindCarList()) { - for (HardOrderVo v : list.getRecords()) { - List carList = hardCarService.getByParentCarId(v.getParentCarId()); - List carVoList = BeanUtils.toBean(carList, HardCarVo.class); - v.setCarList(carVoList); - } - } - } + disposeList(list.getRecords(), dto); return list; } + @Override + public List scopeList(HardOrderDto dto) { + List list = baseMapper.list(dto); + List resultList = BeanUtils.toBean(list, HardOrderVo.class); + disposeList(resultList, dto); + return resultList; + } + @Override public Page scopePageList(Page page, HardOrderDto dto) { if (ObjectUtil.isNotEmpty(dto.getDeptIdIdDeepen())) { @@ -207,6 +172,7 @@ public class HardOrderServiceImpl extends ServiceImpl list, HardOrderDto dto) { + if (ObjectUtil.isEmpty(list)) return; + // 用户 + List userIds = list.stream().map(HardOrderVo::getUserId).filter(ObjectUtil::isNotEmpty).distinct().toList(); + if (ObjectUtil.isNotEmpty(userIds)) { + R> userList = userService.getUserById(new ArrayList<>(userIds)); + if (ObjectUtil.isNotEmpty(userList.getData())) { + DataUtil.convertUserList(list, CollectionUtils.convertMap(userList.getData(), SysUser::getUserId)); + } + } + // 部门 + List deptIds = list.stream().map(HardOrderVo::getDeptId).filter(ObjectUtil::isNotEmpty).distinct().toList(); + if (ObjectUtil.isNotEmpty(deptIds)) { + R> deptList = deptService.getDeptByDeptIds(deptIds); + if (ObjectUtil.isNotEmpty(deptList.getData())) { + DataUtil.convertDeptList(list, deptList.getData()); + } + } + // 商户 + List mchIds = list.stream().map(HardOrderVo::getMerchantId).filter(ObjectUtil::isNotEmpty).distinct().toList(); + if (ObjectUtil.isNotEmpty(mchIds)) { + R> mchList = remoteMchService.getByIds(mchIds); + if (ObjectUtil.isNotEmpty(mchList.getData())) { + WalletDataUtil.convertMchList(list, CollectionUtils.convertMap(mchList.getData(), MchManageVo::getId)); + } + } + // 设备 + List hardIds = list.stream().map(HardOrderVo::getHardId).filter(ObjectUtil::isNotEmpty).distinct().toList(); + if (ObjectUtil.isNotEmpty(mchIds)) { + HardManagerDto hardManagerDto = new HardManagerDto(); + hardManagerDto.setIds(hardIds); + List hardList = hardManagerMapper.list(hardManagerDto); + if (ObjectUtil.isNotEmpty(hardList)) { + HardUtil.convertHardList(list, CollectionUtils.convertMap(hardList, HardManagerEntity::getId)); + } + } + // 购物车 + if (dto.getIsFindCarList()) { + for (HardOrderVo v : list) { + List carList = hardCarService.getByParentCarId(v.getParentCarId()); + List carVoList = BeanUtils.toBean(carList, HardCarVo.class); + v.setCarList(carVoList); + } + } + } } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/file/订单交易汇总.xlsx b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/file/订单交易汇总.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..58733c9c84ff24083ac9448c96529bca4209f4d3 GIT binary patch literal 10120 zcma)iby!tv^ETaGBHhg23t2LAtv`8brENLij+>dp!D{ z-+O(}A8YMvt+}6h);()xJ$q(U6ky>{pdLo3@~YUw`9A~s{)ai}xe6HM=**^aFNSx2 z0qKWW1MlZDc4#OlE*K~%tbdA`IywS8?CnxxTIFFm@T4yS?yx?Bp0HA>aWV#k2_ovb zl0E^=wkYC2Hb$;k0WOr^5FJiI8aHT9a7PMj!S2TUUz<*l(m_c{mCJ$EbosGPGRTA$ z3iew3jXG&jQ4GioN{m1tMZP|g3*h|1W2F=}ng}KwpKi@1a?>&bzA8i}#Hmurg=vR4 z-076rvRIy(@56Q;bf8_5MJO5%QeF^vtqIk}Hl^y@(%4v06q^B{1^|QVyK7Jy-{Fy4 z%S5ntva&$%T*vQT- z{ORiV%cH$B0APjXYO6G{eN$xzmSYQ6br+!_paVP7ur0TXsLfMTHrfyBSxAepWSbJ- zYi_8#RLQ2>)!Hp>-s?+;BlzFht>nxF>)f+zd(STRKiPc_0$V)L8wpWTZfC~}x{#fx zJQi_+R5N^pXuwS1$G>5K`B1St%|+$JGB=Wddr0ljLObI`Aw~jAZzIX1Q(kGcxbcp@ z`-`S7UrmOKQ8*lYS~Lk($!c8>j*CcgEjG9^GhjRm=S>E;HJ9?mg&7@kFxmmdLTa81jQgi~w{D)rIx#z_OXi-sCxN#xAeBkdR=vlh#G^SEAqnh7uhP+cN z8yR>hZ*nNgeq1zpm6Zm|qH< zE~;9OGrogaeZGv`t2y55gOXMaB!nHF(c^I~%aLuBBP<_q06`+PvPY_MyPT11)Evv* z3@FUMiKA5=E$GzC6`!i;Pj3sW+0QwtGK!!}=t*%zVWmfC!jd#QF1P8E>>0;Iu38CJ z%%#cXC)1`M#!h2Y1Jw?-f-N+I`GQ!~z+^cpR5bO~uCwPPf@V`NEu*+gG&rDmgX+M3R*iL-xxx!xSkerRt`e#dxZr5KAJ?WgC(<5 zM55XEy~F++Y8n7e%7*}{%}68{(YqTPEsk3%j38M=7Cb5mM8^KYjqq<`U={-{2#m5? zmov*s%z>~fH~{y1uF#3Z61gXT9y}*O-VHU6PSV(07G3WFIm$?EWlk1KU#E=RTAde4 zBIax>wE+ffM_dvHNwKp=?7JO_<8Pm|s%>?#Tqs&Eu+T5 NWMqn+U~ci()~S@d7Q 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 Date: Tue, 18 Feb 2025 15:23:46 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix:=E5=AF=BC=E5=87=BAbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/constant/order/HardHourTypeEnum.java | 26 +++++++++++++++++++ .../controller/order/HardOrderController.java | 15 ++++++----- 2 files changed, 34 insertions(+), 7 deletions(-) create mode 100644 pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/order/HardHourTypeEnum.java diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/order/HardHourTypeEnum.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/order/HardHourTypeEnum.java new file mode 100644 index 000000000..a45428e6f --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/order/HardHourTypeEnum.java @@ -0,0 +1,26 @@ +package com.bsd.pjcloud.hard.api.constant.order; + +import cn.hutool.core.util.ObjectUtil; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * 时间短类型 + */ +@AllArgsConstructor +@Getter +public enum HardHourTypeEnum { + MORNING("1", "早餐"), + NOONING("2", "午餐"), + NIGHT("3", "晚餐"), + ; + private final String type; + private final String description; + + public static HardHourTypeEnum valueOfByType(String type) { + if (ObjectUtil.isEmpty(type)) return null; + return Arrays.stream(values()).filter(v -> ObjectUtil.equals(type, v.getType())).findFirst().get(); + } +} diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java index 889fc75c0..475432689 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java @@ -21,6 +21,7 @@ import com.bsd.pjcloud.common.security.annotation.Inner; import com.bsd.pjcloud.common.security.service.PjcloudUser; import com.bsd.pjcloud.common.security.util.SecurityUtils; import com.bsd.pjcloud.hard.api.constant.HardTypeEnum; +import com.bsd.pjcloud.hard.api.constant.order.HardHourTypeEnum; import com.bsd.pjcloud.hard.api.constant.order.HardOrderTypeEnum; import com.bsd.pjcloud.hard.api.constant.order.HardPayTypeEnum; import com.bsd.pjcloud.hard.api.dto.order.HardOrderDto; @@ -163,10 +164,10 @@ public class HardOrderController { WriteSheet writeSheet = EasyExcel.writerSheet().build(); FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build(); Map map = new HashMap(); - if (ObjectUtil.isNotEmpty(dto.getCreateTimeList())) { + if (ObjectUtil.isNotEmpty(dto.getPayTimeList())) { map.put("timeSpan", " 到 "); - map.put("startTime", LocalDateTimeUtil.format(dto.getCreateTimeList()[0], DatePattern.NORM_DATETIME_PATTERN)); - map.put("endTime", LocalDateTimeUtil.format(dto.getCreateTimeList()[0], DatePattern.NORM_DATETIME_PATTERN)); + map.put("startTime", LocalDateTimeUtil.format(dto.getPayTimeList()[0], DatePattern.NORM_DATETIME_PATTERN)); + map.put("endTime", LocalDateTimeUtil.format(dto.getPayTimeList()[0], DatePattern.NORM_DATETIME_PATTERN)); } if (ObjectUtil.isNotEmpty(excelList)) { BigDecimal totalPriceSum = BigDecimal.ZERO; @@ -186,9 +187,9 @@ public class HardOrderController { v.setPayPrice(BigDecimal.valueOf(v.getPayPrice()).divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).intValue()); } if (ObjectUtil.isNotEmpty(v.getHourType())) { - HardPayTypeEnum hardPayTypeEnum = HardPayTypeEnum.valueOfByType(v.getPayType()); - if (ObjectUtil.isNotEmpty(hardPayTypeEnum)) { - v.setPayType(hardPayTypeEnum.getDescription()); + HardHourTypeEnum hardHourTypeEnum = HardHourTypeEnum.valueOfByType(v.getHourType()); + if (ObjectUtil.isNotEmpty(hardHourTypeEnum)) { + v.setHourType(hardHourTypeEnum.getDescription()); } } if (ObjectUtil.isNotEmpty(v.getPayType())) { @@ -203,7 +204,7 @@ public class HardOrderController { map.put("payPriceSum", payPriceSum.divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).toString()); } excelWriter.fill(map, writeSheet); - excelWriter.fill(list, fillConfig, writeSheet); + excelWriter.fill(excelList, fillConfig, writeSheet); } } } \ No newline at end of file From 641dbbc60cbf45ca1f5e424e8a472a4eeb99c3f1 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Tue, 18 Feb 2025 15:26:06 +0800 Subject: [PATCH 3/3] =?UTF-8?q?feat:=E5=BC=80=E5=8D=A1=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/bsd/pjcloud/wallet/mapper/WalletActiveMapper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletActiveMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletActiveMapper.java index 86a6143ef..fc7d07814 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletActiveMapper.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletActiveMapper.java @@ -22,7 +22,7 @@ public interface WalletActiveMapper extends PjcloudBaseMapper