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> queryMyInvoice(Integer pageNum, Integer size, HttpServletRequest request){ try { Integer uid = userInfoService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } List> maps = invoiceService.queryMyInvoice(pageNum, size, uid); return ResultUtil.success(InvoiceWarpper.getInvoiceWarpper(maps)); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } }