fix: 定时任务解决订单未结束的需求

This commit is contained in:
huchuansai
2025-09-01 11:32:30 +08:00
parent a78ddd0ece
commit d91de22318
6 changed files with 215 additions and 141 deletions

View File

@@ -43,6 +43,10 @@ public class MyTenantLineHandler implements TenantLineHandler {
*/
@Override
public boolean ignoreTable(String tableName) {
String threadName = Thread.currentThread().getName();
if (threadName.contains("schedule")) {
return true;
}
String prefix = StringUtils.substringBefore(tableName, "_");
return Arrays.asList(TABLE_FILTER).contains(tableName) || Arrays.asList(TABLE_PRE).contains(prefix);
}

View File

@@ -0,0 +1,95 @@
package com.starry.admin.modules.order.job;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.starry.admin.common.exception.CustomException;
import com.starry.admin.modules.order.mapper.PlayOrderInfoMapper;
import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity;
import com.starry.admin.modules.weichat.service.WxCustomMpService;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;
import javax.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Slf4j
@Component
public class OrderJob {
@Resource
private PlayOrderInfoMapper orderInfoMapper;
@Resource
private WxCustomMpService wxCustomMpService;
/**
* 每20秒执行一次的定时任务修改订单状态为已完成
*/
@Scheduled(fixedRate = 20000, initialDelay = 20000)
public void orderFinishJob() {
// 查询出所有应该完成的订单
List<String> serviceDurationList = Arrays.asList("一周", "一个月", "一小时", "15分钟", "一天", "半小时", "30分钟");
List<PlayOrderInfoEntity> orderInfoEntityList = orderInfoMapper.selectList(Wrappers.lambdaQuery(PlayOrderInfoEntity.class).isNotNull(PlayOrderInfoEntity::getServiceDuration)
.eq(PlayOrderInfoEntity::getOrderStatus, "2")
.eq(PlayOrderInfoEntity::getOrderType, "2")
.isNotNull(PlayOrderInfoEntity::getOrderStartTime)
.in(PlayOrderInfoEntity::getServiceDuration, serviceDurationList)
.in(PlayOrderInfoEntity::getPlaceType, Arrays.asList("1", "0"))
);
if (CollectionUtils.isEmpty(orderInfoEntityList)) return;
orderInfoEntityList.forEach(ca -> {
try {
// 根据serviceDuration换取时间
Integer serviceDuration = this.getServiceDuration(ca.getServiceDuration());
if (serviceDuration.equals(0)) return;
// 判断与开始时间相比较,如果大于服务时长,则修改订单状态为已完成
if (ca.getOrderStartTime().plusMinutes(serviceDuration).isBefore(LocalDateTime.now())) {
PlayOrderInfoEntity entity2 = new PlayOrderInfoEntity(ca.getId(), "3");
entity2.setOrderEndTime(LocalDateTime.now());
this.orderInfoMapper.updateById(entity2);
// 发送消息
wxCustomMpService.sendOrderFinishMessage(ca);
}
} catch (Exception e) {
log.error(e.getMessage(), e);
log.error("订单完成失败:{}", ca.getOrderNo());
}
});
}
private Integer getServiceDuration(String serviceDuration) {
if (StringUtils.isEmpty(serviceDuration)) {
throw new CustomException("服务时长不能为空");
}
switch (serviceDuration) {
case "一周":
return 7 * 24 * 60; // 一周 = 7天每天24小时每小时60分钟
case "一个月":
return 30 * 24 * 60; // 按30天计算一个月
case "一小时":
return 60; // 一小时 = 60分钟
case "15分钟":
return 15;
case "一天":
return 24 * 60; // 一天 = 24小时
case "半小时":
return 30; // 半小时 = 30分钟
case "30分钟":
return 30;
}
return 0;
}
}

View File

@@ -164,7 +164,7 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
PlayClerkLevelInfoEntity entity = playClerkUserInfoService.queryLevelCommission(clerkId);
ClerkEstimatedRevenueVo estimatedRevenueVo = new ClerkEstimatedRevenueVo();
switch (placeType) {
case "0" : {
case "0": {
if ("1".equals(firstOrder)) {
estimatedRevenueVo.setRevenueRatio(entity.getFirstRegularRatio());
estimatedRevenueVo
@@ -183,7 +183,7 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
}
break;
}
case "1" : {
case "1": {
if ("1".equals(firstOrder)) {
estimatedRevenueVo.setRevenueRatio(entity.getFirstRandomRadio());
estimatedRevenueVo
@@ -202,7 +202,7 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
}
break;
}
case "2" : {
case "2": {
if ("1".equals(firstOrder)) {
estimatedRevenueVo.setRevenueRatio(entity.getFirstRewardRatio());
estimatedRevenueVo
@@ -221,13 +221,13 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
}
break;
}
case "-1" : {
case "-1": {
log.error("下单类型异常placeType={}", placeType);
estimatedRevenueVo.setRevenueAmount(finalAmount);
estimatedRevenueVo.setRevenueRatio(100);
break;
}
default : {
default: {
log.error("下单类型错误placeType={}", placeType);
estimatedRevenueVo.setRevenueAmount(finalAmount);
estimatedRevenueVo.setRevenueRatio(100);
@@ -256,14 +256,10 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
/**
* 根据店员等级和订单金额,获取店员预计收入
*
* @param clerkId
* 店员ID
* @param placeType
* 下单类型(-1:其他类型;0:指定单;1:随机单;2:打赏单)
* @param firstOrder
* 是否是首单【0不是1是】
* @param finalAmount
* 订单支付金额
* @param clerkId 店员ID
* @param placeType 下单类型(-1:其他类型;0:指定单;1:随机单;2:打赏单)
* @param firstOrder 是否是首单【0不是1是】
* @param finalAmount 订单支付金额
* @return math.BigDecimal 店员预计收入
* @author admin
* @since 2024/6/3 11:12
@@ -272,7 +268,7 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
public BigDecimal getEstimatedRevenue(String clerkId, String placeType, String firstOrder, BigDecimal finalAmount) {
PlayClerkLevelInfoEntity entity = playClerkUserInfoService.queryLevelCommission(clerkId);
switch (placeType) {
case "0" : {
case "0": {
if ("1".equals(firstOrder)) {
return finalAmount.multiply(new BigDecimal(entity.getFirstRegularRatio())
.divide(new BigDecimal(100), 4, RoundingMode.HALF_UP)).setScale(2, RoundingMode.HALF_UP);
@@ -281,7 +277,7 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
.divide(new BigDecimal(100), 4, RoundingMode.HALF_UP)).setScale(2, RoundingMode.HALF_UP);
}
}
case "1" : {
case "1": {
if ("1".equals(firstOrder)) {
return finalAmount.multiply(new BigDecimal(entity.getFirstRandomRadio()).divide(new BigDecimal(100),
4, RoundingMode.HALF_UP)).setScale(2, RoundingMode.HALF_UP);
@@ -290,7 +286,7 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
.divide(new BigDecimal(100), 4, RoundingMode.HALF_UP)).setScale(2, RoundingMode.HALF_UP);
}
}
case "2" : {
case "2": {
if ("1".equals(firstOrder)) {
return finalAmount.multiply(new BigDecimal(entity.getFirstRewardRatio()).divide(new BigDecimal(100),
4, RoundingMode.HALF_UP)).setScale(2, RoundingMode.HALF_UP);
@@ -299,11 +295,11 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
.divide(new BigDecimal(100), 4, RoundingMode.HALF_UP)).setScale(2, RoundingMode.HALF_UP);
}
}
case "-1" : {
case "-1": {
log.error("下单类型异常placeType={}", placeType);
return finalAmount;
}
default : {
default: {
log.error("下单类型错误placeType={}", placeType);
return finalAmount;
}
@@ -314,32 +310,32 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
public Integer getEstimatedRevenueRatio(String clerkId, String placeType, String firstOrder) {
PlayClerkLevelInfoEntity entity = playClerkUserInfoService.queryLevelCommission(clerkId);
switch (placeType) {
case "0" : {
case "0": {
if ("1".equals(firstOrder)) {
return entity.getFirstRegularRatio();
} else {
return entity.getNotFirstRegularRatio();
}
}
case "1" : {
case "1": {
if ("1".equals(firstOrder)) {
return entity.getFirstRandomRadio();
} else {
return entity.getNotFirstRandomRadio();
}
}
case "2" : {
case "2": {
if ("1".equals(firstOrder)) {
return entity.getFirstRewardRatio();
} else {
return entity.getNotFirstRewardRatio();
}
}
case "-1" : {
case "-1": {
log.error("下单类型异常placeType={}", placeType);
return 100;
}
default : {
default: {
log.error("下单类型错误placeType={}", placeType);
return 100;
}
@@ -349,14 +345,10 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
/**
* 新增充值订单
*
* @param orderId
* 订单编号
* @param orderMoney
* 订单金额
* @param finalAmount
* 订单最终金额(支付金额)
* @param purchaserBy
* 下单人ID
* @param orderId 订单编号
* @param orderMoney 订单金额
* @param finalAmount 订单最终金额(支付金额)
* @param purchaserBy 下单人ID
*/
@Override
@@ -497,8 +489,7 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
/**
* 查询订单
*
* @param id
* 订单主键
* @param id 订单主键
* @return 订单
*/
@Override
@@ -535,8 +526,7 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
/**
* 分页查询订单信息
*
* @param vo
* 订单分页查询对象
* @param vo 订单分页查询对象
* @return 订单分页查询结果
*/
@Override
@@ -679,63 +669,13 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
return this.baseMapper.selectList(lambdaQueryWrapper);
}
/**
* 获取通用的订单查询对象 订单作为主表 连接顾客用户表、店员用户表、商品表
*
* @return MPJLambdaWrapper<PlayOrderInfoEntity>
*/
public MPJLambdaWrapper<PlayOrderInfoEntity> getCommonOrderQueryVo(PlayOrderInfoEntity entity) {
MPJLambdaWrapper<PlayOrderInfoEntity> lambdaQueryWrapper = new MPJLambdaWrapper<>();
// 查询主表全部字段
lambdaQueryWrapper.selectAll(PlayOrderInfoEntity.class);
// 查询顾客表
lambdaQueryWrapper.selectAs(PlayCustomUserInfoEntity::getId, "customId")
.selectAs(PlayCustomUserInfoEntity::getAvatar, "customAvatar")
.selectAs(PlayCustomUserInfoEntity::getNickname, "customNickname");
// 查询陪聊表
lambdaQueryWrapper.selectAs(PlayClerkUserInfoEntity::getId, "clerkId")
.selectAs(PlayClerkUserInfoEntity::getAvatar, "clerkAvatar")
.selectAs(PlayClerkUserInfoEntity::getNickname, "clerkNickname");
// 子表-店员服务项目表
lambdaQueryWrapper.leftJoin(PlayCustomUserInfoEntity.class, PlayCustomUserInfoEntity::getId,
PlayOrderInfoEntity::getPurchaserBy);
// 子表-店员表
lambdaQueryWrapper.leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId,
PlayOrderInfoEntity::getAcceptBy);
if (StringUtils.isNotBlank(entity.getId())) {
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getId, entity.getId());
}
if (StringUtils.isNotBlank(entity.getPurchaserBy())) {
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getPurchaserBy, entity.getPurchaserBy());
}
if (StringUtils.isNotBlank(entity.getAcceptBy())) {
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getAcceptBy, entity.getAcceptBy());
}
if (StringUtils.isNotBlank(entity.getOrderStatus())) {
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getOrderStatus, entity.getOrderStatus());
}
if (StringUtils.isNotBlank(entity.getPlaceType())) {
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getPlaceType, entity.getPlaceType());
}
if (StringUtils.isNotBlank(entity.getOrderType())) {
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getOrderType, entity.getOrderType());
}
lambdaQueryWrapper.orderByDesc(PlayOrderInfoEntity::getCreatedTime);
return lambdaQueryWrapper;
}
/**
* 修改订单状态为接单 只有管理员或者店员本人才能操作
*
* @param operatorByType
* 操作人类型0:顾客;1:店员;2:管理员)
* @param operatorBy
* 操作人ID
* @param acceptBy
* 接单人ID
* @param orderId
* 订单Id
* @param operatorByType 操作人类型0:顾客;1:店员;2:管理员)
* @param operatorBy 操作人ID
* @param acceptBy 接单人ID
* @param orderId 订单Id
**/
@Override
public void updateStateTo1(String operatorByType, String operatorBy, String acceptBy, String orderId) {
@@ -776,17 +716,60 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
wxCustomMpService.sendOrderMessage(orderInfo);
}
/**
* 获取通用的订单查询对象 订单作为主表 连接顾客用户表、店员用户表、商品表
*
* @return MPJLambdaWrapper<PlayOrderInfoEntity>
*/
public MPJLambdaWrapper<PlayOrderInfoEntity> getCommonOrderQueryVo(PlayOrderInfoEntity entity) {
MPJLambdaWrapper<PlayOrderInfoEntity> lambdaQueryWrapper = new MPJLambdaWrapper<>();
// 查询主表全部字段
lambdaQueryWrapper.selectAll(PlayOrderInfoEntity.class);
// 查询顾客表
lambdaQueryWrapper.selectAs(PlayCustomUserInfoEntity::getId, "customId")
.selectAs(PlayCustomUserInfoEntity::getAvatar, "customAvatar")
.selectAs(PlayCustomUserInfoEntity::getNickname, "customNickname");
// 查询陪聊表
lambdaQueryWrapper.selectAs(PlayClerkUserInfoEntity::getId, "clerkId")
.selectAs(PlayClerkUserInfoEntity::getAvatar, "clerkAvatar")
.selectAs(PlayClerkUserInfoEntity::getNickname, "clerkNickname");
// 子表-店员服务项目表
lambdaQueryWrapper.leftJoin(PlayCustomUserInfoEntity.class, PlayCustomUserInfoEntity::getId,
PlayOrderInfoEntity::getPurchaserBy);
// 子表-店员表
lambdaQueryWrapper.leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId,
PlayOrderInfoEntity::getAcceptBy);
if (StringUtils.isNotBlank(entity.getId())) {
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getId, entity.getId());
}
if (StringUtils.isNotBlank(entity.getPurchaserBy())) {
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getPurchaserBy, entity.getPurchaserBy());
}
if (StringUtils.isNotBlank(entity.getAcceptBy())) {
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getAcceptBy, entity.getAcceptBy());
}
if (StringUtils.isNotBlank(entity.getOrderStatus())) {
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getOrderStatus, entity.getOrderStatus());
}
if (StringUtils.isNotBlank(entity.getPlaceType())) {
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getPlaceType, entity.getPlaceType());
}
if (StringUtils.isNotBlank(entity.getOrderType())) {
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getOrderType, entity.getOrderType());
}
lambdaQueryWrapper.like(StringUtils.isNotEmpty(entity.getOrderNo()), PlayOrderInfoEntity::getOrderNo, entity.getOrderNo());
lambdaQueryWrapper.orderByDesc(PlayOrderInfoEntity::getCreatedTime);
return lambdaQueryWrapper;
}
/**
* 修改订单状态为开始订单或者完成订单 只有管理员或者店员本人才能操作
*
* @param operatorByType
* 操作人类型0:顾客;1:店员;2:管理员)
* @param operatorBy
* 操作人ID
* @param orderState
* 订单状态
* @param orderId
* 订单Id
* @param operatorByType 操作人类型0:顾客;1:店员;2:管理员)
* @param operatorBy 操作人ID
* @param orderState 订单状态
* @param orderId 订单Id
**/
@Override
public void updateStateTo23(String operatorByType, String operatorBy, String orderState, String orderId) {
@@ -808,7 +791,7 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
throw new CustomException("只能操作本人订单");
}
switch (orderState) {
case ORDER_STATUS_2 : {
case ORDER_STATUS_2: {
// 开始订单前,订单状态必须为接单状态
if (!entity.getOrderStatus().equals(OrderConstant.ORDER_STATUS_1)) {
log.error("订单状态异常,不能开始接单,orderId={},orderStace={}", orderId, orderState);
@@ -819,7 +802,7 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
this.baseMapper.updateById(entity2);
break;
}
case ORDER_STATUS_3 : {
case ORDER_STATUS_3: {
// 完成订单前,订单状态必须为开始状态
if (!entity.getOrderStatus().equals(ORDER_STATUS_2)) {
log.error("订单状态异常,不能完成订单,orderId={},orderStace={}", orderId, orderState);
@@ -833,7 +816,7 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
wxCustomMpService.sendOrderFinishMessage(this.selectOrderInfoById(orderId));
break;
}
default : {
default: {
log.error("修改订单状态异常orderId={},orderStace={}", orderId, orderState);
}
}
@@ -842,12 +825,9 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
/**
* 修改订单状态为取消订单 管理员、店员、顾客均可操作
*
* @param operatorByType
* 操作人类型0:顾客;1:店员;2:管理员)
* @param operatorBy
* 操作人ID
* @param orderId
* 订单Id
* @param operatorByType 操作人类型0:顾客;1:店员;2:管理员)
* @param operatorBy 操作人ID
* @param orderId 订单Id
**/
@Override
@@ -890,8 +870,7 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
/**
* 修改订单
*
* @param orderInfo
* 订单
* @param orderInfo 订单
* @return 结果
*/
@Override
@@ -902,8 +881,7 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
/**
* 批量删除订单
*
* @param ids
* 需要删除的订单主键
* @param ids 需要删除的订单主键
* @return 结果
*/
@Override
@@ -914,8 +892,7 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
/**
* 删除订单信息
*
* @param id
* 订单主键
* @param id 订单主键
* @return 结果
*/
@Override

View File

@@ -1,11 +1,10 @@
package com.starry.admin.modules.weichat.entity;
import lombok.Data;
import java.util.List;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;
import lombok.Data;
/**

View File

@@ -110,7 +110,7 @@ public class WxCustomMpService {
PlayCustomUserInfoEntity customUserInfo = customUserInfoService.selectById(order.getPurchaserBy());
SysTenantEntity tenant = tenantService.selectSysTenantByTenantId(order.getTenantId());
WxMpTemplateMessage templateMessage = getWxMpTemplateMessage(tenant.getChongzhichenggongTemplateId(),
customUserInfo.getOpenid(), "http://" + tenant.getTenantKey() + ".julyharbor.com/user/");
customUserInfo.getOpenid(), "https://" + tenant.getTenantKey() + ".julyharbor.com/user/");
List<WxMpTemplateData> data = new ArrayList<>();
data.add(new WxMpTemplateData("time4", DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss")));
data.add(new WxMpTemplateData("amount2", order.getOrderMoney().toString()));
@@ -141,7 +141,7 @@ public class WxCustomMpService {
SysTenantEntity tenant = tenantService.selectSysTenantByTenantId(tenantId);
WxMpTemplateMessage templateMessage = getWxMpTemplateMessage(tenant.getXindingdanshoulitongzhiTemplateId(),
openId, "http://" + tenant.getTenantKey() + ".julyharbor.com/clerk/#/orderDetail/");
openId, "https://" + tenant.getTenantKey() + ".julyharbor.com/clerk/#/orderDetail/");
List<WxMpTemplateData> data = new ArrayList<>();
data.add(new WxMpTemplateData("time6", DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss")));
data.add(new WxMpTemplateData("character_string9", orderNo));
@@ -171,7 +171,7 @@ public class WxCustomMpService {
WxMpTemplateMessage templateMessage = getWxMpTemplateMessage(tenant.getJiedanchenggongtongzhiTemplateId(),
clerkUserInfo.getOpenid(),
"http://" + tenant.getTenantKey() + ".julyharbor.com/clerk/#/orderDetail/" + orderInfo.getId());
"https://" + tenant.getTenantKey() + ".julyharbor.com/clerk/#/orderDetail/" + orderInfo.getId());
List<WxMpTemplateData> data = new ArrayList<>();
data.add(new WxMpTemplateData("character_string1", orderInfo.getOrderNo()));
data.add(new WxMpTemplateData("time2", DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss")));
@@ -184,7 +184,7 @@ public class WxCustomMpService {
templateMessage.setToUser(customUserInfo.getOpenid());
templateMessage
.setUrl("http://" + tenant.getTenantKey() + ".julyharbor.com/user/#/orderDetail/" + orderInfo.getId());
.setUrl("https://" + tenant.getTenantKey() + ".julyharbor.com/user/#/orderDetail/" + orderInfo.getId());
try {
proxyWxMpService().getTemplateMsgService().sendTemplateMsg(templateMessage);
} catch (WxErrorException e) {
@@ -200,7 +200,7 @@ public class WxCustomMpService {
SysTenantEntity tenant = tenantService.selectSysTenantByTenantId(userInfo.getTenantId());
String template_id = tenant.getRzsqshtxTemplateId();
String tenantKey = tenant.getTenantKey();
String url = "http://" + tenantKey + ".julyharbor.com/clerk/";
String url = "https://" + tenantKey + ".julyharbor.com/clerk/";
WxMpTemplateMessage templateMessage = new WxMpTemplateMessage();
templateMessage.setTemplateId(template_id);
@@ -225,7 +225,7 @@ public class WxCustomMpService {
SysTenantEntity tenant = tenantService.selectSysTenantByTenantId(tenantId);
String template_id = tenant.getRzsqAdminTemplateId();
String tenantKey = tenant.getTenantKey();
String url = "http://" + tenantKey + ".julyharbor.com/clerk/#/admin/clerk-apply-list";
String url = "https://" + tenantKey + ".julyharbor.com/clerk/#/admin/clerk-apply-list";
List<PlayPersonnelAdminInfoEntity> adminInfoEntityList = playPersonnelAdminInfoService.list(Wrappers
.lambdaQuery(PlayPersonnelAdminInfoEntity.class).select(PlayPersonnelAdminInfoEntity::getSysUserId));
for (PlayPersonnelAdminInfoEntity adminInfoEntity : adminInfoEntityList) {
@@ -289,7 +289,7 @@ public class WxCustomMpService {
}
WxMpTemplateMessage templateMessage = getWxMpTemplateMessage(tenant.getDingdantousuchuliTemplateId(),
clerkUserInfo.getOpenid(),
"http://" + tenant.getTenantKey() + ".julyharbor.com/clerk/#/admin/order/complain-list");
"https://" + tenant.getTenantKey() + ".julyharbor.com/clerk/#/admin/order/complain-list");
List<WxMpTemplateData> data = new ArrayList<>();
data.add(new WxMpTemplateData("character_string", orderInfo.getOrderNo()));
data.add(new WxMpTemplateData("time2", DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss")));
@@ -309,7 +309,7 @@ public class WxCustomMpService {
PlayCustomUserInfoEntity customUserInfo = customUserInfoService.selectById(order.getPurchaserBy());
WxMpTemplateMessage templateMessage = getWxMpTemplateMessage(tenant.getDingdanwanchengtongzhiTemplateId(),
customUserInfo.getOpenid(),
"http://" + tenant.getTenantKey() + ".julyharbor.com/user/#/orderDetail/" + order.getId());
"https://" + tenant.getTenantKey() + ".julyharbor.com/user/#/orderDetail/" + order.getId());
List<WxMpTemplateData> data = new ArrayList<>();
data.add(new WxMpTemplateData("time18", DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss")));
data.add(new WxMpTemplateData("character_string8", order.getOrderNo()));
@@ -331,7 +331,7 @@ public class WxCustomMpService {
WxMpTemplateMessage templateMessage = getWxMpTemplateMessage(tenant.getQuxiaodingdantongzhiTemplateId(),
customUserInfo.getOpenid(),
"http://" + tenant.getTenantKey() + ".julyharbor.com/user/#/orderDetail/" + orderInfo.getId());
"https://" + tenant.getTenantKey() + ".julyharbor.com/user/#/orderDetail/" + orderInfo.getId());
List<WxMpTemplateData> data = new ArrayList<>();
data.add(new WxMpTemplateData("character_string2", orderInfo.getOrderNo()));
data.add(new WxMpTemplateData("thing5", StringUtils.isEmpty(refundReason) ? "已取消" : refundReason));
@@ -348,7 +348,7 @@ public class WxCustomMpService {
templateMessage.setToUser(clerkUserInfo.getOpenid());
templateMessage.setUrl(
"http://" + tenant.getTenantKey() + ".julyharbor.com/clerk/#/orderDetail/" + orderInfo.getId());
"https://" + tenant.getTenantKey() + ".julyharbor.com/clerk/#/orderDetail/" + orderInfo.getId());
try {
proxyWxMpService().getTemplateMsgService().sendTemplateMsg(templateMessage);
} catch (WxErrorException e) {

View File

@@ -4,17 +4,16 @@ import cn.hutool.core.util.RandomUtil;
import com.alibaba.fastjson2.JSONObject;
import com.starry.common.redis.RedisCache;
import com.starry.common.utils.StringUtils;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import javax.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.util.EntityUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
/**
* @Author: huchuansai
* @Date: 2024/7/29 5:41 PM