CreditGrantingInfoController.java 6.99 KB
package com.lhcredit.project.business.creditGrantingInfo.controller;

import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.Date;

import com.lhcredit.common.utils.security.ShiroUtils;
import com.lhcredit.project.business.creditGrantingInfo.mapper.CreditGrantingInfoMapper;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.lhcredit.framework.aspectj.lang.annotation.Log;
import com.lhcredit.framework.aspectj.lang.enums.BusinessType;
import com.lhcredit.project.business.creditGrantingInfo.domain.CreditGrantingInfo;
import com.lhcredit.project.business.creditGrantingInfo.service.ICreditGrantingInfoService;
import com.lhcredit.framework.web.controller.BaseController;
import com.lhcredit.framework.web.page.TableDataInfo;
import com.lhcredit.framework.web.domain.AjaxResult;
import com.lhcredit.common.utils.poi.ExcelUtil;

/**
 * 信用评级申请信息操作处理
 *
 * @author lhcredit
 * @date 2024-06-11
 */
@Controller
@RequestMapping("/business/creditGrantingInfo")
public class CreditGrantingInfoController extends BaseController {
    private String prefix = "business/creditGrantingInfo";

    @Autowired
    private ICreditGrantingInfoService creditGrantingInfoService;
    @Autowired
    private CreditGrantingInfoMapper creditGrantingInfoMapper;
    @RequiresPermissions("business:creditGrantingInfo:view")
    @GetMapping()
    public String creditGrantingInfo() {
        return prefix + "/creditGrantingInfo";
    }

    /**
     * 查询信用评级申请列表
     */
    @RequiresPermissions("business:creditGrantingInfo:list")
    @PostMapping("/listCreidt")
    @ResponseBody
    public TableDataInfo listCreidt(CreditGrantingInfo creditGrantingInfo) {
        startPage();
        List<CreditGrantingInfo> list = creditGrantingInfoService.selectCreditApplicationList(creditGrantingInfo);

        return getDataTable(CollectionUtils.isEmpty(list)?new ArrayList<>():list);
    }
    /**
     * 查询信用评级申请列表
     */
    @RequiresPermissions("business:creditGrantingInfo:list")
    @PostMapping("/list")
    @ResponseBody
    public TableDataInfo list(CreditGrantingInfo creditGrantingInfo) {
        startPage();
        List<CreditGrantingInfo> list = creditGrantingInfoMapper.selectCreditGrantingInfoListApplication(creditGrantingInfo);
        return getDataTable(list);
    }


    /**
     * 导出信用评级申请列表
     */
    @RequiresPermissions("business:creditGrantingInfo:export")
    @Log(title = "信用评级申请", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    @ResponseBody
    public AjaxResult export(CreditGrantingInfo creditGrantingInfo) {
        List<CreditGrantingInfo> list = creditGrantingInfoService.selectCreditGrantingInfoList(creditGrantingInfo);
        ExcelUtil<CreditGrantingInfo> util = new ExcelUtil<CreditGrantingInfo>(CreditGrantingInfo. class);
        return util.exportExcel(list, "creditGrantingInfo");
    }

    /**
     * 新增信用评级申请
     */
    @GetMapping("/add")
    public String add() {
        return prefix + "/add";
    }

    /**
     * 新增保存信用评级申请
     */
    @RequiresPermissions("business:creditGrantingInfo:add")
    @Log(title = "信用评级申请", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    @ResponseBody
    public AjaxResult addSave(CreditGrantingInfo creditGrantingInfo) {
        creditGrantingInfo.setCreateBy(ShiroUtils.getLoginName());
        creditGrantingInfo.setCreateTime(new Date());
        creditGrantingInfo.setUpdateBy(ShiroUtils.getLoginName());
        creditGrantingInfo.setUpdateTime(new Date());
        return toAjax(creditGrantingInfoService.insertCreditGrantingInfo(creditGrantingInfo));
    }

    /**
     * 修改信用评级申请
     */
    @GetMapping("/edit/{id}")
    public String edit(@PathVariable("id") Long id, ModelMap mmap) {
        CreditGrantingInfo creditGrantingInfo =creditGrantingInfoService.selectCreditGrantingInfoById(id);
        mmap.put("creditGrantingInfo", creditGrantingInfo);
        return prefix + "/edit";
    }

    /**
     * 修改保存信用评级申请
     */
    @RequiresPermissions("business:creditGrantingInfo:edit")
    @Log(title = "信用评级申请", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    @ResponseBody
    public AjaxResult editSave(CreditGrantingInfo creditGrantingInfo) {
        creditGrantingInfo.setUpdateBy(ShiroUtils.getLoginName());
        creditGrantingInfo.setUpdateTime(new Date());
        return toAjax(creditGrantingInfoService.updateCreditGrantingInfo(creditGrantingInfo));
    }

    /**
     * 删除信用评级申请
     */
    @RequiresPermissions("business:creditGrantingInfo:remove")
    @Log(title = "信用评级申请", businessType = BusinessType.DELETE)
    @PostMapping("/remove")
    @ResponseBody
    public AjaxResult remove(String ids) {
        return toAjax(creditGrantingInfoService.deleteCreditGrantingInfoByIds(ids));
    }

    /**
     * 修改增加
     */
    @RequiresPermissions("business:creditGrantingInfo:list")
    @Log(title = "信用评级申请", businessType = BusinessType.DELETE)
    @RequestMapping("/applicationStatus")
    @ResponseBody
    public AjaxResult applicationStatus(Long id,String status) {
        CreditGrantingInfo creditGrantingInfo = creditGrantingInfoService.selectCreditGrantingInfoById(id);
        if (status.equals("1")){
            if (creditGrantingInfo.getCreditLimitAdd()<=creditGrantingInfo.getCreditLimitLast()){
                return AjaxResult.error("申请必须大于授信金额");
            }
            creditGrantingInfo.setCreditLimitLast(creditGrantingInfo.getCreditLimitAdd());
            creditGrantingInfo.setCreditLimitAdd(-1L);
        }else{
            creditGrantingInfo.setCreditLimitAddInfo(creditGrantingInfo.getCreditLimitAddInfo()+";审核已拒绝;增加授信金额:"+creditGrantingInfo.getCreditLimitAdd());
            creditGrantingInfo.setCreditLimitAdd(-2L);
        }
        creditGrantingInfoService.updateCreditGrantingInfo(creditGrantingInfo);
        return toAjax(1);
    }

    @RequestMapping("recoveryAppliction")
    @ResponseBody
    public AjaxResult recoveryAppliction(Long id){
        CreditGrantingInfo creditGrantingInfo = creditGrantingInfoService.selectCreditGrantingInfoById(id);
        String[] split = creditGrantingInfo.getCreditLimitAddInfo().split("增加授信金额:");
        creditGrantingInfoService.updateCreditGrantingInfo(CreditGrantingInfo.builder().id(id).creditLimitAdd(Long.valueOf(split[1])).build());
        return toAjax(1);
    }

}