package com.oying.modules.pc.store.rest; import cn.hutool.core.collection.ListUtil; import com.oying.annotation.Log; import com.oying.modules.pc.common.core.domain.R; import com.oying.modules.pc.store.domain.StoreQualification; import com.oying.modules.pc.store.domain.dto.StoreQualificationCreateRequest; import com.oying.modules.pc.store.domain.dto.StoreQualificationQueryCriteria; import com.oying.modules.pc.store.domain.dto.StoreQualificationUpdateRequest; import com.oying.modules.pc.store.service.StoreQualificationService; import com.oying.modules.pc.store.view.StoreQualificationMerchantView; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; /** * @author lzp * @date 2025-04-23 **/ @RestController @RequiredArgsConstructor @Api(tags = "店铺资质(商户端)") @RequestMapping("/api/pc/merchant/store/{storeId}/qualification") public class StoreQualificationMerchantController { private final StoreQualificationService storeQualificationService; @GetMapping("/list") @ApiOperation("查询店铺资质") //@PreAuthorize("@el.check('merchant:storeQualification:list') " + // "and @storeMerchantOwnershipService.check(#storeId)") public ResponseEntity getList(@PathVariable Long storeId) { StoreQualificationQueryCriteria criteria = new StoreQualificationQueryCriteria(); criteria.setStoreId(storeId); List storeQualificationList = storeQualificationService.queryAll(criteria); List viewList = Optional.ofNullable(storeQualificationList).orElse(ListUtil.empty()).stream().map(i -> { StoreQualificationMerchantView view = new StoreQualificationMerchantView(); view.setId(i.getQualificationId()); view.setType(i.getQualificationType()); view.setName(i.getQualificationName()); view.setImageUrl(""); return view; }).collect(Collectors.toList()); return ResponseEntity.ok(R.success(viewList)); } @PostMapping @Log("新增店铺资质") @ApiOperation("新增店铺资质") //@PreAuthorize("@el.check('merchant:storeQualification:add') " + // "and @storeMerchantOwnershipService.check(#storeId)") public ResponseEntity create(@PathVariable Long storeId, @Validated @RequestBody StoreQualificationCreateRequest request) { StoreQualification resources = new StoreQualification(); resources.setStoreId(storeId); resources.setQualificationType(request.getType()); resources.setQualificationImageId(request.getImageUploadFileId()); storeQualificationService.create(resources); return ResponseEntity.status(HttpStatus.CREATED).build(); } @PutMapping("/{qualificationId}") @Log("修改店铺资质") @ApiOperation("修改店铺资质") //@PreAuthorize("@el.check('merchant:storeQualification:edit') " + // "and @storeMerchantOwnershipService.check(#storeId)") public ResponseEntity update(@PathVariable Long storeId, @PathVariable Long qualificationId, @Validated @RequestBody StoreQualificationUpdateRequest request) { StoreQualification resources = new StoreQualification(); resources.setQualificationId(qualificationId); resources.setStoreId(storeId); resources.setQualificationType(request.getType()); resources.setQualificationImageId(request.getImageUploadFileId()); storeQualificationService.update(resources); return ResponseEntity.noContent().build(); } @DeleteMapping @Log("删除店铺资质") @ApiOperation("删除店铺资质") //@PreAuthorize("@el.check('merchant:storeQualification:batchDel') " + // "and @storeMerchantOwnershipService.check(#storeId)") public ResponseEntity batchDel(@ApiParam(value = "传ID数组[]") @RequestBody List ids) { storeQualificationService.deleteAll(ids); return ResponseEntity.noContent().build(); } }