feat:出生日期

This commit is contained in:
dzc committed 2026-01-30 20:20:18 +08:00
1 parent a2623df7e2
commit 6e4aa1a2bb
20 files changed
+216 -21

No files matched your search

@@ -7,10 +7,14 @@ import lombok.Data;
@Data
public class HandCancelActCodeDto {
@Schema(description = "核销活动i子d")
@Schema(description = "用户id不能为空")
@NotNull(message = "核销活动子id不能为空")
private Long actItemId;
@Schema(description = "用户id")
@NotNull(message = "用户id不能为空")
private Long userId;
@Schema(description = "设备id")
@NotNull(message = "设备id不能为空")
private Long hardwareId;
@@ -33,6 +33,7 @@ import com.bsd.pjcloud.common.security.service.PjcloudUser;
import com.bsd.pjcloud.hard.api.constant.HardProductNatureEnum;
import com.bsd.pjcloud.hard.api.constant.HardThirdMiStatusEnum;
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.HardOrderStatusEnum;
import com.bsd.pjcloud.hard.api.constant.order.HardOrderTypeEnum;
import com.bsd.pjcloud.hard.api.constant.order.HardPayTypeEnum;
@@ -84,6 +85,7 @@ import com.bsd.pjcloud.wallet.api.constant.mch.WalletMchRulePriceTypeEnum;
import com.bsd.pjcloud.wallet.api.constant.mch.WalletMchSupType;
import com.bsd.pjcloud.wallet.api.dto.WalletBalanceTransactionDto;
import com.bsd.pjcloud.wallet.api.dto.act.ActCancelItemDto;
import com.bsd.pjcloud.wallet.api.dto.act.ActComCancelDto;
import com.bsd.pjcloud.wallet.api.entity.WalletCodeUseEntity;
import com.bsd.pjcloud.wallet.api.entity.WalletManageEntity;
import com.bsd.pjcloud.wallet.api.entity.WalletTransactionEntity;
@@ -93,6 +95,7 @@ import com.bsd.pjcloud.wallet.api.vo.MchManageVo;
import com.bsd.pjcloud.wallet.api.vo.WalletManageVo;
import com.bsd.pjcloud.wallet.api.vo.WalletSettingVo;
import com.bsd.pjcloud.wallet.api.vo.act.ActCancelItemVo;
import com.bsd.pjcloud.wallet.api.vo.act.ActComItemVo;
import com.bsd.pjcloud.wallet.api.vo.mch.MchPickUpVo;
import com.bsd.pjcloud.wallet.api.vo.mch.MchRuleJoinDtoVo;
import jakarta.validation.Valid;
@@ -152,6 +155,7 @@ public class HardOrderServiceImpl extends ServiceImpl<HardOrderMapper, HardOrder
private final RemoteOnlineCanteenSpuService onlineCanteenSpuService;
private final RemoteSupermarketSpuService supermarketSpuService;
private final RemoteShopSkuService remoteShopSkuService;
private final RemoteComActService remoteComActService;
private final RemoteActCancelService remoteActCancelService;
private final RemoteMallProductService remoteMallProductService;
@@ -1024,15 +1028,18 @@ public class HardOrderServiceImpl extends ServiceImpl<HardOrderMapper, HardOrder
// 是否需要核销
boolean isVerify = isVerify(hardPayType);
if (isWalletPay) {
WalletBalanceTransactionDto reduceBuild = new WalletBalanceTransactionDto();
reduceBuild.setWalletId(order.getWalletId());
reduceBuild.setPrice(order.getPayPrice());
reduceBuild.setBizId(String.valueOf(order.getId()));
reduceBuild.setBizType(WalletBizEnum.PAYMENT);
reduceBuild.setForce(true);
R<WalletTransactionEntity> reduceRes = walletTransactionService.reduceWalletBalance(reduceBuild);
if (reduceRes.getCode() != 0 || ObjectUtil.isEmpty(reduceRes.getData())) {
throw new RuntimeException("钱包扣款错误");
int payPrice = order.getTotalPrice() + order.getExtraPrice();
if (payPrice > 0) {
WalletBalanceTransactionDto reduceBuild = new WalletBalanceTransactionDto();
reduceBuild.setWalletId(order.getWalletId());
reduceBuild.setPrice(order.getPayPrice());
reduceBuild.setBizId(String.valueOf(order.getId()));
reduceBuild.setBizType(WalletBizEnum.PAYMENT);
reduceBuild.setForce(true);
R<WalletTransactionEntity> reduceRes = walletTransactionService.reduceWalletBalance(reduceBuild);
if (reduceRes.getCode() != 0 || ObjectUtil.isEmpty(reduceRes.getData())) {
throw new RuntimeException("钱包扣款错误");
}
}
}
// 订单成功
@@ -1150,9 +1157,85 @@ public class HardOrderServiceImpl extends ServiceImpl<HardOrderMapper, HardOrder
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean handCancelActCode(HandCancelActCodeDto dto) {
// 查看该优惠券
// 1. 查看活动是否存在
ActComItemVo detail = remoteComActService.remoteGetComAct(dto.getActItemId(), dto.getUserId()).getData();
if (ObjectUtil.isEmpty(detail)) {
throw new RuntimeException("活动不存在");
}
// 2. 参加活动人员
UserInfo userInfo = userService.getInnerByUserId(detail.getUserId()).getData();
if (ObjectUtil.isEmpty(userInfo)) {
throw new RuntimeException("参加活动用户不存在");
}
SysUser sysUser = userInfo.getSysUser();
// 3. 查询设备
HardManagerVo hardDetail = hardManagerService.getByHardId(dto.getHardwareId());
if (ObjectUtil.isEmpty(hardDetail)) {
throw new RuntimeException("设备不存在");
}
// 4. 查询商户
MchManageVo mch = remoteMchService.getById(hardDetail.getMerchantId()).getData();
if (ObjectUtil.isEmpty(mch)) {
throw new RuntimeException("商户不存在");
}
// 5. 是否已经核销过
String errorMsg = remoteComActService.remoteIsCanCancel(dto.getActItemId(), dto.getUserId()).getData();
if (ObjectUtil.isNotEmpty(errorMsg)) {
throw new RuntimeException(errorMsg);
}
// 6. 钱包(默认饭卡钱包)
WalletManageEntity wallet = remoteWalletService.getWallet(dto.getUserId(), WalletTypeEnum.EAT).getData();
return null;
// 7. 创建订单
// 是否需要支付
boolean isPay = true;
// 门槛金额
// 减免金额
// 商品描述
// 优惠金额
int useAmountPrice = 0;
String orderDesc = "浦江活动商品 x *";
// 总金额,额外金额,支付金额
int totalPrice = 0, extraPrice = 0, payPrice = 0;
// 添加硬件订单
HardOrderEntity orderObj = HardOrderEntity.builder()
.androidOrderCode(null)
.userId(sysUser.getUserId())
.userDeptId(sysUser.getDeptId())
.walletId(wallet.getId())
.sysType(hardDetail.getType())
.hourType("-1")
.parentCarId(null)
.hardId(dto.getHardwareId())
.orderStatus(HardOrderStatusEnum.CREATE.getType())
.merchantId(mch.getId())
.merchantType(mch.getTypes())
.merchantDeptId(mch.getDeptId())
.deptId(hardDetail.getDeptId())
.orderType(HardOrderTypeEnum.RESERVE.getType())
.payType(HardPayTypeEnum.ACT_CANCEL.getType())
.orderSourceTypeId(dto.getActItemId())
.totalPrice(totalPrice)
.extraPrice(extraPrice)
.payPrice(totalPrice + extraPrice)
.isOfflineOrder(YesNoEnum.NO.getCode())
.productDesc(orderDesc)
.build();
baseMapper.insert(orderObj);
// 核销
ActComCancelDto cancelDto = new ActComCancelDto();
cancelDto.setActItemId(dto.getActItemId());
cancelDto.setUserId(dto.getUserId());
cancelDto.setOrderId(orderObj.getId());
cancelDto.setUseAmountPrice(useAmountPrice);
Boolean isCancelSuccess = remoteComActService.remoteDoCancel(cancelDto).getData();
if (!isCancelSuccess) {
throw new RuntimeException("核销失败");
}
// 钱包扣款
getSelf().fastReduceBalance(orderObj);
return true;
}
@Override
@@ -0,0 +1,16 @@
package com.bsd.pjcloud.admin.api.dto;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.time.LocalDate;
@Data
public class SysAppUserModifyDto {
private Long userId;
@NotNull(message = "生日不能为空")
private LocalDate birthday;
}
@@ -31,6 +31,7 @@ import org.javers.core.metamodel.annotation.DiffInclude;
import org.javers.core.metamodel.annotation.PropertyName;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
@@ -160,6 +161,12 @@ public class SysUser extends Model<SysUser> implements Serializable {
@Schema(description = "头像地址")
private String avatar;
/**
* 生日
*/
@Schema(description = "生日")
private LocalDate birthday;
/**
* 部门ID
*/
@@ -25,6 +25,7 @@ import cn.hutool.core.util.ObjectUtil;
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.admin.api.dto.SysAppUserModifyDto;
import com.bsd.pjcloud.admin.api.dto.UserDTO;
import com.bsd.pjcloud.admin.api.dto.UserDeptSimpleInfo;
import com.bsd.pjcloud.admin.api.dto.UserInfo;
@@ -46,6 +47,7 @@ import com.bsd.pjcloud.common.excel.annotation.ResponseExcel;
import com.bsd.pjcloud.common.log.annotation.SysLog;
import com.bsd.pjcloud.common.security.annotation.HasPermission;
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.flow.task.dto.ProcessNodeRecordAssignUserParamDto;
@@ -66,6 +68,7 @@ import org.springframework.http.HttpHeaders;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -95,6 +98,7 @@ public class SysUserController {
private final SysRoleService sysRoleService;
private final SysUserRoleService sysUserRoleService;
/* ************************************* start 回调 start ************************************* */
@Inner(value = false)
@@ -105,6 +109,16 @@ public class SysUserController {
/* ************************************* end 回调 end ************************************* */
/* ************************************* start app start ************************************* */
@PostMapping("/app/modify")
public R<Boolean> appModify(@Validated @RequestBody SysAppUserModifyDto dto) {
PjcloudUser user = SecurityUtils.getUser();
dto.setUserId(user.getId());
return R.ok(userService.appModify(dto));
}
/* ************************************* end app end ************************************* */
/**
* 获取指定用户全部信息
*
@@ -23,6 +23,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bsd.pjcloud.admin.api.dto.SysAppUserModifyDto;
import com.bsd.pjcloud.admin.api.dto.UserDTO;
import com.bsd.pjcloud.admin.api.dto.UserInfo;
import com.bsd.pjcloud.admin.api.entity.SysUser;
@@ -84,6 +85,11 @@ public interface SysUserService extends IService<SysUser> {
*/
Boolean updateUser(UserDTO userDto);
/**
* app更新用户
*/
Boolean appModify(SysAppUserModifyDto dto);
/**
* 通过ID查询用户信息
*
@@ -19,6 +19,7 @@
package com.bsd.pjcloud.admin.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Validator;
import cn.hutool.core.util.ArrayUtil;
@@ -35,6 +36,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bsd.pjcloud.admin.api.constant.UserStaffingTypeEnum;
import com.bsd.pjcloud.admin.api.constant.UserStateEnum;
import com.bsd.pjcloud.admin.api.dto.SysAppUserModifyDto;
import com.bsd.pjcloud.admin.api.dto.SysUserFaceDto;
import com.bsd.pjcloud.admin.api.dto.UserDTO;
import com.bsd.pjcloud.admin.api.dto.UserInfo;
@@ -426,6 +428,12 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
return Boolean.TRUE;
}
@Override
public Boolean appModify(SysAppUserModifyDto dto) {
SysUser updateObj = BeanUtil.toBean(dto, SysUser.class);
return baseMapper.updateById(updateObj) > 0;
}
/**
* 查询上级部门的用户信息
*
@@ -14,6 +14,7 @@ import java.util.Arrays;
public enum ActCouponValidTypeEnum {
FIXED_DATE("1", "固定日期"),
AFTER_RECEIVE("2", "领取后生效"),
AFTER_RECEIVE_CURRENT_MONTH("3", "领取后当月"),
;
private final String code;
private final String desc;
@@ -24,7 +24,7 @@ public class ActComCancelDto {
private Long orderId;
/**
* 活动提现金额
* 活动抵扣金额
*/
private Integer useAmountPrice;
@@ -4,7 +4,6 @@ import com.bsd.pjcloud.common.core.constant.ServiceNameConstants;
import com.bsd.pjcloud.common.core.util.R;
import com.bsd.pjcloud.common.feign.annotation.NoToken;
import com.bsd.pjcloud.wallet.api.dto.act.ActComCancelDto;
import com.bsd.pjcloud.wallet.api.entity.WalletCodeUseEntity;
import com.bsd.pjcloud.wallet.api.vo.act.ActComItemVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
@@ -7,6 +7,11 @@ import lombok.Data;
@Data
public class WalletCodeUseVo extends WalletCodeUseEntity implements BaseUserInterface {
/**
* 活动相关
*/
private String actUniquecode;
/**
* 用户相关
*/
@@ -7,6 +7,9 @@ import lombok.Data;
@Data
public class ActCouponRecordVo extends ActCouponRecordEntity implements BaseUserDeptInterface {
/**
* 用户相关
*/
private Long userId;
private String username;
@@ -19,4 +22,9 @@ public class ActCouponRecordVo extends ActCouponRecordEntity implements BaseUser
private String userDeptName;
/**
* 活动相关
*/
private String actUniquecode;
}
@@ -8,4 +8,5 @@ com.bsd.pjcloud.wallet.api.feign.RemoteWalletRuleTransactionService
com.bsd.pjcloud.wallet.api.feign.RemoteMchService
com.bsd.pjcloud.wallet.api.feign.RemoteWalletSettingService
com.bsd.pjcloud.wallet.api.feign.RemoteWalletThirdZyService
com.bsd.pjcloud.wallet.api.feign.RemoteWalletTransactionService
com.bsd.pjcloud.wallet.api.feign.RemoteWalletTransactionService
com.bsd.pjcloud.wallet.api.feign.RemoteComActService
@@ -2,6 +2,7 @@ package com.bsd.pjcloud.wallet.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.security.annotation.Inner;
import com.bsd.pjcloud.common.security.service.PjcloudUser;
@@ -9,6 +10,7 @@ import com.bsd.pjcloud.common.security.util.SecurityUtils;
import com.bsd.pjcloud.wallet.api.constant.WalletCodeBizEnum;
import com.bsd.pjcloud.wallet.api.dto.WalletCodeUseDto;
import com.bsd.pjcloud.wallet.api.entity.WalletCodeUseEntity;
import com.bsd.pjcloud.wallet.api.vo.WalletCodeUseVo;
import com.bsd.pjcloud.wallet.service.WalletCodeUseService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
@@ -9,6 +9,8 @@ import com.bsd.pjcloud.wallet.api.entity.act.ActCouponEntity;
import com.bsd.pjcloud.wallet.api.entity.act.ActCouponRecordEntity;
import com.bsd.pjcloud.wallet.api.vo.act.ActCouponRecordVo;
import java.util.List;
public interface ActCouponRecordService extends IService<ActCouponRecordEntity> {
/**
@@ -28,6 +30,7 @@ public interface ActCouponRecordService extends IService<ActCouponRecordEntity>
/**
* 核销优惠券
*
* @param useAmountPrice 优惠券抵消的金额
*/
void cancel(ActCouponRecordEntity dto, Long orderId, Integer useAmountPrice);
@@ -8,6 +8,7 @@ import com.bsd.pjcloud.wallet.api.entity.act.ActCouponEntity;
import com.bsd.pjcloud.wallet.api.vo.act.ActCouponVo;
import java.util.ArrayList;
import java.util.List;
public interface ActCouponService extends IService<ActCouponEntity> {
@@ -16,6 +17,11 @@ public interface ActCouponService extends IService<ActCouponEntity> {
*/
Page<ActCouponVo> pageJoin(Page page, ActCouponDto dto);
/**
* 根据actIdList查询活动
*/
List<ActCouponEntity> getByIdList(List<Long> actIdList);
/**
* 新增优惠券
*/
@@ -67,7 +67,7 @@ public class ActComServiceImpl implements ActComService {
}
if (ObjectUtil.isEmpty(result)) return null;
// 查询用户
UserInfo userInfo = remoteUserService.getByUserId(userId).getData();
UserInfo userInfo = remoteUserService.getInnerByUserId(userId).getData();
if (ObjectUtil.isNotEmpty(userInfo)) {
SysUser sysUser = userInfo.getSysUser();
result.setUserId(sysUser.getUserId());
@@ -1,5 +1,6 @@
package com.bsd.pjcloud.wallet.service.impl.act;
import cn.hutool.core.collection.IterUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -13,7 +14,6 @@ import com.bsd.pjcloud.common.core.constant.enums.MerchantTypeEnum;
import com.bsd.pjcloud.common.core.exception.ServiceException;
import com.bsd.pjcloud.common.core.util.CollectionUtils;
import com.bsd.pjcloud.common.core.util.R;
import com.bsd.pjcloud.hard.api.vo.HardAuthVo;
import com.bsd.pjcloud.wallet.api.constant.WalletBizEnum;
import com.bsd.pjcloud.wallet.api.constant.WalletCodeBizEnum;
import com.bsd.pjcloud.wallet.api.constant.act.ActCouponRecordStatusEnum;
@@ -30,6 +30,7 @@ import com.bsd.pjcloud.wallet.mapper.WalletTransactionMapper;
import com.bsd.pjcloud.wallet.mapper.act.ActCouponMapper;
import com.bsd.pjcloud.wallet.mapper.act.ActCouponRecordMapper;
import com.bsd.pjcloud.wallet.service.ActCouponRecordService;
import com.bsd.pjcloud.wallet.service.ActCouponService;
import com.bsd.pjcloud.wallet.service.MchManageService;
import com.bsd.pjcloud.wallet.service.WalletCodeUseService;
import com.bsd.pjcloud.wallet.utils.act.service.ActCouponComUtilService;
@@ -41,6 +42,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
@@ -55,7 +57,9 @@ public class ActCouponRecordServiceImpl extends ServiceImpl<ActCouponRecordMappe
private final WalletTransactionMapper walletTransactionMapper;
private final MchManageService mchManageService;
private final ActCouponComUtilService actCouponComUtilService;
private final ActCouponService actCouponService;
private final WalletCodeUseService walletCodeUseService;
private final RemoteUserService remoteUserService;
@@ -121,7 +125,7 @@ public class ActCouponRecordServiceImpl extends ServiceImpl<ActCouponRecordMappe
@Override
public void cancel(ActCouponRecordEntity dto, Long orderId, Integer useAmountPrice) {
// 1. 获取当前用户
UserInfo userInfo = remoteUserService.getByUserId(dto.getUserId()).getData();
UserInfo userInfo = remoteUserService.getInnerByUserId(dto.getUserId()).getData();
if (ObjectUtil.isEmpty(userInfo)) {
throw new ServiceException("用户不存在");
}
@@ -133,7 +137,7 @@ public class ActCouponRecordServiceImpl extends ServiceImpl<ActCouponRecordMappe
// 2. 预处理
ActCouponRecordEntity actCouponEntity = actCouponComUtilService.preCancel(record);
if (ObjectUtil.isEmpty(actCouponEntity)) {
return;
throw new ServiceException("优惠券不存在");
}
// 3. 执行核销逻辑
actCouponComUtilService.doCancel(actCouponEntity.getId(), orderId, useAmountPrice);
@@ -169,7 +173,7 @@ public class ActCouponRecordServiceImpl extends ServiceImpl<ActCouponRecordMappe
dto.setUserId(sysUser.getUserId());
dto.setPriceList(List.of(500 * 100, 1500 * 100, 800 * 100, 2400 * 100));
dto.setCreateTimeList(new LocalDate[]{
LocalDate.now().minusMonths(6),
LocalDate.now().minusMonths(4),
LocalDate.now()
});
List<WalletTransactionVo> walletList = walletTransactionMapper.scopeList(dto, null);
@@ -217,6 +221,19 @@ public class ActCouponRecordServiceImpl extends ServiceImpl<ActCouponRecordMappe
DataUtil.convertUserDeptList(list, CollectionUtils.convertMap(userList.getData(), UserVO::getUserId));
}
}
// 活动
List<Long> actIdList = list.stream().map(ActCouponRecordVo::getCouponId).distinct().toList();
if (ObjectUtil.isNotEmpty(actIdList)) {
List<ActCouponEntity> actList = actCouponService.getByIdList(actIdList);
if (ObjectUtil.isNotEmpty(actList)) {
Map<Long, ActCouponEntity> actCouponMap = IterUtil.toMap(actList, ActCouponEntity::getId);
for (ActCouponRecordVo v : list) {
ActCouponEntity targetMap = actCouponMap.get(v.getCouponId());
if (ObjectUtil.isEmpty(targetMap)) continue;
v.setActUniquecode(targetMap.getUniqueCode());
}
}
}
}
}
@@ -26,6 +26,16 @@ public class ActCouponServiceImpl extends ServiceImpl<ActCouponMapper, ActCoupon
return baseMapper.pageJoin(page, dto);
}
/**
* 根据actIdList查询活动
*/
@Override
public List<ActCouponEntity> getByIdList(List<Long> actIdList) {
return baseMapper.selectList(new LambdaQueryWrapper<ActCouponEntity>()
.in(ActCouponEntity::getId, actIdList)
);
}
/**
* 新增优惠券
*/
@@ -74,6 +74,11 @@ public class ActCouponComUtilService implements ActCouponLifecycleService {
record.setStartTime(LocalDateTime.now());
record.setEndTime(record.getStartTime().plusDays(validDays));
}
// 3-领取的当月
if (ObjectUtil.equals(ActCouponValidTypeEnum.AFTER_RECEIVE_CURRENT_MONTH.getCode(), coupon.getValidType())) {
record.setStartTime(LocalDate.now().with(TemporalAdjusters.firstDayOfMonth()).atTime(LocalTime.MIN));
record.setEndTime(LocalDate.now().with(TemporalAdjusters.lastDayOfMonth()).atTime(23, 59, 59));
}
actCouponRecordMapper.insert(record);
return record;
}
@@ -91,7 +96,7 @@ public class ActCouponComUtilService implements ActCouponLifecycleService {
*/
@Override
public ActCouponRecordEntity preCancel(ActCouponRecordEntity record) {
ActCouponRecordEntity couponRecord = actCouponRecordMapper.selectById(record.getCouponId());
ActCouponRecordEntity couponRecord = actCouponRecordMapper.selectById(record.getId());
String error = actIsCanCancel(record);
if (ObjectUtil.isNotEmpty(error)) {
throw new RuntimeException(error);