package com.ruoyi.other.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.other.api.domain.TInvoiceType;
import com.ruoyi.other.query.InvoiceTypePageList;
import com.ruoyi.other.service.TInvoiceTypeService;
import io.swagger.annotations.ApiOperation;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
*
* 前端控制器
*
*
* @author 无关风月
* @since 2024-08-06
*/
@RestController
@RequestMapping("/t-invoice-type")
public class TInvoiceTypeController {
@Resource
private TInvoiceTypeService invoiceTypeService;
@ResponseBody
@GetMapping("/pageList")
@ApiOperation(value = "获取发票类型列表", tags = {"管理后台-发票类型管理"})
public AjaxResult> pageList(InvoiceTypePageList pageList){
PageInfo pageInfo = invoiceTypeService.pageList(pageList);
return AjaxResult.success(pageInfo);
}
@GetMapping("/pageListR")
@ApiOperation(value = "获取开票公司和类型列表", tags = {"管理后台-发票管理"})
public R> pageListR(String invoicingCompany ){
List list = new ArrayList<>();
if (StringUtils.hasLength(invoicingCompany )){
list = invoiceTypeService.lambdaQuery().eq(TInvoiceType::getInvoicingCompany, invoicingCompany).list();
}else{
list = invoiceTypeService.lambdaQuery().list();
}
return R.ok(list);
}
@ResponseBody
@PostMapping("/addInvoiceType")
@ApiOperation(value = "添加发票类型", tags = {"管理后台-发票类型管理"})
@Log(title = "【发票类型管理】添加发票类型", businessType = BusinessType.INSERT)
public AjaxResult addInvoiceType(@RequestBody TInvoiceType invoiceType){
invoiceTypeService.save(invoiceType);
return AjaxResult.success();
}
@ResponseBody
@GetMapping("/getInvoiceTypeInfo/{id}")
@ApiOperation(value = "获取发票类型详情", tags = {"管理后台-发票类型管理"})
public AjaxResult getInvoiceTypeInfo(@PathVariable Integer id){
TInvoiceType invoiceType = invoiceTypeService.getById(id);
return AjaxResult.success(invoiceType);
}
@ResponseBody
@PostMapping("/editInvoiceType")
@ApiOperation(value = "编辑发票类型", tags = {"管理后台-发票类型管理"})
@Log(title = "【发票类型管理】编辑发票类型", businessType = BusinessType.UPDATE)
public AjaxResult editInvoiceType(@RequestBody TInvoiceType invoiceType){
invoiceTypeService.updateById(invoiceType);
return AjaxResult.success();
}
@ResponseBody
@DeleteMapping("/delInvoiceType")
@ApiOperation(value = "删除发票类型", tags = {"管理后台-发票类型管理"})
@Log(title = "【发票类型管理】删除发票类型", businessType = BusinessType.DELETE)
public AjaxResult delInvoiceType(Integer[] id){
List tInvoiceTypes = invoiceTypeService.listByIds(Arrays.asList(id));
for (TInvoiceType invoiceType : tInvoiceTypes) {
invoiceTypeService.removeById(invoiceType);
}
return AjaxResult.success();
}
@ResponseBody
@GetMapping("/getInvoiceTypeList")
@ApiOperation(value = "获取开票类型", tags = {"小程序-充电发票"})
public AjaxResult> getInvoiceTypeList(){
List list = invoiceTypeService.list(new LambdaQueryWrapper()
.eq(TInvoiceType::getDelFlag, 0).orderByAsc(TInvoiceType::getCreateTime));
return AjaxResult.success(list);
}
/**
* 根据id获取发票类型
* @param id
* @return
*/
@ResponseBody
@PostMapping("/getInvoiceType/{id}")
public R getInvoiceType(@PathVariable Integer id){
TInvoiceType invoiceType = invoiceTypeService.getById(id);
return R.ok(invoiceType);
}
}