ChangeController.java 4.49 KB
package com.uccc.number.controller;

import com.alibaba.fastjson.JSONObject;
import com.auth0.jwt.JWT;
import com.uccc.number.domain.*;
import com.uccc.number.domain.Number;
import com.uccc.number.exception.ApiException;
import com.uccc.number.service.ImportService;
import com.uccc.number.service.NumberService;
import com.uccc.number.service.RabbitMqService;
import com.uccc.pretty.common.Result;
import com.uccc.pretty.common.Store;
import com.uccc.pretty.common.SystemLog;
import com.uccc.pretty.constants.ErrorCode;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import static com.uccc.pretty.constants.ActionEnum.*;
import static com.uccc.pretty.constants.ResultEnum.RESULT_ERR;
import static com.uccc.pretty.constants.ResultEnum.RESULT_OK;

@RestController
@RequestMapping("number/change/")
public class ChangeController {
    private Logger logger = LoggerFactory.getLogger(ChangeController.class);

    @Autowired
    private ImportService importService;
    @Autowired
    private NumberService numberService;


    @RequestMapping(value = "bind_change_num", method = RequestMethod.POST)
    public Result bindChangeNumbers(@RequestParam String ip,
                                   @RequestBody List<ChangeNum> bindChangeNum,
                                   HttpServletRequest request) {
        if (bindChangeNum.size() == 0) throw new ApiException(ErrorCode.BIND_FAILED);
        List<String> errlist = numberService.bindChangeNumbers(bindChangeNum);
        String token = request.getHeader("token");
        String userId = JWT.decode(token).getAudience().get(0);
        SystemLog systemLog = new SystemLog(Long.parseLong(userId), ADD_CHANGE_NUM.getMessage(), ADD_CHANGE_NUM.getMessage(), new Date(), "用户新增改价区号码 用户:" + userId, ip);
        importService.sendSystemLogToRabbitMq(JSONObject.toJSONString(systemLog));
        if (errlist.size() > 0) {
            return new Result().fail(ErrorCode.CHANGE_PRICE_FAILED, errlist);
        }
        return new Result().success(null);
    }

    @RequestMapping(value = "delete_change_num", method = RequestMethod.DELETE)
    public Result daleteChangeNumbers(@RequestParam String ip,
                                     @RequestParam String number,
                                     HttpServletRequest request) {
        String token = request.getHeader("token");
        String userId = JWT.decode(token).getAudience().get(0);
        if (StringUtils.isEmpty(number)) throw new ApiException(ErrorCode.INVALID_PARAM);
        numberService.deleteChangeNum(number, userId);
        SystemLog systemLog = new SystemLog(Long.parseLong(userId), DELETE_CHANGE_NUM.getMessage(), DELETE_CHANGE_NUM.getMessage(), new Date(),  userId + "删除改价区号码:" + number, ip);
        importService.sendSystemLogToRabbitMq(JSONObject.toJSONString(systemLog));
        return new Result().success("");
    }

    @RequestMapping(value = "change_num_list", method = RequestMethod.GET)
    public Result changeNumList(@RequestParam(name = "city", required = false) String city,
                               @RequestParam(name = "province", required = false) String province,
                               @RequestParam(name = "storeId", required = false) Long storeId,
                               @RequestParam(name = "number", required = false) String number,
                               @RequestParam(name = "pageSize") Integer pageSize,
                               @RequestParam(name = "currentPage") Integer currentPage) {
        Store checkStore = null;
        if (storeId != null) {
            checkStore = numberService.checkStoreByMid(storeId);
            if (checkStore == null) throw new ApiException(ErrorCode.STORE_NOT_FOUND);
        }
        Long userId = null;
        if (checkStore != null) {
            userId = checkStore.getKeeper();
        }
        Map map = new HashMap();
        map.put("city",city);
        map.put("province",province);
        map.put("userId",userId);
        map.put("number",number);
        map.put("pageSize",pageSize);
        map.put("currentPage",currentPage - 1);

        JSONObject json = numberService.getChangeNumList(map);
        return new Result().success(json);
    }
}