diff --git a/sql/mysql/trade/brokerage.sql b/sql/mysql/trade/brokerage.sql new file mode 100644 index 0000000..f16af06 --- /dev/null +++ b/sql/mysql/trade/brokerage.sql @@ -0,0 +1,18 @@ +-- ---------------------------- +-- Table structure for trade_brokerage_code +-- ---------------------------- +DROP TABLE IF EXISTS `trade_brokerage_code`; +CREATE TABLE `trade_brokerage_code` +( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '收件地址编号', + `member_id` bigint NOT NULL COMMENT '用户编号', + `poster_pic` varchar(256) NOT NULL COMMENT '邀请海报图', + `code` varchar(32) NOT NULL COMMENT '邀请码', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 32 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '分销码'; \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/ErrorCodeConstants.java b/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/ErrorCodeConstants.java index 9d2b118..6b86dbe 100644 --- a/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/ErrorCodeConstants.java +++ b/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/ErrorCodeConstants.java @@ -107,5 +107,6 @@ public interface ErrorCodeConstants { ErrorCode BROKERAGE_WITHDRAW_STATUS_NOT_AUDITING = new ErrorCode(1_011_008_001, "佣金提现记录状态不是审核中"); ErrorCode BROKERAGE_WITHDRAW_MIN_PRICE = new ErrorCode(1_011_008_002, "提现金额不能低于 {} 元"); ErrorCode BROKERAGE_WITHDRAW_USER_BALANCE_NOT_ENOUGH = new ErrorCode(1_011_008_003, "您当前最多可提现 {} 元"); + ErrorCode BROKERAGE_CODE_NOT_EXISTS = new ErrorCode(1_011_008_004, "分销码不存在"); } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/BrokerageCodeController.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/BrokerageCodeController.java new file mode 100644 index 0000000..5d73c41 --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/BrokerageCodeController.java @@ -0,0 +1,76 @@ +package cn.iocoder.yudao.module.trade.controller.admin.brokerage; + +import cn.iocoder.yudao.module.trade.controller.admin.brokerage.vo.code.BrokerageCodePageReqVO; +import cn.iocoder.yudao.module.trade.controller.admin.brokerage.vo.code.BrokerageCodeRespVO; +import cn.iocoder.yudao.module.trade.controller.admin.brokerage.vo.code.BrokerageCodeSaveReqVO; +import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageCodeDO; +import cn.iocoder.yudao.module.trade.service.brokerage.BrokerageCodeService; +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + + +@Tag(name = "管理后台 - 分销码") +@RestController +@RequestMapping("/trade/brokerage-code") +@Validated +public class BrokerageCodeController { + + @Resource + private BrokerageCodeService brokerageCodeService; + + @PostMapping("/create") + @Operation(summary = "创建分销码") + @PreAuthorize("@ss.hasPermission('trade:brokerage-code:create')") + public CommonResult createBrokerageCode(@Valid @RequestBody BrokerageCodeSaveReqVO createReqVO) { + return success(brokerageCodeService.createBrokerageCode(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新分销码") + @PreAuthorize("@ss.hasPermission('trade:brokerage-code:update')") + public CommonResult updateBrokerageCode(@Valid @RequestBody BrokerageCodeSaveReqVO updateReqVO) { + brokerageCodeService.updateBrokerageCode(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除分销码") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('trade:brokerage-code:delete')") + public CommonResult deleteBrokerageCode(@RequestParam("id") Long id) { + brokerageCodeService.deleteBrokerageCode(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得分销码") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('trade:brokerage-code:query')") + public CommonResult getBrokerageCode(@RequestParam("id") Long id) { + BrokerageCodeDO brokerageCode = brokerageCodeService.getBrokerageCode(id); + return success(BeanUtils.toBean(brokerageCode, BrokerageCodeRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得分销码分页") + @PreAuthorize("@ss.hasPermission('trade:brokerage-code:query')") + public CommonResult> getBrokerageCodePage(@Valid BrokerageCodePageReqVO pageReqVO) { + PageResult pageResult = brokerageCodeService.getBrokerageCodePage(pageReqVO); + return success(BeanUtils.toBean(pageResult, BrokerageCodeRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/vo/code/BrokerageCodePageReqVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/vo/code/BrokerageCodePageReqVO.java new file mode 100644 index 0000000..cde832c --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/vo/code/BrokerageCodePageReqVO.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.trade.controller.admin.brokerage.vo.code; + +import lombok.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 分销码分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BrokerageCodePageReqVO extends PageParam { + + @Schema(description = "用户编号", example = "31166") + private Long memberId; + + @Schema(description = "邀请海报图") + private String posterPic; + + @Schema(description = "邀请码") + private String code; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/vo/code/BrokerageCodeRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/vo/code/BrokerageCodeRespVO.java new file mode 100644 index 0000000..873d5e2 --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/vo/code/BrokerageCodeRespVO.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.trade.controller.admin.brokerage.vo.code; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 分销码 Response VO") +@Data +@ExcelIgnoreUnannotated +public class BrokerageCodeRespVO { + + @Schema(description = "收件地址编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "27682") + @ExcelProperty("收件地址编号") + private Long id; + + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "31166") + @ExcelProperty("用户编号") + private Long memberId; + + @Schema(description = "邀请海报图", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("邀请海报图") + private String posterPic; + + @Schema(description = "邀请码", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("邀请码") + private String code; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/vo/code/BrokerageCodeSaveReqVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/vo/code/BrokerageCodeSaveReqVO.java new file mode 100644 index 0000000..17d8507 --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/vo/code/BrokerageCodeSaveReqVO.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.trade.controller.admin.brokerage.vo.code; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 分销码新增/修改 Request VO") +@Data +public class BrokerageCodeSaveReqVO { + + @Schema(description = "收件地址编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "27682") + private Long id; + + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "31166") + @NotNull(message = "用户编号不能为空") + private Long memberId; + + @Schema(description = "邀请海报图", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "邀请海报图不能为空") + private String posterPic; + + @Schema(description = "邀请码", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "邀请码不能为空") + private String code; + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/config/vo/AppTradeConfigRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/config/vo/AppTradeConfigRespVO.java index c80472c..7ccab62 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/config/vo/AppTradeConfigRespVO.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/config/vo/AppTradeConfigRespVO.java @@ -41,4 +41,10 @@ public class AppTradeConfigRespVO { @Schema(description = "提现方式", requiredMode = Schema.RequiredMode.REQUIRED, example = "[1, 2]") private List brokerageWithdrawTypes; + @Schema(description = "一级返佣比例", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") + private Integer brokerageFirstPercent; + + @Schema(description = "二级返佣比例", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") + private Integer brokerageSecondPercent; + } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/brokerage/BrokerageCodeDO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/brokerage/BrokerageCodeDO.java new file mode 100644 index 0000000..45e04b4 --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/brokerage/BrokerageCodeDO.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.module.trade.dal.dataobject.brokerage; + +import lombok.*; + +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; + +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 分销码 DO + */ +@TableName("trade_brokerage_code") +@KeySequence("trade_brokerage_code_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class BrokerageCodeDO extends BaseDO { + + /** + * 收件地址编号 + */ + @TableId + private Long id; + + /** + * 用户编号 + */ + private Long memberId; + + /** + * 邀请海报图 + */ + private String posterPic; + + /** + * 邀请码 + */ + private String code; + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/brokerage/BrokerageCodeMapper.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/brokerage/BrokerageCodeMapper.java new file mode 100644 index 0000000..5a09e7a --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/brokerage/BrokerageCodeMapper.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.trade.dal.mysql.brokerage; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.trade.controller.admin.brokerage.vo.code.BrokerageCodePageReqVO; +import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageCodeDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 分销码 Mapper + */ +@Mapper +public interface BrokerageCodeMapper extends BaseMapperX { + + default PageResult selectPage(BrokerageCodePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(BrokerageCodeDO::getMemberId, reqVO.getMemberId()) + .eqIfPresent(BrokerageCodeDO::getPosterPic, reqVO.getPosterPic()) + .eqIfPresent(BrokerageCodeDO::getCode, reqVO.getCode()) + .betweenIfPresent(BrokerageCodeDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(BrokerageCodeDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageCodeService.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageCodeService.java new file mode 100644 index 0000000..c9abf87 --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageCodeService.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.trade.service.brokerage; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.trade.controller.admin.brokerage.vo.code.BrokerageCodePageReqVO; +import cn.iocoder.yudao.module.trade.controller.admin.brokerage.vo.code.BrokerageCodeSaveReqVO; +import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageCodeDO; + +/** + * 分销码 Service 接口 + */ +public interface BrokerageCodeService { + + /** + * 创建分销码 + */ + Long createBrokerageCode(@Valid BrokerageCodeSaveReqVO createReqVO); + + /** + * 更新分销码 + */ + void updateBrokerageCode(@Valid BrokerageCodeSaveReqVO updateReqVO); + + /** + * 删除分销码 + */ + void deleteBrokerageCode(Long id); + + /** + * 获得分销码 + */ + BrokerageCodeDO getBrokerageCode(Long id); + + /** + * 获得分销码分页 + */ + PageResult getBrokerageCodePage(BrokerageCodePageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageCodeServiceImpl.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageCodeServiceImpl.java new file mode 100644 index 0000000..873ed8f --- /dev/null +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageCodeServiceImpl.java @@ -0,0 +1,70 @@ +package cn.iocoder.yudao.module.trade.service.brokerage; + +import cn.iocoder.yudao.module.trade.controller.admin.brokerage.vo.code.BrokerageCodePageReqVO; +import cn.iocoder.yudao.module.trade.controller.admin.brokerage.vo.code.BrokerageCodeSaveReqVO; +import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageCodeDO; +import cn.iocoder.yudao.module.trade.dal.mysql.brokerage.BrokerageCodeMapper; +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; + +import java.util.*; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.BROKERAGE_CODE_NOT_EXISTS; + +/** + * 分销码 Service 实现类 + */ +@Service +@Validated +public class BrokerageCodeServiceImpl implements BrokerageCodeService { + + @Resource + private BrokerageCodeMapper brokerageCodeMapper; + + @Override + public Long createBrokerageCode(BrokerageCodeSaveReqVO createReqVO) { + // 插入 + BrokerageCodeDO brokerageCode = BeanUtils.toBean(createReqVO, BrokerageCodeDO.class); + brokerageCodeMapper.insert(brokerageCode); + // 返回 + return brokerageCode.getId(); + } + + @Override + public void updateBrokerageCode(BrokerageCodeSaveReqVO updateReqVO) { + // 校验存在 + validateBrokerageCodeExists(updateReqVO.getId()); + // 更新 + BrokerageCodeDO updateObj = BeanUtils.toBean(updateReqVO, BrokerageCodeDO.class); + brokerageCodeMapper.updateById(updateObj); + } + + @Override + public void deleteBrokerageCode(Long id) { + // 校验存在 + validateBrokerageCodeExists(id); + // 删除 + brokerageCodeMapper.deleteById(id); + } + + private void validateBrokerageCodeExists(Long id) { + if (brokerageCodeMapper.selectById(id) == null) { + throw exception(BROKERAGE_CODE_NOT_EXISTS); + } + } + + @Override + public BrokerageCodeDO getBrokerageCode(Long id) { + return brokerageCodeMapper.selectById(id); + } + + @Override + public PageResult getBrokerageCodePage(BrokerageCodePageReqVO pageReqVO) { + return brokerageCodeMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/comauth/AppComAuthController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/comauth/AppComAuthController.java index a92839d..ba2aca8 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/comauth/AppComAuthController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/comauth/AppComAuthController.java @@ -53,4 +53,11 @@ public class AppComAuthController { return success(comAuthService.getUserAuth(getLoginUserId())); } + @GetMapping("/cancel") + @Operation(summary = "取消认证") + public CommonResult cancelMemberUserAuth(@RequestParam("authId") Long authId) { + comAuthService.cancelUserAuth(authId, getLoginUserId()); + return success(true); + } + } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/comauth/ComAuthService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/comauth/ComAuthService.java index 9fc2be6..7f7cc1d 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/comauth/ComAuthService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/comauth/ComAuthService.java @@ -39,6 +39,11 @@ public interface ComAuthService { */ void deleteAuth(Long id); + /** + * 取消认证 + */ + void cancelUserAuth(Long authId, Long loginUserId); + /** * 获得用户认证 */ diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/comauth/ComAuthServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/comauth/ComAuthServiceImpl.java index e555dd5..0663899 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/comauth/ComAuthServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/comauth/ComAuthServiceImpl.java @@ -202,6 +202,22 @@ public class ComAuthServiceImpl implements ComAuthService { authMapper.deleteById(id); } + /** + * 取消认证 + */ + @Override + public void cancelUserAuth(Long authId, Long loginUserId) { + ComAuthDO detail = authMapper.selectOne(new LambdaQueryWrapperX() + .eq(ComAuthDO::getId, authId) + .eq(ComAuthDO::getAuthMemberId, loginUserId) + ); + if (ObjectUtil.isEmpty(detail)) { + throw exception(MemberErrorCode.COM_AUTH_NOT_EXISTS); + } + // 删除 + authMapper.deleteById(detail.getId()); + } + /** * 获得用户认证 */ diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/RecentServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/RecentServiceImpl.java index 98db7f8..edc2b7e 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/RecentServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/RecentServiceImpl.java @@ -174,6 +174,7 @@ public class RecentServiceImpl implements RecentService { if (ObjectUtil.isNotEmpty(dto.getMemberRecentId())) { validateRecentExists(dto.getMemberRecentId()); } + List likeActionList = Arrays.asList(MemberRecentOperateEnum.MEMBER_COLLECT, MemberRecentOperateEnum.RECENT_LIKE); OperationDO operationDO = operationMapper.selectOne(new LambdaQueryWrapperX() .eq(OperationDO::getMemberId, dto.getMemberId()) .eq(OperationDO::getOperatorMemberId, dto.getOperatorMemberId()) @@ -183,21 +184,23 @@ public class RecentServiceImpl implements RecentService { MemberRecentOperateEnum.RECENT_LIKE.getType() )) ); - if (ObjectUtil.isNotEmpty(operationDO)) { - if (ObjectUtil.isEmpty(operationDO.getCancelTime())) { - // 取消 - operationDO.setCancelTime(LocalDateTime.now()); - operationMapper.updateById(operationDO); - return operationDO.getId(); - } - // 重新点赞 - else { - LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper() - .eq(OperationDO::getId, operationDO.getId()) - .set(OperationDO::getTapTime, LocalDateTime.now()) - .set(OperationDO::getCancelTime, null); - operationMapper.update(updateWrapper); - return operationDO.getId(); + if (likeActionList.contains(dto.getAction())) { + if (ObjectUtil.isNotEmpty(operationDO)) { + if (ObjectUtil.isEmpty(operationDO.getCancelTime())) { + // 取消 + operationDO.setCancelTime(LocalDateTime.now()); + operationMapper.updateById(operationDO); + return operationDO.getId(); + } + // 重新点赞 + else { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper() + .eq(OperationDO::getId, operationDO.getId()) + .set(OperationDO::getTapTime, LocalDateTime.now()) + .set(OperationDO::getCancelTime, null); + operationMapper.update(updateWrapper); + return operationDO.getId(); + } } } operationDO = new OperationDO(); @@ -583,9 +586,9 @@ public class RecentServiceImpl implements RecentService { List recentIds = list.stream().map(RecentPageResVo::getId).collect(Collectors.toList()); List operationStatusList = operationService.getRecentOperationStatus(operateUserId, recentIds); if (ObjectUtil.isEmpty(operationStatusList)) return; - Map totalMap = IterUtil.toMap(operationStatusList, OperationStatusVo::getMemberId); + Map totalMap = IterUtil.toMap(operationStatusList, OperationStatusVo::getMemberRecentId); for (RecentPageResVo entity : list) { - OperationStatusVo target = totalMap.get(entity.getMemberId()); + OperationStatusVo target = totalMap.get(entity.getId()); if (ObjectUtil.isEmpty(target)) { entity.setRecentOperationStatus(new OperationStatusVo()); continue;