From efdb99f8cecc4afb592afad79c761081d5d5cf22 Mon Sep 17 00:00:00 2001
From: lee <4766465@qq.com>
Date: Wed, 18 Dec 2024 13:27:00 +0800
Subject: [PATCH] init

---
 yami-shop-api/src/main/java/com/yami/shop/api/controller/CompanyAuditingController.java |   84 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 84 insertions(+), 0 deletions(-)

diff --git a/yami-shop-api/src/main/java/com/yami/shop/api/controller/CompanyAuditingController.java b/yami-shop-api/src/main/java/com/yami/shop/api/controller/CompanyAuditingController.java
new file mode 100644
index 0000000..6865793
--- /dev/null
+++ b/yami-shop-api/src/main/java/com/yami/shop/api/controller/CompanyAuditingController.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
+ *
+ * https://www.mall4j.com/
+ *
+ * 未经允许,不可做商业用途!
+ *
+ * 版权所有,侵权必究!
+ */
+package com.yami.shop.api.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.yami.shop.bean.enums.AuditStatus;
+import com.yami.shop.bean.model.CompanyAuditing;
+import com.yami.shop.bean.model.ShopCompany;
+import com.yami.shop.common.exception.YamiShopBindException;
+import com.yami.shop.common.response.ResponseEnum;
+import com.yami.shop.common.response.ServerResponseEntity;
+import com.yami.shop.security.api.util.SecurityUtils;
+import com.yami.shop.service.CompanyAuditingService;
+import com.yami.shop.service.ShopDetailService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.Objects;
+
+/**
+ * @author chiley
+ * @date 2022/9/21 10:22
+ */
+
+@RestController
+@RequestMapping("/p/shop/companyAuditing")
+@Tag(name = "变更工商信息接口")
+public class CompanyAuditingController {
+
+    @Autowired
+    private CompanyAuditingService companyAuditingService;
+    @Autowired
+    private ShopDetailService shopDetailService;
+
+    @PostMapping("/applyChangeCompanyInfo")
+    @Operation(summary = "申请变更工商信息" , description = "申请变更工商信息")
+    @PreAuthorize("@pms.hasPermission('shop:shopCompany:applyChange')")
+    public ServerResponseEntity<Void> applyChangeCompanyInfo(@RequestBody @Valid ShopCompany shopCompany) {
+        Long shopId = shopDetailService.getShopDetailByUserId(SecurityUtils.getUser().getUserId()).getShopId();
+        String userId = SecurityUtils.getUser().getUserId();
+        // 校验是否已经存在申请中记录
+        CompanyAuditing latestCompanyAuditing = companyAuditingService.getOne(new LambdaQueryWrapper<CompanyAuditing>().eq(CompanyAuditing::getShopId, shopId).orderByDesc(CompanyAuditing::getCreateTime), false);
+        if (Objects.nonNull(latestCompanyAuditing) && Objects.equals(latestCompanyAuditing.getStatus(), AuditStatus.WAITAUDIT.value())) {
+            throw new YamiShopBindException("yami.shop.company.repeat.application");
+        }
+        shopCompany.setShopId(shopId);
+        companyAuditingService.applyChangeCompanyInfo(shopCompany, userId);
+        return ServerResponseEntity.success();
+    }
+
+    @PutMapping("/revoke")
+    @Operation(summary = "撤销申请" , description = "撤销申请")
+    @PreAuthorize("@pms.hasPermission('shop:shopCompany:revoke')")
+    public ServerResponseEntity<Void> revoke(@RequestBody Long companyAuditingId) {
+        CompanyAuditing companyAuditing = companyAuditingService.getById(companyAuditingId);
+        if (Objects.isNull(companyAuditing)) {
+            return ServerResponseEntity.success();
+        }
+        if (!Objects.equals(companyAuditing.getShopId(), shopDetailService.getShopDetailByUserId(SecurityUtils.getUser().getUserId()).getShopId())) {
+            return ServerResponseEntity.fail(ResponseEnum.UNAUTHORIZED);
+        }
+        companyAuditingService.revoke(companyAuditing);
+        return ServerResponseEntity.success();
+    }
+
+
+    @GetMapping("/auditInfo")
+    @Operation(summary = "查看申请审核情况" , description = "查看申请审核情况")
+    public ServerResponseEntity<CompanyAuditing> auditInfo() {
+        Long shopId = shopDetailService.getShopDetailByUserId(SecurityUtils.getUser().getUserId()).getShopId();
+        return ServerResponseEntity.success(companyAuditingService.getAuditInfo(shopId));
+    }
+}

--
Gitblit v1.9.3