package com.trafficaudit.holiday.controller;
|
|
import com.trafficaudit.common.Result;
|
import com.trafficaudit.holiday.HolidayConstants;
|
import com.trafficaudit.holiday.entity.HolidayCalendar;
|
import com.trafficaudit.holiday.entity.HolidayPassengerCoefficient;
|
import com.trafficaudit.holiday.service.HolidayConfigService;
|
import com.trafficaudit.security.utils.JwtUtils;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestHeader;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import javax.annotation.Resource;
|
import java.util.List;
|
import java.util.Map;
|
|
@RestController
|
@RequestMapping("/api/holiday/config")
|
public class HolidayConfigController {
|
|
@Resource
|
private HolidayConfigService configService;
|
@Resource
|
private JwtUtils jwtUtils;
|
|
@GetMapping("/options")
|
public Result<Map<String, Object>> options() {
|
return Result.ok(HolidayConstants.optionMap());
|
}
|
|
@GetMapping("/holidays")
|
public Result<List<HolidayCalendar>> holidays(@RequestParam(value = "year", required = false) Integer year,
|
@RequestParam(value = "holidayType", required = false) String holidayType) {
|
return Result.ok(configService.listHolidays(year, holidayType));
|
}
|
|
@PostMapping("/holidays/save")
|
public Result<HolidayCalendar> saveHoliday(@RequestHeader(value = "Authorization", required = false) String auth,
|
@RequestBody Map<String, Object> params) {
|
if (!isAdmin(auth)) return Result.error(403, "仅 admin 可以管理节假日配置");
|
try {
|
return Result.ok(configService.saveHoliday(params));
|
} catch (Exception e) {
|
return Result.error(400, e.getMessage());
|
}
|
}
|
|
@PostMapping("/holidays/delete")
|
public Result<Void> deleteHoliday(@RequestHeader(value = "Authorization", required = false) String auth,
|
@RequestParam("id") Long id) {
|
if (!isAdmin(auth)) return Result.error(403, "仅 admin 可以管理节假日配置");
|
try {
|
configService.deleteHoliday(id);
|
return Result.ok();
|
} catch (Exception e) {
|
return Result.error(400, e.getMessage());
|
}
|
}
|
|
@GetMapping("/coefficients")
|
public Result<List<HolidayPassengerCoefficient>> coefficients(@RequestParam(value = "year", required = false) Integer year) {
|
return Result.ok(configService.listCoefficients(year));
|
}
|
|
@PostMapping("/coefficients/save")
|
public Result<HolidayPassengerCoefficient> saveCoefficient(@RequestHeader(value = "Authorization", required = false) String auth,
|
@RequestBody Map<String, Object> params) {
|
if (!isAdmin(auth)) return Result.error(403, "仅 admin 可以管理客运系数");
|
try {
|
return Result.ok(configService.saveCoefficient(params));
|
} catch (Exception e) {
|
return Result.error(400, e.getMessage());
|
}
|
}
|
|
@PostMapping("/coefficients/delete")
|
public Result<Void> deleteCoefficient(@RequestHeader(value = "Authorization", required = false) String auth,
|
@RequestParam("id") Long id) {
|
if (!isAdmin(auth)) return Result.error(403, "仅 admin 可以管理客运系数");
|
try {
|
configService.deleteCoefficient(id);
|
return Result.ok();
|
} catch (Exception e) {
|
return Result.error(400, e.getMessage());
|
}
|
}
|
|
private boolean isAdmin(String auth) {
|
return "admin".equals(jwtUtils.resolveUsername(auth));
|
}
|
}
|