From 7dce8aa9865d9415cc371a0048c5e0d8c31574f5 Mon Sep 17 00:00:00 2001 From: panshuling321 Date: Wed, 8 Jun 2022 15:07:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=87=AA=E5=8A=A8=E7=94=9F?= =?UTF-8?q?=E6=88=90=E5=B7=A5=E5=8D=95=E7=9A=84=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/v2.1.sql | 14 +- .../mapper/XhpcWorkOrderImageMapper.java | 2 +- .../activity/mapper/XhpcWorkUserMapper.java | 1 + .../activity/service/WorkUserService.java | 2 + .../service/impl/WorkOrderServiceImpl.java | 172 ++++++++++-------- .../service/impl/WorkUserServiceImpl.java | 10 + .../resources/mapper/XhpcWorkUserMapper.xml | 5 + 7 files changed, 123 insertions(+), 83 deletions(-) diff --git a/sql/v2.1.sql b/sql/v2.1.sql index 735aa4a9..ea316551 100644 --- a/sql/v2.1.sql +++ b/sql/v2.1.sql @@ -826,7 +826,7 @@ CREATE TABLE `xhpc_activity_cash` `receive_count` int(9) DEFAULT '0' COMMENT '领取次数', `auto_receive` smallint(2) DEFAULT '0' COMMENT '是否自动领取(0-否,1-是)', `auto_status` smallint(2) DEFAULT '0' COMMENT '是否自动发送完成(0-未完成,1-已完成)', - `amount` decimal(4, 2) DEFAULT '0' COMMENT '红包金额', + `amount` decimal(10, 4) DEFAULT '0' COMMENT '红包金额', `app_user_list` text COMMENT 'C端用户ID(-1表示全部)', `com_user_list` text COMMENT '社区用户ID列表(-1表示全部)', `cus_user_list` text COMMENT 'B端用户ID列表(-1表示全部)', @@ -850,7 +850,7 @@ CREATE TABLE `xhpc_activity_template` `activity_template_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '模板ID', `template_name` varchar(100) DEFAULT NULL COMMENT '模板名称', `discount_type` smallint(2) DEFAULT NULL COMMENT '优惠类型(1-总金额,2-服务费,3-电量)', - `discount_rate` decimal(10, 2) DEFAULT NULL COMMENT '优惠比率', + `discount_rate` decimal(10, 4) DEFAULT NULL COMMENT '优惠比率', `start_time` datetime DEFAULT NULL COMMENT '开始时间', `end_time` datetime DEFAULT NULL COMMENT '结束时间', `discount_count` smallint(4) DEFAULT '0' COMMENT '折扣次数', @@ -897,8 +897,8 @@ CREATE TABLE `xhpc_activity_formula` `activity_id` int(11) DEFAULT NULL COMMENT '活动ID', `start_time` time DEFAULT NULL COMMENT '开始时间', `end_time` time DEFAULT NULL COMMENT '结束时间', - `power_price` decimal(10, 2) DEFAULT NULL COMMENT '电费', - `service_price` decimal(10, 2) DEFAULT null COMMENT '服务费', + `power_price` decimal(10, 4) DEFAULT NULL COMMENT '电费', + `service_price` decimal(10, 4) DEFAULT null COMMENT '服务费', `compute_formula` varchar(200) DEFAULT NULL COMMENT '计算公式', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `create_by` varchar(64) DEFAULT NULL COMMENT '创建人', @@ -929,8 +929,8 @@ CREATE TABLE `xhpc_activity_internet` `internet_name` varchar(64) DEFAULT NULL COMMENT '流量方名称', `compute_type` smallint(4) DEFAULT NULL COMMENT '计算类型(1-总金额,2-服务费,3-电量)', `compute_formula` varchar(200) DEFAULT NULL COMMENT '默认计算公式', - `power_price` decimal(10, 2) DEFAULT NULL COMMENT '默认电费', - `service_price` decimal(10, 2) DEFAULT NULL COMMENT '默认服务费', + `power_price` decimal(10, 4) DEFAULT NULL COMMENT '默认电费', + `service_price` decimal(10, 4) DEFAULT NULL COMMENT '默认服务费', `start_time` datetime DEFAULT NULL COMMENT '开始时间', `end_time` datetime DEFAULT NULL COMMENT '结束时间', `station_list` text COMMENT '参与场站列表', @@ -954,7 +954,7 @@ CREATE TABLE `xhpc_activity_record` `activity_id` int(11) DEFAULT NULL COMMENT '活动ID', `source` smallint(4) DEFAULT NULL COMMENT '人员类型(0 C端用户 1 流量方用户 2社区用户 3B端用户)', `user_id` varchar(16) DEFAULT NULL COMMENT '用户ID', - `amount` decimal(4, 2) DEFAULT NULL COMMENT '红包金额', + `amount` decimal(10, 4) DEFAULT NULL COMMENT '红包金额', `create_time` datetime DEFAULT NULL COMMENT '领取时间', PRIMARY KEY (`activity_record_id`) ) ENGINE=InnoDB AUTO_INCREMENT = 1 DEFAULT CHARSET=utf8mb4 COMMENT='活动参与领取表'; diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/XhpcWorkOrderImageMapper.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/XhpcWorkOrderImageMapper.java index b78cbc8f..83d6fa50 100644 --- a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/XhpcWorkOrderImageMapper.java +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/XhpcWorkOrderImageMapper.java @@ -11,7 +11,7 @@ public interface XhpcWorkOrderImageMapper { List selectImageIdByOrderIdAndType(@Param("orderId") Long orderId, @Param("type") Integer type); - int deleteByImageIds(List imageIds); + int deleteByImageIds(@Param("imageIds") List imageIds); int deleteByPrimaryKey(Long orderImageId); diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/XhpcWorkUserMapper.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/XhpcWorkUserMapper.java index c34f43a6..3c85a872 100644 --- a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/XhpcWorkUserMapper.java +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/XhpcWorkUserMapper.java @@ -29,5 +29,6 @@ public interface XhpcWorkUserMapper { List> selectMapList(@Param("params") Map params); + String selectPhoneListByIds(@Param("userIds")String userIds); } \ No newline at end of file diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/WorkUserService.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/WorkUserService.java index 22d1c249..7f7c37c0 100644 --- a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/WorkUserService.java +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/WorkUserService.java @@ -34,4 +34,6 @@ public interface WorkUserService { Boolean resetPassword(SysUserResetPasswordVo vo); Object updateDomainStatus(XhpcWorkUserDomain domain); + + String getPhoneListByUserIds(String userIds); } diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/WorkOrderServiceImpl.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/WorkOrderServiceImpl.java index 380f33af..0a350796 100644 --- a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/WorkOrderServiceImpl.java +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/WorkOrderServiceImpl.java @@ -2,6 +2,7 @@ package com.xhpc.activity.service.impl; import com.xhpc.common.api.SmsService; import com.xhpc.common.core.domain.R; +import com.xhpc.common.core.exception.CustomException; import com.xhpc.common.core.utils.StringUtils; import com.xhpc.activity.domain.*; import com.xhpc.activity.mapper.*; @@ -54,75 +55,7 @@ public class WorkOrderServiceImpl implements WorkOrderService { } - @Override - public Boolean updateOrder(XhpcWorkOrderDomain domain){ - orderMapper.updateByPrimaryKeySelective(domain); - - List imageIds = imageMapper.selectImageIdByOrderIdAndType(domain.getWorkOrderId(), 1); - - for (XhpcWorkOrderImageDomain imageDomain: domain.getQuestionImgList()){ - if(StringUtils.isEmpty(imageDomain.getOrderImageId().toString())){ - imageDomain.setOrderId(domain.getWorkOrderId()); - imageDomain.setType(Short.valueOf("1")); - imageDomain.setDelFlag(Short.valueOf("0")); - imageMapper.insertSelective(imageDomain); - } else { - if(imageIds.contains(imageDomain.getOrderImageId())){ - imageIds.remove(imageDomain.getOrderImageId()); - } - } - } - if(imageIds.size() > 0){ - imageMapper.deleteByImageIds(imageIds); - } - - // 更新处理人 - String phoneList = ""; - orderMapper.deleteOrderUserByOrderId(domain.getWorkOrderId()); - List orderUserDomainList = new ArrayList<>(); - for(XhpcWorkUserDomain userDomain: domain.getUserList()){ - XhpcWorkOrderUserDomain orderUserDomain = new XhpcWorkOrderUserDomain(); - orderUserDomain.setOrderId(domain.getWorkOrderId()); - orderUserDomain.setUserId(userDomain.getWorkUserId()); - orderUserDomainList.add(orderUserDomain); - - phoneList = userDomain.getPhone() + "," + phoneList; - } - orderMapper.insertOrderUser(orderUserDomainList); - - if(StringUtils.isNotEmpty(phoneList) && domain.getStatus() != null && domain.getStatus()==1){ - sendSms(phoneList, domain.getWorkOrderId().toString()); - } - return true; - } - - - @Override - public Boolean replyOrder(XhpcWorkOrderDomain domain){ - XhpcWorkOrderDomain orderDomain = orderMapper.selectByPrimaryKey(domain.getWorkOrderId()); - if(orderDomain == null){ - throw new RuntimeException("订单不存在"); - } - - orderDomain.setReason(domain.getReason()); - orderDomain.setDisposalMethod(domain.getDisposalMethod()); - orderDomain.setStatus(Short.valueOf("2")); - orderDomain.setRemark(domain.getRemark()); - orderMapper.updateByPrimaryKeySelective(orderDomain); - - for(XhpcWorkOrderImageDomain imageDomain: domain.getReplyImgList()){ - imageDomain.setOrderId(domain.getWorkOrderId()); - imageDomain.setType(Short.valueOf("2")); - imageDomain.setDelFlag(Short.valueOf("0")); - imageMapper.insertSelective(imageDomain); - } - return true; - } - - - @Override - public Boolean insertOrder(XhpcWorkOrderDomain domain){ - + private Boolean insertDomain(XhpcWorkOrderDomain domain){ List userDomains = new ArrayList<>(); if(domain.getUserList() != null){ for(XhpcWorkUserDomain userDomain: domain.getUserList()){ @@ -151,25 +84,108 @@ public class WorkOrderServiceImpl implements WorkOrderService { // 绑定人员 List orderUserDomainList = new ArrayList<>(); - String phoneList = ""; + StringBuilder userIdList = new StringBuilder(); for (XhpcWorkUserDomain userDomain: domain.getUserList()){ XhpcWorkOrderUserDomain orderUserDomain = new XhpcWorkOrderUserDomain(); orderUserDomain.setOrderId(domain.getWorkOrderId()); orderUserDomain.setUserId(userDomain.getWorkUserId()); orderUserDomainList.add(orderUserDomain); - phoneList = userDomain.getPhone() + "," + phoneList; + userIdList.insert(0, userDomain.getWorkUserId() + ","); } if(orderUserDomainList.size() > 0){ orderMapper.insertOrderUser(orderUserDomainList); } - // todo 发送多人短信 - if(StringUtils.isNotEmpty(phoneList) && domain.getStatus() != null && domain.getStatus()==1){ - sendSms(phoneList, domain.getWorkOrderId().toString()); + if(StringUtils.isNotEmpty(userIdList.toString()) && domain.getStatus() != null && domain.getStatus()==1){ + sendSms(userIdList.toString(), domain.getWorkOrderId().toString()); } return true; } + private Boolean updateDomain(XhpcWorkOrderDomain domain){ + orderMapper.updateByPrimaryKeySelective(domain); + + List imageIds = imageMapper.selectImageIdByOrderIdAndType(domain.getWorkOrderId(), 1); + + for (XhpcWorkOrderImageDomain imageDomain: domain.getQuestionImgList()){ + if( imageDomain.getOrderImageId() == null || StringUtils.isEmpty(imageDomain.getOrderImageId().toString())){ + imageDomain.setOrderId(domain.getWorkOrderId()); + imageDomain.setType(Short.valueOf("1")); + imageDomain.setDelFlag(Short.valueOf("0")); + imageMapper.insertSelective(imageDomain); + } else { + if(imageIds.contains(imageDomain.getOrderImageId())){ + imageIds.remove(imageDomain.getOrderImageId()); + } + } + } + if(imageIds.size() > 0){ + imageMapper.deleteByImageIds(imageIds); + } + + // 更新处理人 + StringBuilder userIdList = new StringBuilder(); + orderMapper.deleteOrderUserByOrderId(domain.getWorkOrderId()); + List orderUserDomainList = new ArrayList<>(); + for(XhpcWorkUserDomain userDomain: domain.getUserList()){ + XhpcWorkOrderUserDomain orderUserDomain = new XhpcWorkOrderUserDomain(); + orderUserDomain.setOrderId(domain.getWorkOrderId()); + orderUserDomain.setUserId(userDomain.getWorkUserId()); + orderUserDomainList.add(orderUserDomain); + + userIdList.insert(0, userDomain.getWorkUserId() + ","); + } + orderMapper.insertOrderUser(orderUserDomainList); + + if(StringUtils.isNotEmpty(userIdList.toString()) && domain.getStatus() != null && domain.getStatus()==1){ + sendSms(userIdList.toString(), domain.getWorkOrderId().toString()); + } + return true; + } + + + @Override + public Boolean updateOrder(XhpcWorkOrderDomain domain){ + if(domain.getWorkOrderId() == null || domain.getWorkOrderId() < 1L){ + return insertDomain(domain); + } else { + return updateDomain(domain); + } + } + + + @Override + public Boolean replyOrder(XhpcWorkOrderDomain domain){ + XhpcWorkOrderDomain orderDomain = orderMapper.selectByPrimaryKey(domain.getWorkOrderId()); + if(orderDomain == null){ + throw new RuntimeException("订单不存在"); + } + + orderDomain.setReason(domain.getReason()); + orderDomain.setDisposalMethod(domain.getDisposalMethod()); + orderDomain.setStatus(Short.valueOf("2")); + orderDomain.setRemark(domain.getRemark()); + orderMapper.updateByPrimaryKeySelective(orderDomain); + + for(XhpcWorkOrderImageDomain imageDomain: domain.getReplyImgList()){ + imageDomain.setOrderId(domain.getWorkOrderId()); + imageDomain.setType(Short.valueOf("2")); + imageDomain.setDelFlag(Short.valueOf("0")); + imageMapper.insertSelective(imageDomain); + } + return true; + } + + + @Override + public Boolean insertOrder(XhpcWorkOrderDomain domain){ + if(domain.getWorkOrderId() == null || domain.getWorkOrderId() < 1L){ + return insertDomain(domain); + } else { + return updateDomain(domain); + } + } + @Override public Boolean deleteOrder(Long orderId) throws Exception { @@ -214,7 +230,13 @@ public class WorkOrderServiceImpl implements WorkOrderService { } - private void sendSms(String phoneList, String orderId){ + private void sendSms(String userIds, String orderId){ + + String phoneList = workUserService.getPhoneListByUserIds(userIds); + if(StringUtils.isEmpty(phoneList)){ + throw new CustomException("没有待发送短信"); + } + HashMap paramMap = new HashMap<>(); paramMap.put("orderNo", orderId); paramMap.put("phone", phoneList); diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/WorkUserServiceImpl.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/WorkUserServiceImpl.java index 16f35299..660586a6 100644 --- a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/WorkUserServiceImpl.java +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/WorkUserServiceImpl.java @@ -209,6 +209,16 @@ public class WorkUserServiceImpl implements WorkUserService { } + @Override + public String getPhoneListByUserIds(String userIds){ + if(StringUtils.isEmpty(userIds)){ + return ""; + } + + return workUserMapper.selectPhoneListByIds(userIds); + } + + private void getUserConvert(SysUser user, XhpcWorkUserDomain domain){ user.setUserName(domain.getLoginName()); user.setNickName(domain.getUserName()); diff --git a/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcWorkUserMapper.xml b/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcWorkUserMapper.xml index 25e37e67..b164aca2 100644 --- a/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcWorkUserMapper.xml +++ b/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcWorkUserMapper.xml @@ -154,4 +154,9 @@ + + + \ No newline at end of file