4cbe87aa创建于 2025年9月15日历史提交
package com.TinyPro.controller;

import com.TinyPro.annotation.PermissionAnnotation;
import com.TinyPro.annotation.Reject;
import com.TinyPro.entity.dto.CreateI18Dto;
import com.TinyPro.entity.dto.UpdateI18Dto;
import com.TinyPro.entity.page.PageWrapper;
import com.TinyPro.entity.po.I18;
import com.TinyPro.entity.vo.I18Vo;
import com.TinyPro.service.II18Service;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.repository.query.Param;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Map;

@RestController
@RequestMapping("/i18")
public class I18Controller {
    @Autowired
    private II18Service i18Service;

    @Reject
    @PermissionAnnotation("i18n::add")
    @PostMapping("")
    public ResponseEntity<String> createI18Dto(@Valid @RequestBody CreateI18Dto createI18Dto) {
        return i18Service.create(createI18Dto);
    }

    @GetMapping("/format")
    public ResponseEntity<Map<String, Map<String, String>>> getFormat(HttpServletRequest request) {
        Map<String, Map<String, String>> result = i18Service.getFormat(request);
        return new ResponseEntity<>(result, HttpStatus.OK);
    }


    @GetMapping
    @PermissionAnnotation("i18n::query")
    public ResponseEntity<PageWrapper<I18Vo>> findAll(@RequestParam(defaultValue = "1") Integer page,
                                                      @RequestParam(defaultValue = "0") Integer limit,
                                                      @RequestParam(required = false) Integer all,
                                                      @RequestParam (required = false)List<Integer> lang,
                                                      @RequestParam(required = false) String key,
                                                      @RequestParam(required = false) String content) {
        boolean allBool = !(all != null && all != 0);
        return i18Service.findAll(page, limit, allBool, lang, key, content);
    }

    @PermissionAnnotation("i18n::query")
    @GetMapping("{id}")
    public ResponseEntity<I18Vo> findOne(@PathVariable Integer id) {
        return new ResponseEntity<I18Vo>(i18Service.getI18ById(id), HttpStatus.OK);
    }

    @PatchMapping("/{id}")
    @PermissionAnnotation("i18n::update")
    public ResponseEntity<I18Vo> update(
            @PathVariable Long id,
            @RequestBody  UpdateI18Dto dto) {
        return i18Service.updateByi18nId(id, dto);
    }

    @Reject()
    @PermissionAnnotation("i18n::remove")
    @DeleteMapping("/{id}")
    public ResponseEntity<I18> remove(@PathVariable Integer id) {
        I18 result = i18Service.removei18ById(id);
        return new ResponseEntity<>(result, HttpStatus.OK);
    }
    @Reject()
    @PostMapping("/batch")
    @PermissionAnnotation("i18n::batch-remove")
    public ResponseEntity<List<I18>> batchRemove(@RequestBody List<Long> ids) {
        return this.i18Service.batchDeleteUser(ids);
    }
}