package com.stylefeng.guns.modular.api;
|
|
import com.stylefeng.guns.modular.system.model.Invoice;
|
import com.stylefeng.guns.modular.system.service.IInvoiceService;
|
import com.stylefeng.guns.modular.system.service.IUserInfoService;
|
import com.stylefeng.guns.modular.system.util.ResultUtil;
|
import com.stylefeng.guns.modular.system.warpper.InvoiceWarpper;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import javax.servlet.http.HttpServletRequest;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 发票控制器
|
*/
|
@Api
|
@RestController
|
@RequestMapping("/api/invoice")
|
public class InvoiceController {
|
|
@Autowired
|
private IInvoiceService invoiceService;
|
|
@Autowired
|
private IUserInfoService userInfoService;
|
|
|
|
|
/**
|
* 开票操作
|
* @param invoice
|
* @param order
|
* @param request
|
* @return
|
*/
|
@ResponseBody
|
@PostMapping("/invoicing")
|
@ApiOperation(value = "开发票操作", tags = {"用户端-个人中心"}, notes = "")
|
@ApiImplicitParams({
|
@ApiImplicitParam(value = "开票订单数据([{\"type\":1,\"id\":12345}])分别为订单类型(1=专车,2=出租车,3=跨城出行,4=同城小件物流),5=跨城小件物流和订单id", name = "order", required = true, dataType = "string"),
|
@ApiImplicitParam(value = "开票类型(1=个人发票,2=单位发票)", name = "type", required = true, dataType = "int"),
|
@ApiImplicitParam(value = "抬头名称(公司名字/个人姓名)", name = "name", required = true, dataType = "string"),
|
@ApiImplicitParam(value = "税号", name = "code", required = false, dataType = "string"),
|
@ApiImplicitParam(value = "发票内容", name = "content", required = false, dataType = "string"),
|
@ApiImplicitParam(value = "备注", name = "remark", required = false, dataType = "string"),
|
@ApiImplicitParam(value = "地址+电话", name = "address", required = false, dataType = "string"),
|
@ApiImplicitParam(value = "开户行+账号", name = "bank", required = false, dataType = "string"),
|
@ApiImplicitParam(value = "邮箱地址", name = "email", required = true, dataType = "string"),
|
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
|
})
|
public ResultUtil invoicing(Invoice invoice, String order, HttpServletRequest request){
|
try {
|
|
Integer uid = userInfoService.getUserIdFormRedis(request);
|
if(null == uid){
|
return ResultUtil.tokenErr();
|
}
|
invoiceService.invoicing(invoice, order, uid);
|
return ResultUtil.success();
|
}catch (Exception e){
|
e.printStackTrace();
|
return ResultUtil.runErr();
|
}
|
}
|
|
/**
|
* 获取开票历史
|
* @param pageNum
|
* @param size
|
* @param request
|
* @return
|
*/
|
@ResponseBody
|
@PostMapping("/queryMyInvoice")
|
@ApiOperation(value = "获取开票历史", tags = {"用户端-个人中心"}, notes = "")
|
@ApiImplicitParams({
|
@ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"),
|
@ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "inr"),
|
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
|
})
|
public ResultUtil<List<InvoiceWarpper>> queryMyInvoice(Integer pageNum, Integer size, HttpServletRequest request){
|
try {
|
Integer uid = userInfoService.getUserIdFormRedis(request);
|
if(null == uid){
|
return ResultUtil.tokenErr();
|
}
|
List<Map<String, Object>> maps = invoiceService.queryMyInvoice(pageNum, size, uid);
|
return ResultUtil.success(InvoiceWarpper.getInvoiceWarpper(maps));
|
}catch (Exception e){
|
e.printStackTrace();
|
return ResultUtil.runErr();
|
}
|
}
|
}
|