From ae9d118c49e0e1aee18f1e0161f451d4fd2af826 Mon Sep 17 00:00:00 2001 From: "liang.chao" <1360241448@qq.com> Date: Tue, 24 Dec 2024 17:55:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B6=88=E6=81=AF=E7=AE=A1=E7=90=86=E8=81=94?= =?UTF-8?q?=E8=B0=83=E4=BB=A5=E5=8F=8A=E5=A4=A7=E5=B1=8F=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/controller/BmMessageController.java | 16 +++++ .../material/basic/domain/BmMessage.java | 5 ++ .../basic/service/IBmMessageService.java | 2 + .../service/impl/BmMessageServiceImpl.java | 57 ++++++++++++++---- .../material/device/mapper/DevInfoMapper.java | 2 + .../controller/LargeScreenController.java | 60 +++++++++++++++++++ .../largeScreen/entity/OrderData.java | 29 +++++++++ .../lease/mapper/MaLeaseInfoMapper.java | 3 + .../material/order/mapper/OrderMapper.java | 7 +++ .../material/order/service/OrderService.java | 7 +++ .../order/service/impl/OrderServiceImpl.java | 11 ++++ .../mapper/material/device/DevInfoMapper.xml | 10 ++++ .../material/lease/MaLeaseInfoMapper.xml | 3 + .../mapper/material/order/OrderInfoMapper.xml | 30 ++++++++++ 14 files changed, 231 insertions(+), 11 deletions(-) create mode 100644 bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/largeScreen/controller/LargeScreenController.java create mode 100644 bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/largeScreen/entity/OrderData.java diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/controller/BmMessageController.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/controller/BmMessageController.java index c1f33e4..3e8a4c0 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/controller/BmMessageController.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/controller/BmMessageController.java @@ -120,6 +120,22 @@ public class BmMessageController extends BaseController { } } + /** + * 修改消息 + */ + @ApiOperation(value = "全部已读修改") + @PreventRepeatSubmit + //@RequiresPermissions("basic:message:edit") + @SysLog(title = "消息", businessType = OperaType.UPDATE, logType = 1,module = "仓储管理->修改消息") + @PostMapping("/editAll") + public AjaxResult editAll(@RequestBody BmMessage bmMessage) { + try { + return toAjax(bmMessageService.updateBmMessageAll(bmMessage)); + } catch (Exception e) { + return error("系统错误, " + e.getMessage()); + } + } + /** * 删除消息 */ diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/domain/BmMessage.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/domain/BmMessage.java index 8286f3e..71162b5 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/domain/BmMessage.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/domain/BmMessage.java @@ -57,6 +57,11 @@ public class BmMessage extends BaseEntity { @ApiModelProperty(value = "来自companyId") private Long fromCompany; + /** 来自companyId */ + @Excel(name = "来自companyId") + @ApiModelProperty(value = "来自companyId") + private Long[] fromCompanys; + /** 来自companyName */ @Excel(name = "来自companyName") @ApiModelProperty(value = "来自companyName") diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/service/IBmMessageService.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/service/IBmMessageService.java index 6d492e5..6bc788f 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/service/IBmMessageService.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/service/IBmMessageService.java @@ -45,6 +45,8 @@ public interface IBmMessageService { */ public int updateBmMessage(BmMessage bmMessage); + public int updateBmMessageAll(BmMessage bmMessage); + /** * 批量删除消息 * diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/service/impl/BmMessageServiceImpl.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/service/impl/BmMessageServiceImpl.java index efb9cbb..2413ef5 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/service/impl/BmMessageServiceImpl.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/service/impl/BmMessageServiceImpl.java @@ -2,21 +2,15 @@ package com.bonus.material.basic.service.impl; import java.util.*; import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicReference; -import java.util.function.Function; import java.util.stream.Collectors; import com.alibaba.fastjson2.JSONArray; -import com.alibaba.fastjson2.JSONReader; import com.bonus.common.biz.constant.MaterialConstants; import com.bonus.common.core.exception.ServiceException; import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.utils.SpringUtils; -import com.bonus.common.core.utils.StringUtils; import com.bonus.common.redis.service.RedisService; import com.bonus.common.security.utils.SecurityUtils; -import com.bonus.system.api.domain.SysDictData; -import com.fasterxml.jackson.core.JsonProcessingException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.bonus.material.basic.mapper.BmMessageMapper; @@ -27,7 +21,7 @@ import javax.annotation.Resource; @Service public class BmMessageServiceImpl implements IBmMessageService { - @Autowired + @Resource private BmMessageMapper bmMessageMapper; @Resource @@ -71,7 +65,20 @@ public class BmMessageServiceImpl implements IBmMessageService { List sortedList = result.stream() .sorted(Comparator.comparing(BmMessage::getCreateTime)) .collect(Collectors.toList()); - return sortedList.subList(0,1); + Optional lastElement = sortedList.stream() + .reduce((first, second) -> second); + String messageContent = lastElement.map(BmMessage::getMessageContent) + .orElse(""); + Integer isRead = lastElement.map(BmMessage::getIsRead) + .orElse(0); + if (sortedList.size() > 0) { + List messages = sortedList.subList(0, 1); + messages.get(0).setMessageContent(messageContent); + messages.get(0).setIsRead(isRead); + return messages; + } else { + return null; + } } public List selectBmMessageListFromCacheOne(BmMessage bmMessage) { @@ -106,9 +113,10 @@ public class BmMessageServiceImpl implements IBmMessageService { bmMessage.setFromCompany(companyId); bmMessage.setFromUser(SecurityUtils.getLoginUser().getSysUser().getUserId()); bmMessage.setUuid(String.valueOf(UUID.randomUUID())); + bmMessage.setIsRead(0); String msgKey = MaterialConstants.CACHE_MATERIAL_MALL_MESSAGE + companyId + ":" + bmMessage.getToCompany(); JSONArray arrayCache = SpringUtils.getBean(RedisService.class).getCacheObject(msgKey); - if (arrayCache == null){ + if (arrayCache == null) { arrayCache = new JSONArray(); } List list = arrayCache.toList(BmMessage.class); @@ -131,7 +139,7 @@ public class BmMessageServiceImpl implements IBmMessageService { bmMessage.setIsRead(1); bmMessage.setUpdateTime(DateUtils.getNowDate()); try { - bmMessageMapper.updateBmMessage(bmMessage); + bmMessageMapper.updateBmMessage(bmMessage); //Redis Long companyId = SecurityUtils.getLoginUser().getSysUser().getCompanyId(); Collection keys1 = SpringUtils.getBean(RedisService.class).keys(MaterialConstants.CACHE_MATERIAL_MALL_MESSAGE + bmMessage.getFromCompany() + ":" + companyId); @@ -142,7 +150,7 @@ public class BmMessageServiceImpl implements IBmMessageService { for (String key : keys) { JSONArray arrayCache = SpringUtils.getBean(RedisService.class).getCacheObject(key); List list = arrayCache.toList(BmMessage.class); - list.stream().forEach(t->t.setIsRead(1)); + list.stream().forEach(t -> t.setIsRead(1)); SpringUtils.getBean(RedisService.class).setCacheObject(key, list); } } catch (Exception e) { @@ -151,6 +159,33 @@ public class BmMessageServiceImpl implements IBmMessageService { return 1; } + @Override + public int updateBmMessageAll(BmMessage bmMessage) { + bmMessage.setIsRead(1); + bmMessage.setUpdateTime(DateUtils.getNowDate()); + Long companyId = SecurityUtils.getLoginUser().getSysUser().getCompanyId(); + bmMessage.setToCompany(companyId); + for (Long fromCompany : bmMessage.getFromCompanys()) { + try { + bmMessage.setFromCompany(fromCompany); + bmMessageMapper.updateBmMessage(bmMessage); + //Redis + Collection keys1 = SpringUtils.getBean(RedisService.class).keys(MaterialConstants.CACHE_MATERIAL_MALL_MESSAGE + fromCompany + ":" + companyId); + List keys = new ArrayList<>(); + keys.addAll(keys1); + for (String key : keys) { + JSONArray arrayCache = SpringUtils.getBean(RedisService.class).getCacheObject(key); + List list = arrayCache.toList(BmMessage.class); + list.stream().forEach(t -> t.setIsRead(1)); + SpringUtils.getBean(RedisService.class).setCacheObject(key, list); + } + } catch (Exception e) { + throw new ServiceException("错误信息描述"); + } + } + return 1; + } + /** * 批量删除消息 * diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/mapper/DevInfoMapper.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/mapper/DevInfoMapper.java index 0415553..9d84fe4 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/mapper/DevInfoMapper.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/mapper/DevInfoMapper.java @@ -191,5 +191,7 @@ public interface DevInfoMapper { List getDevList(DevInfoVo devInfo); DevInfo getDevStatus(DevInfoVo devInfoVo); + + Integer getTodayDevCount(); } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/largeScreen/controller/LargeScreenController.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/largeScreen/controller/LargeScreenController.java new file mode 100644 index 0000000..2972d8a --- /dev/null +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/largeScreen/controller/LargeScreenController.java @@ -0,0 +1,60 @@ +package com.bonus.material.largeScreen.controller; + +import com.bonus.common.biz.domain.TypeInfo; +import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.material.device.mapper.DevInfoMapper; +import com.bonus.material.largeScreen.entity.OrderData; +import com.bonus.material.lease.mapper.MaLeaseInfoMapper; +import com.bonus.material.order.mapper.OrderMapper; +import com.bonus.material.order.service.OrderService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * @Author:liang.chao + * @Date:2024/12/24 - 15:46 + */ + +@Api(value = "大屏", tags = {"大屏"}) +@RestController +@RequestMapping("/largeScreen") +public class LargeScreenController { + @Resource + private OrderService orderService; + @Resource + private OrderMapper orderMapper; + + @Resource + private DevInfoMapper devInfoMapper; + + @Resource + private MaLeaseInfoMapper leaseInfoMapper; + + + @ApiOperation("订单数据") + @GetMapping("/orderData") + public AjaxResult getOrderData() { + return AjaxResult.success(orderService.getOrderData()); + } + + @ApiOperation("各单位租金排行") + @GetMapping("/comCost") + public AjaxResult getCompanysCost() { + return AjaxResult.success(orderService.getCompanysCost()); + } + + @ApiOperation("今日装备入驻数、今日订单成交数、今日成交金额数、今日需求发布数、今日需求接单数") + @GetMapping("/todayCount") + public AjaxResult getTodayCount() { + Integer devCount = devInfoMapper.getTodayDevCount(); + OrderData orderData = new OrderData(); + orderData = orderMapper.getTodayOderCount(); + orderData = leaseInfoMapper.getTodayLeaseCount(); + return null; + } +} diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/largeScreen/entity/OrderData.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/largeScreen/entity/OrderData.java new file mode 100644 index 0000000..fbee740 --- /dev/null +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/largeScreen/entity/OrderData.java @@ -0,0 +1,29 @@ +package com.bonus.material.largeScreen.entity; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @Author:liang.chao + * @Date:2024/12/24 - 15:50 + */ +@Data +public class OrderData { + + @ApiModelProperty(value = "订单总数") + private Integer orderNum; + + @ApiModelProperty(value = "订单金额") + private BigDecimal orderCosts; + + @ApiModelProperty(value = "所属公司id") + private Integer ownCo; + + @ApiModelProperty(value = "公司订单金额") + private BigDecimal cost; + + @ApiModelProperty(value = "公司名称") + private String companyName; +} diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/lease/mapper/MaLeaseInfoMapper.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/lease/mapper/MaLeaseInfoMapper.java index 011eb8c..ea074dd 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/lease/mapper/MaLeaseInfoMapper.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/lease/mapper/MaLeaseInfoMapper.java @@ -1,5 +1,6 @@ package com.bonus.material.lease.mapper; +import com.bonus.material.largeScreen.entity.OrderData; import com.bonus.material.lease.domain.MaLease; import com.bonus.material.lease.domain.MaLeaseDetails; import com.bonus.material.lease.domain.MaLeaseDto; @@ -113,4 +114,6 @@ public interface MaLeaseInfoMapper { * @return */ int deleteDetailsById(MaLeaseInfo maLeaseInfo); + + OrderData getTodayLeaseCount(); } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/mapper/OrderMapper.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/mapper/OrderMapper.java index 82ff1bf..60068a8 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/mapper/OrderMapper.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/mapper/OrderMapper.java @@ -3,6 +3,7 @@ package com.bonus.material.order.mapper; import com.bonus.material.comprehensive.entity.RentDetailDto; import com.bonus.material.device.domain.DevInfo; import com.bonus.material.device.domain.vo.DevInfoVo; +import com.bonus.material.largeScreen.entity.OrderData; import com.bonus.material.lease.domain.LeaseRepairRecord; import com.bonus.material.order.domain.OrderDetailDto; import com.bonus.material.order.domain.OrderInfoDto; @@ -54,4 +55,10 @@ public interface OrderMapper { OrderInfoDto getAgreementByOrderId(String orderId); List getRentDetails(DevInfoVo devInfo); + + OrderData getOrderData(); + + OrderData getCompanysCost(); + + OrderData getTodayOderCount(); } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/OrderService.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/OrderService.java index bbfc0f6..3b60989 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/OrderService.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/OrderService.java @@ -1,7 +1,9 @@ package com.bonus.material.order.service; +import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.material.comprehensive.entity.RentDetailDto; import com.bonus.material.device.domain.vo.DevInfoVo; +import com.bonus.material.largeScreen.entity.OrderData; import com.bonus.material.order.domain.OrderDetailDto; import com.bonus.material.order.domain.OrderInfoDto; @@ -30,4 +32,9 @@ public interface OrderService { List getRentDetails(DevInfoVo devInfo); List getOrderInfos(OrderInfoDto orderInfoDto); + + OrderData getOrderData(); + + OrderData getCompanysCost(); + } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/impl/OrderServiceImpl.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/impl/OrderServiceImpl.java index bb9c455..0a1c6bb 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/impl/OrderServiceImpl.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/impl/OrderServiceImpl.java @@ -8,6 +8,7 @@ import com.bonus.common.security.utils.SecurityUtils; import com.bonus.material.comprehensive.entity.RentDetailDto; import com.bonus.material.device.domain.DevInfo; import com.bonus.material.device.domain.vo.DevInfoVo; +import com.bonus.material.largeScreen.entity.OrderData; import com.bonus.material.lease.domain.LeaseRepair; import com.bonus.material.lease.domain.LeaseRepairRecord; import com.bonus.material.lease.mapper.LeaseRepairRecordMapper; @@ -320,4 +321,14 @@ public class OrderServiceImpl implements OrderService { } return orderInfoDtos; } + + @Override + public OrderData getOrderData() { + return orderMapper.getOrderData(); + } + + @Override + public OrderData getCompanysCost() { + return orderMapper.getCompanysCost(); + } } diff --git a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/device/DevInfoMapper.xml b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/device/DevInfoMapper.xml index f24c6d2..60e2f5d 100644 --- a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/device/DevInfoMapper.xml +++ b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/device/DevInfoMapper.xml @@ -877,5 +877,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ORDER BY moi.order_time DESC + diff --git a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/lease/MaLeaseInfoMapper.xml b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/lease/MaLeaseInfoMapper.xml index 878d10d..2a06582 100644 --- a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/lease/MaLeaseInfoMapper.xml +++ b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/lease/MaLeaseInfoMapper.xml @@ -405,4 +405,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" LEFT JOIN ma_type mt1 ON mt1.type_id = mt2.parent_id and mt1.del_flag = '0' where m.lease_id = #{id} + \ No newline at end of file diff --git a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/order/OrderInfoMapper.xml b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/order/OrderInfoMapper.xml index 9744c24..1d2abc8 100644 --- a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/order/OrderInfoMapper.xml +++ b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/order/OrderInfoMapper.xml @@ -384,6 +384,36 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ORDER BY moi.order_time DESC + + + delete from ma_order_details_relief