feat:出生日期
This commit is contained in:
1 parent
a2623df7e2
commit
6e4aa1a2bb
20 files changed
+216
-21
No files matched your search
+5
-1
@@ -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;
|
||||
|
||||
+94
-11
@@ -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
|
||||
|
||||
+16
@@ -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;
|
||||
|
||||
}
|
||||
+7
@@ -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
|
||||
*/
|
||||
|
||||
+14
@@ -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 ************************************* */
|
||||
|
||||
/**
|
||||
* 获取指定用户全部信息
|
||||
*
|
||||
|
||||
+6
@@ -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查询用户信息
|
||||
*
|
||||
|
||||
+8
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询上级部门的用户信息
|
||||
*
|
||||
|
||||
+1
@@ -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;
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@ public class ActComCancelDto {
|
||||
private Long orderId;
|
||||
|
||||
/**
|
||||
* 活动提现金额
|
||||
* 活动抵扣金额
|
||||
*/
|
||||
private Integer useAmountPrice;
|
||||
|
||||
|
||||
-1
@@ -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;
|
||||
|
||||
+5
@@ -7,6 +7,11 @@ import lombok.Data;
|
||||
@Data
|
||||
public class WalletCodeUseVo extends WalletCodeUseEntity implements BaseUserInterface {
|
||||
|
||||
/**
|
||||
* 活动相关
|
||||
*/
|
||||
private String actUniquecode;
|
||||
|
||||
/**
|
||||
* 用户相关
|
||||
*/
|
||||
|
||||
+8
@@ -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;
|
||||
|
||||
}
|
||||
+2
-1
@@ -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
@@ -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;
|
||||
|
||||
+3
@@ -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);
|
||||
|
||||
+6
@@ -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);
|
||||
|
||||
/**
|
||||
* 新增优惠券
|
||||
*/
|
||||
|
||||
+1
-1
@@ -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());
|
||||
|
||||
+21
-4
@@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
+10
@@ -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)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增优惠券
|
||||
*/
|
||||
|
||||
+6
-1
@@ -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);
|
||||
|
||||
Reference in new issue
Block a user