import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.util.StringUtils;

@RestController
public class CarModelAdminController {

    @Autowired
    private CarModelAdminService carModelAdminService;

    @Autowired
    private RedisTemplate redisTemplate;

    @Autowired
    private SpringToGameService springToGameService;

    @Data
    public static class CarModelAdminUpdateParam {
        private Long carModelAdminId;
        private String carModelName;
        private String carProfile;
        private String model;
        private String year;
        private Integer frontAerialBeforeDistance;
        private Integer frontAerialLeftDistance;
        private Integer frontAerialRightDistance;
        private Integer behindAerialAfterDistance;
        private Integer behindAerialLeftDistance;
        private Integer behindAerialRightDistance;
        private Integer behindAerialHeight;
        private String phone;
        private String code;
    }

    private String getParam(Map<String, Object> params, String paramName) {
        Object param = params.get(paramName);
        if (param == null || StringUtils.isEmpty(param.toString())) {
            return null;
        } else {
            return param.toString();
        }
    }

    private void setCarModelAdminInfo(CarModelAdmin carModelAdmin, Map<String, Object> params) {
        String carModelName = getParam(params, "carModelName");
        String carProfile = getParam(params, "carProfile");
        String model = getParam(params, "model");
        String year = getParam(params, "year");
        Integer frontAerialBeforeDistance = (Integer) params.get("frontAerialBeforeDistance");
        Integer frontAerialLeftDistance = (Integer) params.get("frontAerialLeftDistance");
        Integer frontAerialRightDistance = (Integer) params.get("frontAerialRightDistance");
        Integer behindAerialAfterDistance = (Integer) params.get("behindAerialAfterDistance");
        Integer behindAerialLeftDistance = (Integer) params.get("behindAerialLeftDistance");
        Integer behindAerialRightDistance = (Integer) params.get("behindAerialRightDistance");
        Integer behindAerialHeight = (Integer) params.get("behindAerialHeight");

        if (!StringUtils.isEmpty(carModelName)) {
            carModelAdmin.setCarModelName(carModelName);
        }

        if (!StringUtils.isEmpty(carProfile)) {
            carModelAdmin.setCarProfile(carProfile);
        }

        if (!StringUtils.isEmpty(model)) {
            carModelAdmin.setModel(model);
        }

        if (!StringUtils.isEmpty(year)) {
            carModelAdmin.setYear(year);
        }

        if (frontAerialBeforeDistance != null) {
            carModelAdmin.setFrontAerialBeforeDistance(frontAerialBeforeDistance);
        }

        if (frontAerialLeftDistance != null) {
            carModelAdmin.setFrontAerialLeftDistance(frontAerialLeftDistance);
        }

        if (frontAerialRightDistance != null) {
            carModelAdmin.setFrontAerialRightDistance(frontAerialRightDistance);
        }

        if (behindAerialAfterDistance != null) {
            carModelAdmin.setBehindAerialAfterDistance(behindAerialAfterDistance);
        }

        if (behindAerialLeftDistance != null) {
            carModelAdmin.setBehindAerialLeftDistance(behindAerialLeftDistance);
        }

        if (behindAerialRightDistance != null) {
            carModelAdmin.setBehindAerialRightDistance(behindAerialRightDistance);
        }

        if (behindAerialHeight != null) {
            carModelAdmin.setBehindAerialHeight(behindAerialHeight);
        }
    }

    @PostMapping("/updateOneCarModelAdminByID")
    public Result<Object> updateOneCarModelAdminByID(@RequestBody CarModelAdminUpdateParam param, HttpServletRequest request) {
        //权限验证
        String token = (String) request.getAttribute("claims_admin");
        if (token == null || "".equals(token)) {
            throw new RuntimeException("权限不足!");
        }

        log.info("updateOneCarModelByID的请求报文:" + param);

        Long carModelAdminId = param.getCarModelAdminId();
        if (carModelAdminId == null) {
            log.info("carModelAdminId为null");
            return new Result<>(ResultCode.FAIL);
        }

        String phone = param.getPhone();
        String userCode = param.getCode();

        if (StringUtils.isEmpty(phone)) {
            log.info("phone为空!");
            return new Result<>(ResultCode.FAIL);
        }

        if (StringUtils.isEmpty(userCode)) {
            log.info("userCode为空!");
            return new Result<>(ResultCode.FAIL);
        }

        String carModelAdminUpdate_uuid = redisTemplate.opsForValue().get("carModelAdminUpdate_uuid");
        String myCode = redisTemplate.opsForValue().get("carModelAdminUpdate_"+carModelAdminUpdate_uuid+phone);

        if (StringUtils.isEmpty(myCode)) {
            log.info("myCode为空!");
            return new Result<>(ResultCode.FAIL);
        }

        if (!myCode.equals(userCode)) {
            log.info("验证码错误!");
            return new Result<>(ResultCode.CODE_FALSE);
        }

        log.info("验证码正确!");

        //先查询出需要修改的车辆模型对象
        CarModelAdmin carModelAdmin = carModelAdminService.queryOneCarModelAdminByID(carModelAdminId);

        if (carModelAdmin == null) {
            log.info("carModelAdmin为空!");
            return new Result<>(ResultCode.FAIL);
        }

        //将前端传过来需要修改的信息赋值给上面查出的车辆模型对象
        setCarModelAdminInfo(carModelAdmin, param);

        //调用修改车辆模型方法
        int ret = carModelAdminService.updateOneCarModelAdminByID(carModelAdmin);

        //操作成功
        if (ret > 0) {
            log.info("修改车辆模型成功!" + carModelAdmin);

            //通知游戏端修改车辆模型
            springToGameService.reloadUpdateOneCarModelAdmin(carModelAdmin);

            return new Result<>(ResultCode.SUCCESS);
        } else {
            log.info("修改车辆模型失败!");
            return new Result<>(ResultCode.FAIL);
        }
    }
}
管理员修改车辆模型信息接口

原文地址: https://www.cveoy.top/t/topic/ot2N 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录