From 5be0be6c58130b6c8a638baaac04481f756adf15 Mon Sep 17 00:00:00 2001 From: “djh” <“3298565835@qq.com”> Date: 星期四, 23 一月 2025 08:29:57 +0800 Subject: [PATCH] 煤矿缴费 --- exam-system/src/main/java/com/gkhy/exam/pay/service/impl/CoalPayServiceImpl.java | 208 ++++ exam-system/src/main/java/com/gkhy/exam/pay/utils/HttpResultVo.java | 17 exam-system/src/main/java/com/gkhy/exam/pay/entity/CoalPayCategory.java | 85 + exam-system/src/main/java/com/gkhy/exam/pay/service/CoalCategoryService.java | 26 exam-system/src/main/java/com/gkhy/exam/pay/service/CoalPayCategoryService.java | 7 exam-system/src/main/java/com/gkhy/exam/pay/entity/CoalPayStudent.java | 253 +++++ exam-system/src/main/java/com/gkhy/exam/pay/entity/CoalPay.java | 236 +++++ exam-system/src/main/resources/mapper/pay/CoalCategoryMapper.xml | 141 +++ exam-system/src/main/java/com/gkhy/exam/pay/entity/PayReqData.java | 50 + exam-system/src/main/java/com/gkhy/exam/pay/service/CoalPayStudentService.java | 30 exam-system/src/main/java/com/gkhy/exam/pay/controller/CoalPayController.java | 117 ++ exam-system/src/main/java/com/gkhy/exam/pay/entity/CoalCategory.java | 121 ++ exam-system/src/main/java/com/gkhy/exam/pay/mapper/CoalPayCategoryMapper.java | 12 exam-system/src/main/java/com/gkhy/exam/pay/service/CoalPayService.java | 30 exam-system/src/main/java/com/gkhy/exam/pay/entity/CoalTicket.java | 21 exam-system/src/main/java/com/gkhy/exam/pay/dto/req/CoalPayDto.java | 72 + exam-system/src/main/java/com/gkhy/exam/pay/controller/CoalPayStudentController.java | 76 + exam-system/src/main/java/com/gkhy/exam/pay/mapper/CoalPayStudentMapper.java | 25 exam-system/src/main/java/com/gkhy/exam/pay/utils/PayUtils.java | 215 ++++ exam-system/src/main/java/com/gkhy/exam/pay/controller/CoalCategoryController.java | 101 ++ exam-system/src/main/java/com/gkhy/exam/pay/utils/ResultVo.java | 18 exam-system/src/main/java/com/gkhy/exam/pay/dto/req/CoalPayTypeReq.java | 15 exam-system/src/main/resources/mapper/pay/CoalPayCategoryMapper.xml | 37 exam-system/src/main/java/com/gkhy/exam/pay/dto/rep/CoalPayRepDto.java | 82 + exam-system/src/main/java/com/gkhy/exam/pay/dto/req/CoalPayReq.java | 15 exam-system/src/main/java/com/gkhy/exam/pay/dto/rep/CoalPayStudentRep.java | 71 + exam-system/src/main/resources/mapper/pay/CoalPayMapper.xml | 126 ++ exam-system/src/main/resources/mapper/pay/CoalPayStudentMapper.xml | 104 ++ exam-system/src/test/java/TextPay.java | 58 + exam-system/src/main/java/com/gkhy/exam/pay/mapper/CoalCategoryMapper.java | 31 exam-system/src/main/java/com/gkhy/exam/pay/service/impl/CoalPayStudentServiceImpl.java | 144 +++ exam-system/src/main/java/com/gkhy/exam/pay/mapper/CoalPayMapper.java | 21 exam-system/src/main/java/com/gkhy/exam/pay/dto/req/CoalPayStudentReq.java | 11 exam-system/src/main/java/com/gkhy/exam/pay/service/impl/CoalCategoryServiceImpl.java | 106 ++ exam-system/src/main/java/com/gkhy/exam/pay/service/impl/CoalPayCategoryServiceImpl.java | 11 35 files changed, 2,693 insertions(+), 0 deletions(-) diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/controller/CoalCategoryController.java b/exam-system/src/main/java/com/gkhy/exam/pay/controller/CoalCategoryController.java new file mode 100644 index 0000000..87c7c2e --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/pay/controller/CoalCategoryController.java @@ -0,0 +1,101 @@ +package com.gkhy.exam.pay.controller; + +import com.gkhy.exam.pay.entity.CoalCategory; +import com.gkhy.exam.pay.entity.CoalTicket; +import com.gkhy.exam.pay.entity.NonCoalCategory; +import com.gkhy.exam.pay.service.CoalCategoryService; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@Api(tags = "煤矿工种类别管理") +@RequestMapping("/pay/coalCategory") +public class CoalCategoryController extends BaseController { + + @Autowired + private CoalCategoryService coalCategoryService; + + /** + * 查询煤矿工种类别列表 + */ + @PostMapping("/list") + @ApiOperation(value = "查询煤矿工种类别列表") + public TableDataInfo list(@RequestBody CoalCategory coalCategory) { + startPage(); + List<CoalCategory> list = coalCategoryService.selectCoalCategoryList(coalCategory); + return getDataTable(list); + } + + /** + * 获取煤矿工种类别详细信息 + */ + @GetMapping(value = "/{id}") + @ApiOperation(value = "获取煤矿工种类别详细信息", httpMethod = "GET") + @ApiImplicitParam(name = "id", dataTypeClass = Long.class, value = "id", required = true) + public AjaxResult getInfo(@PathVariable("id") Long id) { + return success(coalCategoryService.selectCoalCategoryById(id)); + } + + /** + * 新增煤矿工种类别 + */ + + @PostMapping("/insert") + @ApiOperation(value = "新增煤矿工种类别") + public AjaxResult add(@Validated @RequestBody CoalCategory coalCategory) { + return toAjax(coalCategoryService.insertCoalCategory(coalCategory)); + } + + /** + * 修改煤矿工种类别 + */ + + @PostMapping("/update") + @ApiOperation(value = "修改煤矿工种类别") + public AjaxResult edit(@RequestBody CoalCategory coalCategory) { + return toAjax(coalCategoryService.updateCoalCategory(coalCategory)); + } + + /** + * 删除煤矿工种类别 + */ + @PostMapping("/delete") + @ApiOperation(value = "删除煤矿工种类别") + public AjaxResult remove(@RequestBody Long[] ids) { + return toAjax(coalCategoryService.deleteCoalCategoryByIds(ids)); + } + + + /** + * 开票信息保存 + */ + @PostMapping("/saveTicket") + public AjaxResult save(@Validated @RequestBody CoalTicket coalTicket){ + return toAjax(coalCategoryService.saveCoalTicket(coalTicket)); + } + + /** + * 开票信息修改 + */ + @PostMapping("/updateTicket") + public AjaxResult updateTicket(@RequestBody CoalTicket coalTicket){ + return toAjax(coalCategoryService.updateCoalTicket(coalTicket)); + } + + /** + * 开票信息查询 + */ + @PostMapping("/ticketList") + public AjaxResult ticketList(){ + return success(coalCategoryService.ticketList()); + } +} diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/controller/CoalPayController.java b/exam-system/src/main/java/com/gkhy/exam/pay/controller/CoalPayController.java new file mode 100644 index 0000000..9b84a40 --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/pay/controller/CoalPayController.java @@ -0,0 +1,117 @@ +package com.gkhy.exam.pay.controller; + +import com.gkhy.exam.pay.dto.rep.CoalPayRepDto; +import com.gkhy.exam.pay.dto.rep.CoalPayStudentRep; +import com.gkhy.exam.pay.dto.req.CoalPayDto; +import com.gkhy.exam.pay.dto.req.CoalPayReq; +import com.gkhy.exam.pay.dto.req.CoalPayStudentReq; +import com.gkhy.exam.pay.dto.req.CoalPayTypeReq; +import com.gkhy.exam.pay.entity.CoalPayStudent; +import com.gkhy.exam.pay.service.CoalPayService; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@Api(tags = "煤矿缴费批次管理") +@RequestMapping("/pay/coalPay") +public class CoalPayController extends BaseController { + + @Autowired + private CoalPayService coalPayService; + + /** + * 查询煤矿缴费管理列表 + */ + @PostMapping("/list") + @ApiOperation(value = "查询煤矿缴费管理列表") + public TableDataInfo list(@RequestBody CoalPayReq coalPayReq) { + startPage(); + List<CoalPayRepDto> list = coalPayService.selectCoalPayList(coalPayReq); + return getDataTable(list); + } + + /** + * 获取非煤缴费管理详细信息 + */ + @GetMapping(value = "/{id}") + @ApiOperation(value = "获取煤矿缴费管理详细信息", httpMethod = "GET") + @ApiImplicitParam(name = "id", dataTypeClass = Long.class, value = "id", required = true) + public AjaxResult getInfo(@PathVariable("id") Long id) { + return success(coalPayService.selectCoalPayById(id)); + } + + /** + * 新增煤矿缴费管理 + */ + @PostMapping("/insert") + @ApiOperation(value = "新增煤矿缴费管理") + public AjaxResult add(@Validated @RequestBody CoalPayDto coalPayDto) { + return toAjax(coalPayService.insertCoalPay(coalPayDto)); + } + + /** + * 修改煤矿缴费管理 + */ + @PostMapping("/update") + @ApiOperation(value = "修改煤矿缴费管理") + public AjaxResult edit(@RequestBody CoalPayDto coalPayDto) { + return toAjax(coalPayService.updateCoalPay(coalPayDto)); + } + + /** + * 修改煤矿缴费类型 + */ + @PostMapping("/updateType") + @ApiOperation(value = "修改煤矿缴费类型") + public AjaxResult updateType(@RequestBody CoalPayTypeReq coalPayTypeReq) { + return toAjax(coalPayService.updateCoalPayType(coalPayTypeReq)); + } + +// /** +// * 修改煤矿缴费 +// */ +// @PostMapping("/updatePayCompany") +// public AjaxResult updatePay(@RequestBody ){ +// return toAjax(coalPayService.updatePay()); +// } + /** + * 删除煤矿缴费管理 + */ + @PostMapping("/delete") + @ApiOperation(value = "删除煤矿缴费管理") + public AjaxResult remove(@RequestBody Long[] ids) { + return coalPayService.deleteCoalPayByIds(ids); + } + + /** + * 个人缴费接口 + */ + @PostMapping("/findStudent") + @ApiOperation(value ="H5个人缴费查询") + public AjaxResult findStudent(@RequestBody CoalPayStudentReq coalPayStudent){ + List<CoalPayStudentRep> coalPayStudentReps = coalPayService.selectCoalPay(coalPayStudent); + return success(coalPayStudentReps); + } + + + +// @PostMapping("/personPay") +// @ApiOperation(value = "个人缴费接口") +// public void payFees(){ +// +// } + + + + + +} diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/controller/CoalPayStudentController.java b/exam-system/src/main/java/com/gkhy/exam/pay/controller/CoalPayStudentController.java new file mode 100644 index 0000000..2e72368 --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/pay/controller/CoalPayStudentController.java @@ -0,0 +1,76 @@ +package com.gkhy.exam.pay.controller; + +import com.gkhy.exam.pay.entity.CoalPayStudent; +import com.gkhy.exam.pay.service.CoalPayStudentService; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.util.List; + +@RestController +@Api(tags = "煤矿缴费批次对应学员管理") +@RequestMapping("/pay/coalPayStudent") +public class CoalPayStudentController extends BaseController { + + @Autowired + private CoalPayStudentService coalPayStudentService; + + /** + * 缴费批次对应学生 + */ + @GetMapping("/studentList/{coalPayId}") + @ApiOperation(value = "缴费信息对应学员信息") + public TableDataInfo list(@PathVariable Long coalPayId) { + startPage(); + List<CoalPayStudent> list = coalPayStudentService.selectCoalPayStudentList(coalPayId); + return getDataTable(list); + } + + /** + * 修改相关学生信息 + */ + @PostMapping("/update") + @ApiOperation(value = "修改相关学员信息") + public AjaxResult updateStudent(@RequestBody CoalPayStudent coalPayStudent){ + return coalPayStudentService.updateByCoalPayStudent(coalPayStudent); + } + + /** + * 新增相关学生 + */ + @PostMapping("/insert") + @ApiOperation(value = "新增相关学员") + public AjaxResult insertStudent(@Validated @RequestBody CoalPayStudent coalPayStudent){ + return toAjax(coalPayStudentService.insertStudent(coalPayStudent)); + } + + /** + * 删除相关学生 + */ + @PostMapping("/delete") + @ApiOperation(value = "删除对应学员") + public AjaxResult deleteStudent(@RequestBody Long[] ids){ + return toAjax(coalPayStudentService.deleteStudent(ids)); + } + + /** + * 批量导入学生 + */ + @PostMapping("/import") + public AjaxResult uploadStudent(@RequestParam("file") MultipartFile file, @RequestParam("coalPayId") Long coalPayId) { + try { + return coalPayStudentService.uploadStudent(file, coalPayId); + } catch (IOException e) { + // 处理异常,返回友好的错误消息 + return AjaxResult.error("学员信息导入失败: " + e.getMessage()); + } + } +} diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/dto/rep/CoalPayRepDto.java b/exam-system/src/main/java/com/gkhy/exam/pay/dto/rep/CoalPayRepDto.java new file mode 100644 index 0000000..25efa99 --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/pay/dto/rep/CoalPayRepDto.java @@ -0,0 +1,82 @@ +package com.gkhy.exam.pay.dto.rep; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.gkhy.exam.pay.entity.CoalCategory; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +@ApiModel(value = "煤矿缴费管理对象详情", description = "煤矿缴费管理对象详情") +@Data +public class CoalPayRepDto implements Serializable { + private Long id; + + /** + * 批次名称 + */ + private String batchName; + + /** + * 考试点 + */ + private Long deptId; + private String deptName; + + /** + * 缴费类型1初训理论2初训实操3初训理论与实操4复训理论 + */ + private Long payType; + + /** + * 金额 + */ + private BigDecimal amount; + + /** + * 年份 + */ + private String year; + + /** + * 季度1一季度2二季度3三季度4四季度 + */ + private Long quarter; + + /** + * 交款人类型1个人2团体 + */ + private Integer payPersonType; + + /** + * 缴款单位名称 + */ + private String payCompanyName; + + /** + * 缴款单位证件号 + */ + private String payCompanyCard; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + /** + * 总学员数量 + */ + private Integer totalNum; + /** + * 未交费数量 + */ + private Integer havePayNum; + + private List<CoalCategory> coalCategoryList; + + + +} diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/dto/rep/CoalPayStudentRep.java b/exam-system/src/main/java/com/gkhy/exam/pay/dto/rep/CoalPayStudentRep.java new file mode 100644 index 0000000..72cb9b3 --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/pay/dto/rep/CoalPayStudentRep.java @@ -0,0 +1,71 @@ +package com.gkhy.exam.pay.dto.rep; + +import com.gkhy.exam.pay.entity.CoalPay; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class CoalPayStudentRep { + + private Long id; + + /** + * 缴费id + */ + private Long coalPayId; + + /** + * 姓名 + */ + @ApiModelProperty("姓名") + private String name; + + /** + * 身份证号 + */ + @ApiModelProperty("身份证号") + private String idCard; + + /** + * 电话 + */ + @ApiModelProperty("电话") + private String phone; + + /** + * 0男 1女 2未知 + */ + @ApiModelProperty("性别") + private Long sex; + + /** + * 财政缴款码 + */ + @ApiModelProperty("财政缴款码") + private String payCode; + + /** + * 是否缴款0否1是 + */ + @ApiModelProperty("是否缴款") + private Long payStatus; + + /** + * 缴费类型1个人 2团体 + */ + private Integer payType; + + private CoalPayRepDto coalPays; + + + + + + + + + + +} diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/dto/req/CoalPayDto.java b/exam-system/src/main/java/com/gkhy/exam/pay/dto/req/CoalPayDto.java new file mode 100644 index 0000000..fe2ec96 --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/pay/dto/req/CoalPayDto.java @@ -0,0 +1,72 @@ +package com.gkhy.exam.pay.dto.req; + +import com.gkhy.exam.pay.entity.CoalPayCategory; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.List; + +@ApiModel(value = "煤矿缴费管理对象dto", description = "煤矿缴费管理对象dto") +@Data +public class CoalPayDto implements Serializable { + + private Long id; + + /** + * 批次名称 + */ + @NotBlank(message = "批次名称不能为空") + @ApiModelProperty("批次名称") + private String batchName; + + /** + * 考试点 + */ + @NotNull(message = "考试点不能为空") + @ApiModelProperty("考试点") + private Long deptId; + + /** + * 缴费类型1初训理论2初训实操3初训理论与实操4复训理论 + */ + @NotNull(message = "缴费类型不能为空") + @ApiModelProperty("缴费类型") + private Long payType; + + /** + * 金额 + */ + @NotNull(message = "金额不能为空") + @ApiModelProperty("金额") + private BigDecimal amount; + + /** + * 年份 + */ + @NotBlank(message = "年份不能为空") + @ApiModelProperty("年份") + private String year; + + /** + * 季度1一季度2二季度3三季度4四季度 + */ + @NotNull(message = "季度不能为空") + @ApiModelProperty("季度") + private Long quarter; + +// /** +// * 交款人类型1个人2团体 +// */ +// @NotNull(message = "交款人类型不能为空") +// @ApiModelProperty("交款人类型") +// private Integer payPersonType; + + private List<CoalPayCategory> coalPayCategoryies; + +} diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/dto/req/CoalPayReq.java b/exam-system/src/main/java/com/gkhy/exam/pay/dto/req/CoalPayReq.java new file mode 100644 index 0000000..af9ee81 --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/pay/dto/req/CoalPayReq.java @@ -0,0 +1,15 @@ +package com.gkhy.exam.pay.dto.req; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +@Data +public class CoalPayReq { + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date minDate; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date maxDate; + private Long deptId; +} diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/dto/req/CoalPayStudentReq.java b/exam-system/src/main/java/com/gkhy/exam/pay/dto/req/CoalPayStudentReq.java new file mode 100644 index 0000000..b5052f0 --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/pay/dto/req/CoalPayStudentReq.java @@ -0,0 +1,11 @@ +package com.gkhy.exam.pay.dto.req; + +import lombok.Data; + +@Data +public class CoalPayStudentReq { + + private String idCard; + private String phone; + +} diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/dto/req/CoalPayTypeReq.java b/exam-system/src/main/java/com/gkhy/exam/pay/dto/req/CoalPayTypeReq.java new file mode 100644 index 0000000..a2df5a5 --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/pay/dto/req/CoalPayTypeReq.java @@ -0,0 +1,15 @@ +package com.gkhy.exam.pay.dto.req; + +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class CoalPayTypeReq { + private Long coalPayId; + private Integer payPersonType; + private String payCompanyName; + private String payCompanyCard; + +} diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/entity/CoalCategory.java b/exam-system/src/main/java/com/gkhy/exam/pay/entity/CoalCategory.java new file mode 100644 index 0000000..465f2fc --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/pay/entity/CoalCategory.java @@ -0,0 +1,121 @@ +package com.gkhy.exam.pay.entity; + +import com.baomidou.mybatisplus.annotation.*; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; + + +@TableName("coal_category") +@ApiModel(value = "煤矿工种类别对象", description = "煤矿工种类别对象") +public class CoalCategory extends BaseEntity { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 类别1理论2实操 + */ + @Excel(name = "类别1理论2实操") + @ApiModelProperty("类别1理论2实操") + @NotNull(message = "类别不能为空") + private Long categoryType; + + /** + * 科目名称 + */ + @Excel(name = "科目名称") + @NotBlank(message = "科目名称不能为空") + @ApiModelProperty("科目名称") + private String subjectName; + + + /** + * 金额 + */ + @Excel(name = "金额") + @ApiModelProperty("金额") + @NotNull(message = "金额不能为空") + private BigDecimal amount; + + /** + * 业务编码 + */ + @NotNull(message = "业务编码不可为空") + private String businessCode; + + /** + * 描述 + */ + @Excel(name = "描述") + private String describe; + + /** + * 删除标志(0代表存在2代表删除) + */ + @ApiModelProperty(value = "删除标志", hidden = true) + private Integer delFlag; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getCategoryType() { + return categoryType; + } + + public void setCategoryType(Long categoryType) { + this.categoryType = categoryType; + } + + public String getSubjectName() { + return subjectName; + } + + public void setSubjectName(String subjectName) { + this.subjectName = subjectName; + } + + public BigDecimal getAmount() { + return amount; + } + + public void setAmount(BigDecimal amount) { + this.amount = amount; + } + + public String getDescribe() { + return describe; + } + + public void setDescribe(String describe) { + this.describe = describe; + } + + public String getBusinessCode() { + return businessCode; + } + + public void setBusinessCode(String businessCode) { + this.businessCode = businessCode; + } + + public Integer getDelFlag() { + return delFlag; + } + + public void setDelFlag(Integer delFlag) { + this.delFlag = delFlag; + } +} \ No newline at end of file diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/entity/CoalPay.java b/exam-system/src/main/java/com/gkhy/exam/pay/entity/CoalPay.java new file mode 100644 index 0000000..650cceb --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/pay/entity/CoalPay.java @@ -0,0 +1,236 @@ +package com.gkhy.exam.pay.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +@TableName("coal_pay") +@ApiModel(value = "煤矿缴费批次对象", description = "煤矿缴费批次对象") +public class CoalPay implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 批次名称 + */ + @Excel(name = "批次名称") + @NotBlank(message = "批次名称不能为空") + @ApiModelProperty("批次名称") + private String batchName; + + /** + * 考试点 + */ + @Excel(name = "考试点") + @NotNull(message = "考试点不能为空") + @ApiModelProperty("考试点") + private Long deptId; + + /** + * 缴费类型1初训理论2初训实操3初训理论与实操4复训理论 + */ + @Excel(name = "缴费类型1初训理论2初训实操3初训理论与实操4复训理论") + @NotNull(message = "缴费类型不能为空") + @ApiModelProperty("缴费类型") + private Long payType; + + /** + * 金额 + */ + @Excel(name = "金额") + @NotNull(message = "金额不能为空") + @ApiModelProperty("金额") + private BigDecimal amount; + + /** + * 年份 + */ + @Excel(name = "年份") + @NotBlank(message = "年份不能为空") + @ApiModelProperty("年份") + private String year; + + /** + * 季度1一季度2二季度3三季度4四季度 + */ + @Excel(name = "季度1一季度2二季度3三季度4四季度") + @NotNull(message = "季度不能为空") + @ApiModelProperty("季度") + private Long quarter; + + /** + * 交款人类型1个人2团体 + */ + @Excel(name = "交款人类型1个人2团体") + @NotNull(message = "交款人类型不能为空") + @ApiModelProperty("交款人类型") + private Integer payPersonType; + + /** + * 缴款单位名称 + */ + @Excel(name = "缴款单位名称") + @ApiModelProperty("缴款单位证件号") + private String payCompanyName; + + /** + * 缴款单位证件号 + */ + @Excel(name = "缴款单位证件号") + @ApiModelProperty("缴款单位证件号") + private String payCompanyCard; + + + /** 创建者 */ + private String createBy; + + /** 创建时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + /** 更新者 */ + private String updateBy; + + /** 更新时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + /** + * 删除标志(0代表存在2代表删除) + */ + @ApiModelProperty(value = "删除标志", hidden = true) + private Integer delFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getBatchName() { + return batchName; + } + + public void setBatchName(String batchName) { + this.batchName = batchName; + } + + public Long getDeptId() { + return deptId; + } + + public void setDeptId(Long deptId) { + this.deptId = deptId; + } + + public Long getPayType() { + return payType; + } + + public void setPayType(Long payType) { + this.payType = payType; + } + + public BigDecimal getAmount() { + return amount; + } + + public void setAmount(BigDecimal amount) { + this.amount = amount; + } + + public String getYear() { + return year; + } + + public void setYear(String year) { + this.year = year; + } + + public Long getQuarter() { + return quarter; + } + + public void setQuarter(Long quarter) { + this.quarter = quarter; + } + + public Integer getPayPersonType() { + return payPersonType; + } + + public void setPayPersonType(Integer payPersonType) { + this.payPersonType = payPersonType; + } + + public String getPayCompanyName() { + return payCompanyName; + } + + public void setPayCompanyName(String payCompanyName) { + this.payCompanyName = payCompanyName; + } + + public String getPayCompanyCard() { + return payCompanyCard; + } + + public void setPayCompanyCard(String payCompanyCard) { + this.payCompanyCard = payCompanyCard; + } + + public String getCreateBy() { + return createBy; + } + + public void setCreateBy(String createBy) { + this.createBy = createBy; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public String getUpdateBy() { + return updateBy; + } + + public void setUpdateBy(String updateBy) { + this.updateBy = updateBy; + } + + public Date getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } + + public Integer getDelFlag() { + return delFlag; + } + + public void setDelFlag(Integer delFlag) { + this.delFlag = delFlag; + } +} diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/entity/CoalPayCategory.java b/exam-system/src/main/java/com/gkhy/exam/pay/entity/CoalPayCategory.java new file mode 100644 index 0000000..6a6046c --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/pay/entity/CoalPayCategory.java @@ -0,0 +1,85 @@ +package com.gkhy.exam.pay.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import javax.validation.constraints.NotNull; + +@TableName("coal_pay_category") +@ApiModel(value = "煤矿缴费批次关联工种",description = "煤矿缴费批次关联工种") +public class CoalPayCategory extends BaseEntity { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + +// @NotNull(message = "参数不能为空") + @ApiModelProperty("非煤管理id") + private Long coalPayId; + + /** + * 类别id + */ + @Excel(name = "类别id") + @NotNull(message = "类别不能为空") + @ApiModelProperty("类别id") + private Long coalCategoryId; + + /** + * 类别1理论2实操 + */ + @Excel(name = "类型1理论2实操") + @NotNull(message = "类别类型不能为空") + @ApiModelProperty("类别类型id") + private Long categoryType; + + /** + * 删除标志(0代表存在2代表删除) + */ + private Integer delFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getCoalPayId() { + return coalPayId; + } + + public void setCoalPayId(Long coalPayId) { + this.coalPayId = coalPayId; + } + + public Long getCoalCategoryId() { + return coalCategoryId; + } + + public void setCoalCategoryId(Long coalCategoryId) { + this.coalCategoryId = coalCategoryId; + } + + public Long getCategoryType() { + return categoryType; + } + + public void setCategoryType(Long categoryType) { + this.categoryType = categoryType; + } + + public Integer getDelFlag() { + return delFlag; + } + + public void setDelFlag(Integer delFlag) { + this.delFlag = delFlag; + } +} diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/entity/CoalPayStudent.java b/exam-system/src/main/java/com/gkhy/exam/pay/entity/CoalPayStudent.java new file mode 100644 index 0000000..af7fb22 --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/pay/entity/CoalPayStudent.java @@ -0,0 +1,253 @@ +package com.gkhy.exam.pay.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.Date; + +@TableName("coal_pay_student") +@ApiModel(value = "煤矿缴费批次关联学生表", description = "煤矿缴费批次关联学生表") +public class CoalPayStudent implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 缴费id + */ + @Excel(name = "缴费id") + @NotNull(message = "参数不能为空") + @ApiModelProperty("缴费管理id") + private Long coalPayId; + + /** + * 姓名 + */ + @Excel(name = "姓名") + @NotBlank(message = "姓名不能为空") + @ApiModelProperty("姓名") + private String name; + + /** + * 身份证号 + */ + @Excel(name = "身份证号") + @NotBlank(message = "身份证号不能为空") + @ApiModelProperty("身份证号") + private String idCard; + + /** + * 电话 + */ + @Excel(name = "电话") + @NotBlank(message = "电话不能为空") + @ApiModelProperty("电话") + private String phone; + + /** + * 0男 1女 2未知 + */ + @Excel(name = "0男 1女 2未知") + @ApiModelProperty("性别") + private Long sex; + + /** + * 财政缴款码 + */ + @Excel(name = "财政缴款码") + @ApiModelProperty("财政缴款码") + private String payCode; + + /** + * 是否缴款0否1是 + */ + @Excel(name = "是否缴款0否1是") + @ApiModelProperty("是否缴款") + private Long payStatus; + + /** + * 缴费类型1个人 2团体 + */ + private Integer payType; + + /** + * 订单编号 + */ + private String orderId; + + /** + * 票据 + */ + private String fileData; + + /** + * 缴费状态 + */ + private Integer govPayStatus; + + + /** 创建者 */ + private String createBy; + + /** 创建时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + /** 更新者 */ + private String updateBy; + + /** 更新时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + /** + * 删除标志(0代表存在2代表删除) + */ + private Integer delFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getCoalPayId() { + return coalPayId; + } + + public void setCoalPayId(Long coalPayId) { + this.coalPayId = coalPayId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getIdCard() { + return idCard; + } + + public void setIdCard(String idCard) { + this.idCard = idCard; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public Long getSex() { + return sex; + } + + public void setSex(Long sex) { + this.sex = sex; + } + + public String getPayCode() { + return payCode; + } + + public void setPayCode(String payCode) { + this.payCode = payCode; + } + + public Long getPayStatus() { + return payStatus; + } + + public void setPayStatus(Long payStatus) { + this.payStatus = payStatus; + } + + public String getCreateBy() { + return createBy; + } + + public void setCreateBy(String createBy) { + this.createBy = createBy; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public String getUpdateBy() { + return updateBy; + } + + public void setUpdateBy(String updateBy) { + this.updateBy = updateBy; + } + + public Date getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } + + public Integer getDelFlag() { + return delFlag; + } + + public void setDelFlag(Integer delFlag) { + this.delFlag = delFlag; + } + + public Integer getPayType() { + return payType; + } + + public void setPayType(Integer payType) { + this.payType = payType; + } + + public String getOrderId() { + return orderId; + } + + public void setOrderId(String orderId) { + this.orderId = orderId; + } + + public String getFileData() { + return fileData; + } + + public void setFileData(String fileData) { + this.fileData = fileData; + } + + public Integer getGovPayStatus() { + return govPayStatus; + } + + public void setGovPayStatus(Integer govPayStatus) { + this.govPayStatus = govPayStatus; + } +} diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/entity/CoalTicket.java b/exam-system/src/main/java/com/gkhy/exam/pay/entity/CoalTicket.java new file mode 100644 index 0000000..1f9195b --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/pay/entity/CoalTicket.java @@ -0,0 +1,21 @@ +package com.gkhy.exam.pay.entity; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +public class CoalTicket { + + private Long id; + @NotNull(message = "开票单位名称不可为空") + private String ticketCompanyName; + @NotNull(message = "开票单位社会信用代码不可为空") + private String ticketCompanyCode; + @NotNull(message = "开票人不可为空") + private String drawer; + @NotNull(message = "复核人不可为空") + private String check; + @NotNull(message = "单位编码不可为空") + private String companyCode; +} diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/entity/PayReqData.java b/exam-system/src/main/java/com/gkhy/exam/pay/entity/PayReqData.java new file mode 100644 index 0000000..8447251 --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/pay/entity/PayReqData.java @@ -0,0 +1,50 @@ +package com.gkhy.exam.pay.entity; + +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +@Data +public class PayReqData { + //订单编号 + private String orderNo; + //订单总金额 + private BigDecimal money; + //子订单数目 + private Integer amount; + //缴费人姓名 + private String payerName; + //缴费人证件号 + private String certNo; + //交款人类型 + private Integer payerType; + //开票单位社会信用代码 + private String invoiceSocialCode; + //开票人 + private String handlingPerson; + //复核人 + private String checker; + //单位编码 + private String enterCode; + //电子邮件 + private String email; + //订单描述 + private String desc; + //备注 + private String remark1; + private String remark2; + private String remark3; + //订单明细 + private List<Feedata> feeDatas; + + + + @Data + public static class Feedata{ + private String busCode; + private Integer amount; + private BigDecimal price; + } + +} diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/mapper/CoalCategoryMapper.java b/exam-system/src/main/java/com/gkhy/exam/pay/mapper/CoalCategoryMapper.java new file mode 100644 index 0000000..23c8473 --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/pay/mapper/CoalCategoryMapper.java @@ -0,0 +1,31 @@ +package com.gkhy.exam.pay.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.gkhy.exam.pay.entity.CoalCategory; +import com.gkhy.exam.pay.entity.CoalTicket; +import org.springframework.stereotype.Repository; + +import java.util.List; + + +public interface CoalCategoryMapper extends BaseMapper<CoalCategory> { + List<CoalCategory> selectCoalCategoryList(CoalCategory coalCategory); + + int selectByCoalCategory(CoalCategory coalCategory); + + List<CoalCategory> selectByCoalPayId(Long id); + + int updateBatchByIds(Long[] ids); + + int insertCoalCategory(CoalCategory coalCategory); + + int updateCategoryById(CoalCategory coalCategory); + + int saveCoalTicket(CoalTicket coalTicket); + + int updateCoalTicket(CoalTicket coalTicket); + + CoalTicket selectCoalTicket(); + + +} diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/mapper/CoalPayCategoryMapper.java b/exam-system/src/main/java/com/gkhy/exam/pay/mapper/CoalPayCategoryMapper.java new file mode 100644 index 0000000..d9e1080 --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/pay/mapper/CoalPayCategoryMapper.java @@ -0,0 +1,12 @@ +package com.gkhy.exam.pay.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.gkhy.exam.pay.entity.CoalCategory; +import com.gkhy.exam.pay.entity.CoalPayCategory; + +import java.util.List; + +public interface CoalPayCategoryMapper extends BaseMapper<CoalPayCategory> { + + int deleteByCoalPayId(Long id); +} diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/mapper/CoalPayMapper.java b/exam-system/src/main/java/com/gkhy/exam/pay/mapper/CoalPayMapper.java new file mode 100644 index 0000000..c317d7b --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/pay/mapper/CoalPayMapper.java @@ -0,0 +1,21 @@ +package com.gkhy.exam.pay.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.gkhy.exam.pay.dto.req.CoalPayDto; +import com.gkhy.exam.pay.dto.req.CoalPayReq; +import com.gkhy.exam.pay.dto.req.CoalPayTypeReq; +import com.gkhy.exam.pay.entity.CoalPay; + +import java.util.List; + +public interface CoalPayMapper extends BaseMapper<CoalPay> { + List<CoalPay> selectCoalPayList(CoalPayReq coalPay); + + int insertBath(CoalPay coalPay); + + int updateByIds(Long[] ids); + + int updateByPayId(CoalPayTypeReq coalPayDto); + + int updateCoalPayById(CoalPay coalPay); +} diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/mapper/CoalPayStudentMapper.java b/exam-system/src/main/java/com/gkhy/exam/pay/mapper/CoalPayStudentMapper.java new file mode 100644 index 0000000..599c382 --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/pay/mapper/CoalPayStudentMapper.java @@ -0,0 +1,25 @@ +package com.gkhy.exam.pay.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.gkhy.exam.pay.dto.req.CoalPayStudentReq; +import com.gkhy.exam.pay.entity.CoalPayStudent; +import org.apache.ibatis.annotations.Param; + +import java.util.ArrayList; +import java.util.List; + +public interface CoalPayStudentMapper extends BaseMapper<CoalPayStudent> { + List<CoalPayStudent> selectByCoalPayId(Long coalPayId); + + int updateByIds(Long[] ids); + + List<CoalPayStudent> selectByCoalPayIdAndPayStatus(@Param("id") Long id, @Param("status") int status); + + List<CoalPayStudent> selectByIds(Long[] ids); + + List<CoalPayStudent> selectByIdcard(CoalPayStudentReq coalPayStudent); + + int updateCoalPayStudentById(CoalPayStudent coalPayStudent); + + int insertCoalPayStudent(CoalPayStudent coalPayStudent); +} diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/service/CoalCategoryService.java b/exam-system/src/main/java/com/gkhy/exam/pay/service/CoalCategoryService.java new file mode 100644 index 0000000..8aedbaa --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/pay/service/CoalCategoryService.java @@ -0,0 +1,26 @@ +package com.gkhy.exam.pay.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gkhy.exam.pay.entity.CoalCategory; +import com.gkhy.exam.pay.entity.CoalTicket; + +import java.util.List; + +public interface CoalCategoryService extends IService<CoalCategory> { + CoalCategory selectCoalCategoryById(Long id); + + List<CoalCategory> selectCoalCategoryList(CoalCategory coalCategory); + + int insertCoalCategory(CoalCategory coalCategory); + + int updateCoalCategory(CoalCategory coalCategory); + + int deleteCoalCategoryByIds(Long[] ids); + + int saveCoalTicket(CoalTicket coalTicket); + + int updateCoalTicket(CoalTicket coalTicket); + + CoalTicket ticketList(); + +} diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/service/CoalPayCategoryService.java b/exam-system/src/main/java/com/gkhy/exam/pay/service/CoalPayCategoryService.java new file mode 100644 index 0000000..50dca81 --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/pay/service/CoalPayCategoryService.java @@ -0,0 +1,7 @@ +package com.gkhy.exam.pay.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gkhy.exam.pay.entity.CoalPayCategory; + +public interface CoalPayCategoryService extends IService<CoalPayCategory> { +} diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/service/CoalPayService.java b/exam-system/src/main/java/com/gkhy/exam/pay/service/CoalPayService.java new file mode 100644 index 0000000..2ff3cb6 --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/pay/service/CoalPayService.java @@ -0,0 +1,30 @@ +package com.gkhy.exam.pay.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gkhy.exam.pay.dto.rep.CoalPayRepDto; +import com.gkhy.exam.pay.dto.rep.CoalPayStudentRep; +import com.gkhy.exam.pay.dto.req.CoalPayDto; +import com.gkhy.exam.pay.dto.req.CoalPayReq; +import com.gkhy.exam.pay.dto.req.CoalPayStudentReq; +import com.gkhy.exam.pay.dto.req.CoalPayTypeReq; +import com.gkhy.exam.pay.entity.CoalPay; +import com.gkhy.exam.pay.entity.CoalPayStudent; +import com.ruoyi.common.core.domain.AjaxResult; + +import java.util.List; + +public interface CoalPayService extends IService<CoalPay> { + List<CoalPayRepDto> selectCoalPayList(CoalPayReq coalPay); + + CoalPayRepDto selectCoalPayById(Long id); + + int insertCoalPay(CoalPayDto coalPayDto); + + int updateCoalPay(CoalPayDto coalPayDto); + + AjaxResult deleteCoalPayByIds(Long[] ids); + + List<CoalPayStudentRep> selectCoalPay(CoalPayStudentReq coalPayStudent); + + int updateCoalPayType(CoalPayTypeReq coalPayDto); +} diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/service/CoalPayStudentService.java b/exam-system/src/main/java/com/gkhy/exam/pay/service/CoalPayStudentService.java new file mode 100644 index 0000000..7058e67 --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/pay/service/CoalPayStudentService.java @@ -0,0 +1,30 @@ +package com.gkhy.exam.pay.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gkhy.exam.pay.dto.req.CoalPayStudentReq; +import com.gkhy.exam.pay.entity.CoalPayStudent; +import com.ruoyi.common.core.domain.AjaxResult; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.util.List; + +public interface CoalPayStudentService extends IService<CoalPayStudent> { + + List<CoalPayStudent> selectCoalPayStudentList(Long coalPayId); + + AjaxResult updateByCoalPayStudent(CoalPayStudent coalPayStudent); + + int insertStudent(CoalPayStudent coalPayStudent); + + int deleteStudent(Long[] ids); + + AjaxResult uploadStudent(MultipartFile file,Long coalPayId) throws IOException; + + List<CoalPayStudent> selectByCoalPayId(Long id); + + List<CoalPayStudent> selectByCoalPayIdAndPayStatus(Long id, int status); + + List<CoalPayStudent> selectbyIdcard(CoalPayStudentReq coalPayStudent); + +} diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/CoalCategoryServiceImpl.java b/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/CoalCategoryServiceImpl.java new file mode 100644 index 0000000..5c730be --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/CoalCategoryServiceImpl.java @@ -0,0 +1,106 @@ +package com.gkhy.exam.pay.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gkhy.exam.pay.entity.CoalCategory; +import com.gkhy.exam.pay.entity.CoalTicket; +import com.gkhy.exam.pay.mapper.CoalCategoryMapper; +import com.gkhy.exam.pay.service.CoalCategoryService; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.exception.BusinessException; +import com.ruoyi.common.utils.SecurityUtils; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +import static com.ruoyi.common.core.domain.AjaxResult.success; + +@Service +public class CoalCategoryServiceImpl extends ServiceImpl<CoalCategoryMapper, CoalCategory> implements CoalCategoryService { + + @Resource + private CoalCategoryMapper coalCategoryMapper; + + + @Override + public CoalCategory selectCoalCategoryById(Long id) { + return coalCategoryMapper.selectById(id); + } + + /** + * 煤矿工种类别列表 + * @param coalCategory + * @return + */ + @Override + public List<CoalCategory> selectCoalCategoryList(CoalCategory coalCategory) { + return coalCategoryMapper.selectCoalCategoryList(coalCategory); + } + + /** + * 新增煤矿工种类别 + * @param coalCategory + * @return + */ + @Override + public int insertCoalCategory(CoalCategory coalCategory) { + checkCoalCategory(coalCategory); + coalCategory.setCreateBy(SecurityUtils.getUsername()); + coalCategory.setCreateTime(new Date()); + return coalCategoryMapper.insertCoalCategory(coalCategory); + } + + private void checkCoalCategory(CoalCategory coalCategory) { + int i = coalCategoryMapper.selectByCoalCategory(coalCategory); + if (i>0){ + throw new RuntimeException("该工种已存在,请勿重复添加"); + } + } + + /** + * 修改煤矿工种类别 + * @param coalCategory + * @return + */ + @Override + public int updateCoalCategory(CoalCategory coalCategory) { + checkCoalCategory(coalCategory); + coalCategory.setUpdateBy(SecurityUtils.getUsername()); + coalCategory.setUpdateTime(new Date()); + return coalCategoryMapper.updateCategoryById(coalCategory); + + } + + /** + * 删除煤矿工种类别 + * @param ids + * @return + */ + @Override + public int deleteCoalCategoryByIds(Long[] ids) { + return coalCategoryMapper.updateBatchByIds(ids); + } + + @Override + public int saveCoalTicket(CoalTicket coalTicket) { + return coalCategoryMapper.saveCoalTicket(coalTicket); + } + + @Override + public int updateCoalTicket(CoalTicket coalTicket) { + return coalCategoryMapper.updateCoalTicket(coalTicket); + } + + @Override + public CoalTicket ticketList() { + return coalCategoryMapper.selectCoalTicket(); + } + +} diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/CoalPayCategoryServiceImpl.java b/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/CoalPayCategoryServiceImpl.java new file mode 100644 index 0000000..cf223c2 --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/CoalPayCategoryServiceImpl.java @@ -0,0 +1,11 @@ +package com.gkhy.exam.pay.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gkhy.exam.pay.entity.CoalPayCategory; +import com.gkhy.exam.pay.mapper.CoalPayCategoryMapper; +import com.gkhy.exam.pay.service.CoalPayCategoryService; +import org.springframework.stereotype.Service; + +@Service +public class CoalPayCategoryServiceImpl extends ServiceImpl<CoalPayCategoryMapper, CoalPayCategory> implements CoalPayCategoryService { +} diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/CoalPayServiceImpl.java b/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/CoalPayServiceImpl.java new file mode 100644 index 0000000..1f1cd8b --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/CoalPayServiceImpl.java @@ -0,0 +1,208 @@ +package com.gkhy.exam.pay.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gkhy.exam.pay.dto.rep.CoalPayRepDto; +import com.gkhy.exam.pay.dto.rep.CoalPayStudentRep; +import com.gkhy.exam.pay.dto.req.CoalPayDto; +import com.gkhy.exam.pay.dto.req.CoalPayReq; +import com.gkhy.exam.pay.dto.req.CoalPayStudentReq; +import com.gkhy.exam.pay.dto.req.CoalPayTypeReq; +import com.gkhy.exam.pay.entity.CoalCategory; +import com.gkhy.exam.pay.entity.CoalPay; +import com.gkhy.exam.pay.entity.CoalPayCategory; +import com.gkhy.exam.pay.entity.CoalPayStudent; +import com.gkhy.exam.pay.mapper.CoalCategoryMapper; +import com.gkhy.exam.pay.mapper.CoalPayCategoryMapper; +import com.gkhy.exam.pay.mapper.CoalPayMapper; +import com.gkhy.exam.pay.service.CoalPayService; +import com.gkhy.exam.pay.service.CoalPayStudentService; +import com.ruoyi.common.constant.ResultConstants; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysDept; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.exception.BusinessException; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.system.mapper.SysDeptMapper; +import javafx.print.Collation; +import org.aspectj.weaver.loadtime.Aj; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +@Service +public class CoalPayServiceImpl extends ServiceImpl<CoalPayMapper, CoalPay> implements CoalPayService { + + @Resource + private CoalPayMapper coalPayMapper; + @Resource + private CoalPayCategoryMapper coalPayCategoryMapper; + @Resource + private SysDeptMapper sysDeptMapper; + + @Resource + private CoalCategoryMapper coalCategoryMapper; + @Autowired + private CoalPayStudentService coalPayStudentService; + + + /** + * 缴费管理列表 + * @param coalPay + * @return + */ + @Override + public List<CoalPayRepDto> selectCoalPayList(CoalPayReq coalPay) { + List<CoalPayRepDto> coalPayRepDtos = new ArrayList<>(); + List<CoalPay> coalPays = coalPayMapper.selectCoalPayList(coalPay); + for (CoalPay pay : coalPays) { + CoalPayRepDto coalPayRepDto = new CoalPayRepDto(); + BeanUtils.copyProperties(pay,coalPayRepDto); + //部门数据 + SysDept sysDept = sysDeptMapper.selectDeptById(pay.getDeptId()); + coalPayRepDto.setDeptName(sysDept.getDeptName()); + //工种数据 + List<CoalCategory> coalCategories = coalCategoryMapper.selectByCoalPayId(pay.getId()); + coalPayRepDto.setCoalCategoryList(coalCategories); + //学员数据 + List<CoalPayStudent> coalPayStudents = coalPayStudentService.selectByCoalPayId(pay.getId()); + List<CoalPayStudent> havePay = coalPayStudents.stream() + .filter(stu -> stu.getPayStatus() != null && stu.getPayStatus().equals(1)) + .collect(Collectors.toList()); + coalPayRepDto.setTotalNum(coalPayStudents.size()); + coalPayRepDto.setHavePayNum(havePay.size()); + coalPayRepDtos.add(coalPayRepDto); + } + return coalPayRepDtos; + } + + @Override + public CoalPayRepDto selectCoalPayById(Long id) { + + CoalPayRepDto coalPayRepDto = new CoalPayRepDto(); + + //基本数据 + CoalPay coalPay = coalPayMapper.selectById(id); + BeanUtils.copyProperties(coalPay,coalPayRepDto); + //考点名称 + SysDept sysDept = sysDeptMapper.selectDeptById(coalPay.getDeptId()); + coalPayRepDto.setDeptName(sysDept.getDeptName()); + //工种类别 + List<CoalCategory> coalCategories = coalCategoryMapper.selectByCoalPayId(coalPay.getId()); + coalPayRepDto.setCoalCategoryList(coalCategories); + + //学员数据 + List<CoalPayStudent> coalPayStudents = coalPayStudentService.selectByCoalPayId(id); + List<CoalPayStudent> havePay = coalPayStudents.stream() + .filter(stu -> stu.getPayStatus() != null && stu.getPayStatus().equals(0)) + .collect(Collectors.toList()); + coalPayRepDto.setTotalNum(coalPayStudents.size()); + coalPayRepDto.setHavePayNum(havePay.size()); + + return coalPayRepDto; + } + + @Override + public int insertCoalPay(CoalPayDto coalPayDto) { + CoalPay coalPay = new CoalPay(); + BeanUtils.copyProperties(coalPayDto,coalPay); + coalPay.setCreateBy(SecurityUtils.getUsername()); + coalPay.setCreateTime(new Date()); + int insert = coalPayMapper.insertBath(coalPay); + if (CollectionUtils.isEmpty(coalPayDto.getCoalPayCategoryies())){ + throw new BusinessException(this.getClass(),ResultConstants.BUSINESS_ERROR,"工种类别不能为空"); + } + List<CoalPayCategory> coalPayCategories = coalPayDto.getCoalPayCategoryies(); + for (CoalPayCategory coalPayCategory : coalPayCategories) { + coalPayCategory.setCoalPayId(coalPay.getId()); + coalPayCategoryMapper.insert(coalPayCategory); + } + return insert; + } + + /** + * 修改缴费信息 + * @param coalPayDto + * @return + */ + @Override + public int updateCoalPay(CoalPayDto coalPayDto) { + CoalPay coalPay = new CoalPay(); + BeanUtils.copyProperties(coalPayDto,coalPay); + coalPay.setUpdateBy(SecurityUtils.getUsername()); + coalPay.setUpdateTime(new Date()); + int i = coalPayMapper.updateCoalPayById(coalPay); + int update = coalPayCategoryMapper.deleteByCoalPayId(coalPayDto.getId()); + if (update>0){ + List<CoalPayCategory> coalPayCategories = coalPayDto.getCoalPayCategoryies(); + for (CoalPayCategory coalPayCategory : coalPayCategories) { + coalPayCategory.setCoalPayId(coalPay.getId()); + coalPayCategoryMapper.insert(coalPayCategory); + } + } + return i; + } + + @Override + public AjaxResult deleteCoalPayByIds(Long[] ids) { + for (Long id : ids) { + List<CoalPayStudent> coalPayStudents = coalPayStudentService.selectByCoalPayIdAndPayStatus(id,1); + if (!CollectionUtils.isEmpty(coalPayStudents)){ + throw new BusinessException(this.getClass(), ResultConstants.BUSINESS_ERROR,"已有学员完成缴费,请勿删除"); + } + } + int i = coalPayMapper.updateByIds(ids); + if (i>0){ + return AjaxResult.success(); + } + return AjaxResult.error(); + } + + //个人查询缴费 + @Override + public List<CoalPayStudentRep> selectCoalPay(CoalPayStudentReq coalPayStudent) { + //查询个人需要缴费 + List<CoalPayStudent> coalPayStudents = coalPayStudentService.selectbyIdcard(coalPayStudent); + List<CoalPayStudentRep> coalPayStudentReps = new ArrayList<>(); + for (CoalPayStudent payStudent : coalPayStudents) { + //封装学生基础信息 + CoalPayStudentRep coalPayStudentRep = new CoalPayStudentRep(); + coalPayStudentRep.setName(payStudent.getName()); + coalPayStudentRep.setIdCard(payStudent.getIdCard()); + coalPayStudentRep.setPhone(payStudent.getPhone()); + coalPayStudentRep.setSex(payStudent.getSex()); + coalPayStudentRep.setPayStatus(payStudent.getPayStatus()); + + //查询对应批次以及批次包含工种类别 + CoalPay coalPay = coalPayMapper.selectById(payStudent.getCoalPayId()); + CoalPayRepDto coalPayRepDto = new CoalPayRepDto(); + BeanUtils.copyProperties(coalPay,coalPayRepDto); + //考点名称 + SysDept sysDept = sysDeptMapper.selectDeptById(coalPay.getDeptId()); + coalPayRepDto.setDeptName(sysDept.getDeptName()); + //查询批次对应工种类别 + List<CoalCategory> coalCategories = coalCategoryMapper.selectByCoalPayId(payStudent.getCoalPayId()); + coalPayRepDto.setCoalCategoryList(coalCategories); + coalPayStudentRep.setCoalPays(coalPayRepDto); + coalPayStudentReps.add(coalPayStudentRep); + } + return coalPayStudentReps; + } + + @Override + public int updateCoalPayType(CoalPayTypeReq coalPayTypeReq) { + CoalPay byId = coalPayMapper.selectById(coalPayTypeReq.getCoalPayId()); + if (coalPayTypeReq.getPayPersonType() != null && byId.getPayPersonType() == 2){ + throw new BusinessException(this.getClass(),ResultConstants.BUSINESS_ERROR,"已为团体缴费,不可更改"); + } + return coalPayMapper.updateByPayId(coalPayTypeReq); + } +} diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/CoalPayStudentServiceImpl.java b/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/CoalPayStudentServiceImpl.java new file mode 100644 index 0000000..52d6633 --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/CoalPayStudentServiceImpl.java @@ -0,0 +1,144 @@ +package com.gkhy.exam.pay.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gkhy.exam.pay.dto.req.CoalPayStudentReq; +import com.gkhy.exam.pay.entity.CoalPayStudent; +import com.gkhy.exam.pay.mapper.CoalPayStudentMapper; +import com.gkhy.exam.pay.service.CoalPayStudentService; +import com.ruoyi.common.constant.ResultConstants; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.exception.BusinessException; +import com.ruoyi.common.utils.SecurityUtils; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.ss.usermodel.WorkbookFactory; +import org.aspectj.weaver.loadtime.Aj; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +@Service +public class CoalPayStudentServiceImpl extends ServiceImpl<CoalPayStudentMapper, CoalPayStudent> implements CoalPayStudentService { + + @Resource + private CoalPayStudentMapper coalPayStudentMapper; + + + @Override + public List<CoalPayStudent> selectCoalPayStudentList(Long coalPayId) { + return coalPayStudentMapper.selectByCoalPayId(coalPayId); + } + + @Override + public AjaxResult updateByCoalPayStudent(CoalPayStudent coalPayStudent) { + CoalPayStudent payStudent = coalPayStudentMapper.selectById(coalPayStudent.getId()); + if(payStudent==null){ + throw new BusinessException(this.getClass(),ResultConstants.BUSINESS_ERROR,"学生不存在"); + } + if (payStudent.getPayStatus()==1){ + throw new BusinessException(this.getClass(),ResultConstants.BUSINESS_ERROR,"学生已完成缴费,不可修改"); + } + coalPayStudent.setUpdateBy(SecurityUtils.getUsername()); + coalPayStudent.setUpdateTime(new Date()); + int i = coalPayStudentMapper.updateCoalPayStudentById(coalPayStudent); + if (i>0){ + return AjaxResult.success(); + } + return AjaxResult.error(); + } + + @Override + public int insertStudent(CoalPayStudent coalPayStudent) { + coalPayStudent.setCreateBy(SecurityUtils.getUsername()); + coalPayStudent.setCreateTime(new Date()); + return coalPayStudentMapper.insertCoalPayStudent(coalPayStudent); + } + + @Override + public int deleteStudent(Long[] ids) { + List<CoalPayStudent> coalPayStudents = coalPayStudentMapper.selectByIds(ids); + List<CoalPayStudent> collect = coalPayStudents.stream().filter(cps -> cps.getPayStatus().equals(1)).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(collect)){ + throw new BusinessException(this.getClass(),ResultConstants.BUSINESS_ERROR,"学生已完成缴费,请勿删除"); + } + return coalPayStudentMapper.updateByIds(ids); + } + + /** + * 导入学生 + * @param file + * @param coalPayId + * @return + * @throws IOException + */ + @Override + public AjaxResult uploadStudent(MultipartFile file,Long coalPayId) throws IOException { + Workbook workbook = WorkbookFactory.create(file.getInputStream()); + + List<CoalPayStudent> coalPayStudents = new ArrayList<>(); + LoginUser loginUser = SecurityUtils.getLoginUser(); + try { + Sheet sheetAt = workbook.getSheetAt(0); + for (int i = 0; i < sheetAt.getLastRowNum(); i++) { + Row row = sheetAt.getRow(i + 1); + CoalPayStudent coalPayStudent = new CoalPayStudent(); + coalPayStudent.setCoalPayId(coalPayId); + if (row!=null){ + coalPayStudent.setName(row.getCell(0).getStringCellValue()); + coalPayStudent.setIdCard(row.getCell(1).getStringCellValue()); + coalPayStudent.setPhone(row.getCell(2).getStringCellValue()); + String stringCellValue = row.getCell(3).getStringCellValue(); + if (stringCellValue.equals("男")){ + coalPayStudent.setSex(0L); + }else if (stringCellValue.equals("女")){ + coalPayStudent.setSex(1L); + } + coalPayStudent.setPayStatus(0L); + coalPayStudent.setCreateBy(loginUser.getUsername()); + coalPayStudent.setCreateTime(new Date()); + coalPayStudents.add(coalPayStudent); + } + } + // 根据身份证号去重 + List<CoalPayStudent> distinctStudents = coalPayStudents.stream() + .collect(Collectors.toMap( + CoalPayStudent::getIdCard, // 使用身份证号作为键 + student -> student, // 使用学生对象作为值 + (existing, replacement) -> existing // 如果键重复,选择保留第一个 + )) + .values() + .stream() + .collect(Collectors.toList()); + for (CoalPayStudent coalPayStudent : distinctStudents) { + coalPayStudentMapper.insert(coalPayStudent); + } + return AjaxResult.success(); + }finally { + workbook.close(); + } + } + + @Override + public List<CoalPayStudent> selectByCoalPayId(Long id) { + return coalPayStudentMapper.selectByCoalPayId(id); + } + + @Override + public List<CoalPayStudent> selectByCoalPayIdAndPayStatus(Long id, int status) { + return coalPayStudentMapper.selectByCoalPayIdAndPayStatus(id,status); + } + + @Override + public List<CoalPayStudent> selectbyIdcard(CoalPayStudentReq coalPayStudent) { + return coalPayStudentMapper.selectByIdcard(coalPayStudent); + } +} diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/utils/HttpResultVo.java b/exam-system/src/main/java/com/gkhy/exam/pay/utils/HttpResultVo.java new file mode 100644 index 0000000..11b1cc0 --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/pay/utils/HttpResultVo.java @@ -0,0 +1,17 @@ +package com.gkhy.exam.pay.utils; + +import lombok.Data; +import org.apache.http.Header; + +@Data +public class HttpResultVo { + + + private Integer statusCode; + private String contentType; + private boolean textType; + private String stringContent; + private byte[] byteArrayContent; + private Header[] headers; + +} diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/utils/PayUtils.java b/exam-system/src/main/java/com/gkhy/exam/pay/utils/PayUtils.java new file mode 100644 index 0000000..b994838 --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/pay/utils/PayUtils.java @@ -0,0 +1,215 @@ +package com.gkhy.exam.pay.utils; + +import com.alibaba.fastjson2.JSONObject; +import com.gkhy.exam.pay.entity.PayReqData; +import org.apache.commons.codec.digest.DigestUtils; +import org.apache.http.HttpEntity; +import org.apache.http.HttpResponse; +import org.apache.http.NameValuePair; +import org.apache.http.StatusLine; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.HttpClient; +import org.apache.http.client.HttpResponseException; +import org.apache.http.client.ResponseHandler; +import org.apache.http.client.config.AuthSchemes; +import org.apache.http.client.config.CookieSpecs; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.config.Registry; +import org.apache.http.config.RegistryBuilder; +import org.apache.http.conn.socket.ConnectionSocketFactory; +import org.apache.http.conn.socket.PlainConnectionSocketFactory; +import org.apache.http.conn.ssl.NoopHostnameVerifier; +import org.apache.http.conn.ssl.SSLConnectionSocketFactory; +import org.apache.http.entity.ContentType; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; +import org.apache.http.message.BasicNameValuePair; +import org.apache.http.util.EntityUtils; + +import javax.net.ssl.SSLContext; +import javax.net.ssl.TrustManager; +import javax.net.ssl.X509TrustManager; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.security.KeyManagementException; +import java.security.NoSuchAlgorithmException; +import java.security.cert.X509Certificate; +import java.util.*; + +/** + * 缴费相关接口 + */ +public class PayUtils { + + public static ResultVo sendApiPost(PayReqData payReqData) throws IOException { + + //正式 + String proUrl="http://finpt.xjcz.gov.cn/fs-service/fs-pay/invoice.do"; + String appid="ED76A5F1703540BE977D34780B371FEB"; + //测试 + String testUrl= "http://finpt.xjcz.gov.cn/fs-service-test/fs-pay/invoice.do"; + + Map<String, String> param = new HashMap<>(); + + HttpPost httpPost = new HttpPost(testUrl); + + //请求参数转为json格式base64编码 + String reqData = Base64.getEncoder().encodeToString(JSONObject.toJSONString(payReqData).getBytes()); + String mac = appid+"||"+reqData; + mac = DigestUtils.md5Hex(mac.getBytes()); + param.put("appid",appid); + param.put("reqdata",reqData); + param.put("mac",mac); + + httpPost.setEntity(assemblyFormEntity(param,"utf-8")); + HttpClient httpClient = getHttpClient(testUrl); + HttpResultVo execute = httpClient.execute(httpPost, getResponseHandler()); + String stringContent = execute.getStringContent(); + ResultVo resultVo = JSONObject.parseObject(stringContent, ResultVo.class); + return resultVo; + } + + private static UrlEncodedFormEntity assemblyFormEntity(Map<String, String> parameters, String charset) { + List<NameValuePair> formParameters = assemblyParameter(parameters); + UrlEncodedFormEntity formEntity = null; + try { + if (charset != null) { + formEntity = new UrlEncodedFormEntity(formParameters, charset); + } else { + formEntity = new UrlEncodedFormEntity(formParameters); + } + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + return formEntity; + } + + private static List<NameValuePair> assemblyParameter(Map<String, String> parameters) { + List<NameValuePair> allParameter = new ArrayList<>(); + if (parameters != null && !parameters.isEmpty()) { + for (String name : parameters.keySet()) { + NameValuePair parameter = new BasicNameValuePair(name, parameters.get(name)); + allParameter.add(parameter); + } + } + return allParameter; + } + + public static HttpClient getHttpClient(String url) { + // 判断https访问 + if (url.startsWith("https")) { + return sslClient(); + } + return HttpClients.createDefault(); + + } + + private static HttpClient sslClient() { + try { + // 在调用SSL之前需要重写验证方法,取消检测SSL + X509TrustManager trustManager = new X509TrustManager() { + @Override + public X509Certificate[] getAcceptedIssuers() { + return null; + } + + @Override + public void checkClientTrusted(X509Certificate[] xcs, String str) {} + + @Override + public void checkServerTrusted(X509Certificate[] xcs, String str) {} + }; + SSLContext ctx = SSLContext.getInstance(SSLConnectionSocketFactory.TLS); + ctx.init(null, new TrustManager[] {trustManager}, null); + SSLConnectionSocketFactory socketFactory = + new SSLConnectionSocketFactory(ctx, NoopHostnameVerifier.INSTANCE); + // 创建Registry + RequestConfig requestConfig = + RequestConfig.custom().setCookieSpec(CookieSpecs.STANDARD_STRICT).setExpectContinueEnabled(Boolean.TRUE) + .setTargetPreferredAuthSchemes(Arrays.asList(AuthSchemes.NTLM, AuthSchemes.DIGEST)) + .setProxyPreferredAuthSchemes(Arrays.asList(AuthSchemes.BASIC)).build(); + Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create() + .register("http", PlainConnectionSocketFactory.INSTANCE).register("https", socketFactory).build(); + // 创建ConnectionManager,添加Connection配置信息 + PoolingHttpClientConnectionManager connectionManager = + new PoolingHttpClientConnectionManager(socketFactoryRegistry); + CloseableHttpClient closeableHttpClient = HttpClients.custom().setConnectionManager(connectionManager) + .setDefaultRequestConfig(requestConfig).build(); + return closeableHttpClient; + } catch (KeyManagementException ex) { + throw new RuntimeException(ex); + } catch (NoSuchAlgorithmException ex) { + throw new RuntimeException(ex); + } + + } + + private static ResponseHandler<HttpResultVo> getResponseHandler() { + ResponseHandler<HttpResultVo> responseHandler = new ResponseHandler<HttpResultVo>() { + @Override + public HttpResultVo handleResponse(HttpResponse httpResponse) throws ClientProtocolException, IOException { + if (httpResponse == null) { + throw new ClientProtocolException("HttpResponse is null"); + } + + StatusLine statusLine = httpResponse.getStatusLine(); + HttpEntity httpEntity = httpResponse.getEntity(); + if (statusLine == null) { + throw new ClientProtocolException("HttpResponse contains no StatusLine"); + } + if (statusLine.getStatusCode() != 200) { + throw new HttpResponseException(statusLine.getStatusCode(), statusLine.getReasonPhrase()); + } + if (httpEntity == null) { + throw new ClientProtocolException("HttpResponse contains no HttpEntity"); + } + + HttpResultVo httpResult = new HttpResultVo(); + httpResult.setStatusCode(statusLine.getStatusCode()); + ContentType contentType = ContentType.getOrDefault(httpEntity); + httpResult.setContentType(contentType.toString()); + boolean isTextType = isTextType(contentType); + httpResult.setTextType(isTextType); + if (isTextType) { + httpResult.setStringContent(EntityUtils.toString(httpEntity)); + } else { + httpResult.setByteArrayContent(EntityUtils.toByteArray(httpEntity)); + } + + httpResult.setHeaders(httpResponse.getAllHeaders()); + + return httpResult; + } + }; + return responseHandler; + } + + private static boolean isTextType(ContentType contentType) { + if (contentType == null) { + throw new RuntimeException("ContentType is null"); + } + if (contentType.getMimeType().startsWith("text")) { + return true; + } else if (contentType.getMimeType().startsWith("image")) { + return false; + } else if (contentType.getMimeType().startsWith("application")) { + if (contentType.getMimeType().contains("json") || contentType.getMimeType().contains("xml")) { + return true; + } else { + return false; + } + } else if (contentType.getMimeType().startsWith("multipart")) { + return false; + } else { + return true; + } + } + + + + + +} diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/utils/ResultVo.java b/exam-system/src/main/java/com/gkhy/exam/pay/utils/ResultVo.java new file mode 100644 index 0000000..ec8bad8 --- /dev/null +++ b/exam-system/src/main/java/com/gkhy/exam/pay/utils/ResultVo.java @@ -0,0 +1,18 @@ +package com.gkhy.exam.pay.utils; + +import lombok.Data; + +@Data +public class ResultVo { + private String respcode; + private String respmsg; + private Respdata respdata; + + @Data + public class Respdata{ + private String orderNo; + private String billNo; + private String orderId; + private String fileData; + } +} diff --git a/exam-system/src/main/resources/mapper/pay/CoalCategoryMapper.xml b/exam-system/src/main/resources/mapper/pay/CoalCategoryMapper.xml new file mode 100644 index 0000000..217268b --- /dev/null +++ b/exam-system/src/main/resources/mapper/pay/CoalCategoryMapper.xml @@ -0,0 +1,141 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.gkhy.exam.pay.mapper.CoalCategoryMapper"> + + <resultMap type="CoalCategory" id="CoalCategoryResult"> + <result property="id" column="id"/> + <result property="categoryType" column="category_type"/> + <result property="subjectName" column="subject_name"/> + <result property="amount" column="amount"/> + <result property="businessCode" column="business_code"/> + <result property="describe" column="describe"/> + <result property="updateBy" column="update_by"/> + <result property="updateTime" column="update_time"/> + <result property="createBy" column="create_by"/> + <result property="createTime" column="create_time"/> + </resultMap> + + <sql id="selectCoalCategoryVo"> + select id, + category_type, + subject_name, + amount, + business_code, + `describe`, update_by, update_time, create_by, create_time + from coal_category + </sql> + <insert id="insertCoalCategory"> + insert into coal_category + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="categoryType != null">category_type,</if> + <if test="subjectName != null and subjectName != ''">subject_name,</if> + <if test="amount != null">amount,</if> + <if test="businessCode!=null">business_code,</if> + <if test="describe != null">`describe`,</if> + <if test="createBy != null">create_by,</if> + <if test="createTime != null">create_time,</if> + <if test="updateBy != null">update_by,</if> + <if test="updateTime != null">update_time,</if> + <if test="delFlag != null">del_flag,</if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="categoryType != null">#{categoryType},</if> + <if test="subjectName != null and subjectName != ''">#{subjectName},</if> + <if test="amount != null">#{amount},</if> + <if test="businessCode!=null">#{businessCode},</if> + <if test="describe != null">#{describe},</if> + <if test="createBy != null">#{createBy},</if> + <if test="createTime != null">#{createTime},</if> + <if test="updateBy != null">#{updateBy},</if> + <if test="updateTime != null">#{updateTime},</if> + <if test="delFlag != null">#{delFlag},</if> + </trim> + </insert> + <insert id="saveCoalTicket"> + INSERT INTO `swspkmas`.`coal_ticket` + ( `ticket_company_name`, `ticket_company_code`, `drawer`, `check`, `company_code` ) + VALUES + ( #{ticketCompanyName}, #{ticketCompanyCode}, #{drawer}, #{check}, #{companyCode} ) + </insert> + + <update id="updateBatchByIds"> + update coal_category set del_flag = 2 where id in + <foreach item="id" collection="array" open="(" separator="," close=")"> + #{id} + </foreach> + </update> + <update id="updateCategoryById"> + update coal_category + <trim prefix="SET" suffixOverrides=","> + <if test="categoryType != null">category_type = #{categoryType},</if> + <if test="subjectName != null and subjectName != ''">subject_name = #{subjectName},</if> + <if test="amount != null">amount = #{amount},</if> + <if test="businessCode!=null">business_code = #{businessCode},</if> + <if test="describe != null">`describe` = #{describe},</if> + <if test="updateBy != null">update_by = #{updateBy},</if> + <if test="updateTime != null">update_time = #{updateTime},</if> + <if test="createBy != null">create_by = #{createBy},</if> + <if test="createTime != null">create_time = #{createTime},</if> + <if test="delFlag != null">del_flag = #{delFlag},</if> + </trim> + where id = #{id} + </update> + <update id="updateCoalTicket"> + update coal_ticket + <trim prefix="SET" suffixOverrides=","> + <if test="ticketCompanyName != null">ticket_company_name = #{ticketCompanyName},</if> + <if test="ticketCompanyCode != null and ticketCompanyCode != ''">ticket_company_code = #{ticketCompanyCode},</if> + <if test="drawer != null">drawer = #{drawer},</if> + <if test="check!=null">`check` = #{check},</if> + <if test="companyCode != null">company_code = #{companyCode},</if> + </trim> + </update> + + <select id="selectCoalCategoryList" parameterType="CoalCategory" resultMap="CoalCategoryResult"> + <include refid="selectCoalCategoryVo"/> + <where> + <if test="categoryType != null ">and category_type = #{categoryType}</if> + <if test="subjectName != null and subjectName != ''">and subject_name like concat('%', #{subjectName}, + '%') + </if> + <if test="amount != null ">and amount = #{amount}</if> + and del_flag = 0 + order by create_time desc + </where> + </select> + + <select id="selectByCoalCategory" resultType="java.lang.Integer"> + select count(id) + from coal_category + <where> + del_flag = 0 + and category_type = #{categoryType} + and subject_name = #{subjectName} + <if test="id!=null and id!=''"> + and id != #{id} + </if> + </where> + + </select> + + <select id="selectByCoalPayId" resultMap="CoalCategoryResult"> + SELECT + cc.id, + cc.category_type, + cc.subject_name, + cc.amount, + cc.business_code, + cc.`describe` + FROM + coal_category cc + LEFT JOIN coal_pay_category cpc ON cc.id = cpc.coal_category_id + WHERE + cpc.coal_pay_id = #{id} and cpc.del_flag = 0 + </select> + <select id="selectCoalTicket" resultType="com.gkhy.exam.pay.entity.CoalTicket"> + select id , ticket_company_name,ticket_company_code,drawer,`check`,company_code from coal_ticket + </select> + +</mapper> \ No newline at end of file diff --git a/exam-system/src/main/resources/mapper/pay/CoalPayCategoryMapper.xml b/exam-system/src/main/resources/mapper/pay/CoalPayCategoryMapper.xml new file mode 100644 index 0000000..37e8777 --- /dev/null +++ b/exam-system/src/main/resources/mapper/pay/CoalPayCategoryMapper.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.gkhy.exam.pay.mapper.CoalPayCategoryMapper"> + + <resultMap type="CoalPayCategory" id="CoalPayCategoryResult"> + <result property="id" column="id"/> + <result property="coalPayId" column="coal_pay_id"/> + <result property="coalCategoryId" column="coal_category_id"/> + <result property="categoryType" column="category_type"/> + <result property="updateBy" column="update_by"/> + <result property="updateTime" column="update_time"/> + <result property="createBy" column="create_by"/> + <result property="createTime" column="create_time"/> + <result property="delFlag" column="del_flag"/> + </resultMap> + + <sql id="selectCoalPayCategoryVo"> + select id, + coal_pay_id, + coal_category_id, + category_type, + update_by, + update_time, + create_by, + create_time, + del_flag + from coal_pay_category + </sql> + <delete id="deleteByCoalPayId"> + update coal_pay_category + set del_flag = 2 + where coal_pay_id = #{id} + </delete> + +</mapper> \ No newline at end of file diff --git a/exam-system/src/main/resources/mapper/pay/CoalPayMapper.xml b/exam-system/src/main/resources/mapper/pay/CoalPayMapper.xml new file mode 100644 index 0000000..bf3fbd5 --- /dev/null +++ b/exam-system/src/main/resources/mapper/pay/CoalPayMapper.xml @@ -0,0 +1,126 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper +PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" +"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.gkhy.exam.pay.mapper.CoalPayMapper"> + + <resultMap type="CoalPay" id="CoalPayResult"> + <result property="id" column="id" /> + <result property="batchName" column="batch_name" /> + <result property="deptId" column="dept_id" /> + <result property="payType" column="pay_type" /> + <result property="amount" column="amount" /> + <result property="year" column="year" /> + <result property="quarter" column="quarter" /> + <result property="payPersonType" column="pay_person_type" /> + <result property="payCompanyName" column="pay_company_name" /> + <result property="payCompanyCard" column="pay_company_card" /> + <result property="updateBy" column="update_by" /> + <result property="updateTime" column="update_time" /> + <result property="createBy" column="create_by" /> + <result property="createTime" column="create_time" /> + <result property="delFlag" column="del_flag" /> + </resultMap> + + <sql id="selectCoalPayVo"> + select id, + batch_name, + dept_id, + pay_type, + amount, + year, + quarter, + pay_person_type, pay_company_name, pay_company_card, update_by, update_time, create_by, create_time, del_flag from coal_pay + </sql> + + <insert id="insertBath" parameterType="CoalPay" useGeneratedKeys="true" keyProperty="id"> + insert into coal_pay + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="batchName != null and batchName != ''">batch_name,</if> + <if test="deptId != null">dept_id,</if> + <if test="payType != null">pay_type,</if> + <if test="amount != null">amount,</if> + <if test="year != null and year != ''">year,</if> + <if test="quarter != null">quarter,</if> + <if test="payPersonType != null">pay_person_type,</if> + <if test="payCompanyName != null">pay_company_name,</if> + <if test="payCompanyCard != null">pay_company_card,</if> + <if test="createBy != null">create_by,</if> + <if test="createTime != null">create_time,</if> + <if test="updateBy != null and updateBy != ''">update_by,</if> + <if test="updateTime != null">update_time,</if> + <if test="delFlag != null">del_flag,</if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="batchName != null and batchName != ''">#{batchName},</if> + <if test="deptId != null">#{deptId},</if> + <if test="payType != null">#{payType},</if> + <if test="amount != null">#{amount},</if> + <if test="year != null and year != ''">#{year},</if> + <if test="quarter != null">#{quarter},</if> + <if test="payPersonType != null">#{payPersonType},</if> + <if test="payCompanyName != null">#{payCompanyName},</if> + <if test="payCompanyCard != null">#{payCompanyCard},</if> + <if test="createBy != null">#{createBy},</if> + <if test="createTime != null">#{createTime},</if> + <if test="updateBy != null and updateBy != ''">#{updateBy},</if> + <if test="updateTime != null">#{updateTime},</if> + <if test="delFlag != null">#{delFlag},</if> + </trim> + </insert> + + <update id="updateByIds"> + update coal_pay set del_flag=2 where id in + <foreach item="id" collection="array" open="(" separator="," close=")"> + #{id} + </foreach> + </update> + + <update id="updateByPayId"> + update coal_pay + <trim prefix="SET" suffixOverrides=","> + <if test="payPersonType != null">pay_person_type = #{payPersonType},</if> + <if test="payCompanyName != null">pay_company_name = #{payCompanyName},</if> + <if test="payCompanyCard != null">pay_company_card = #{payCompanyCard},</if> + </trim> + where id = #{coalPayId} + </update> + <update id="updateCoalPayById"> + update coal_pay + <trim prefix="SET" suffixOverrides=","> + <if test="batchName != null and batchName != ''">batch_name = #{batchName},</if> + <if test="deptId != null">dept_id = #{deptId},</if> + <if test="payType != null">pay_type = #{payType},</if> + <if test="amount != null">amount = #{amount},</if> + <if test="year != null and year != ''">year = #{year},</if> + <if test="quarter != null">quarter = #{quarter},</if> + <if test="payPersonType != null">pay_person_type = #{payPersonType},</if> + <if test="payCompanyName != null">pay_company_name = #{payCompanyName},</if> + <if test="payCompanyCard != null">pay_company_card = #{payCompanyCard},</if> + <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> + <if test="updateTime != null">update_time = #{updateTime},</if> + <if test="createBy != null">create_by = #{createBy},</if> + <if test="createTime != null">create_time = #{createTime},</if> + <if test="delFlag != null">del_flag = #{delFlag},</if> + </trim> + where id = #{id} + </update> + + + <select id="selectCoalPayList" parameterType="CoalPay" resultMap="CoalPayResult"> + <include refid="selectCoalPayVo"/> + <where> + <if test="deptId != null "> + and dept_id = #{deptId} + </if> + <if test="minDate !=null"> + and create_time >= #{minDate} + </if> + <if test="maxDate != null"> + and create_time <= #{maxDate} + </if> + and del_flag = 0 + order by create_time desc + </where> + </select> +</mapper> \ No newline at end of file diff --git a/exam-system/src/main/resources/mapper/pay/CoalPayStudentMapper.xml b/exam-system/src/main/resources/mapper/pay/CoalPayStudentMapper.xml new file mode 100644 index 0000000..e7185fe --- /dev/null +++ b/exam-system/src/main/resources/mapper/pay/CoalPayStudentMapper.xml @@ -0,0 +1,104 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper +PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" +"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.gkhy.exam.pay.mapper.CoalPayStudentMapper"> + <sql id="selectCoalPayStudentVo"> + select id, coal_pay_id, name, id_card, phone, sex, pay_code, pay_status,pay_type,order_id,file_data,gov_pay_status, update_by, update_time, create_by, create_time, del_flag from coal_pay_student + </sql> + <insert id="insertCoalPayStudent"> + insert into coal_pay_student + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="id != null">id,</if> + <if test="coalPayId != null">coal_pay_id,</if> + <if test="name != null and name != ''">name,</if> + <if test="idCard != null and idCard != ''">id_card,</if> + <if test="phone != null and phone != ''">phone,</if> + <if test="sex != null">sex,</if> + <if test="payCode != null">pay_code,</if> + <if test="payStatus != null">pay_status,</if> + <if test="payType != null">pay_type,</if> + <if test="orderId!=null">order_id,</if> + <if test="fileData!=null">file_data,</if> + <if test="govPayStatus!=null">gov_pay_status,</if> + <if test="createBy != null">create_by,</if> + <if test="createTime != null">create_time,</if> + <if test="updateBy != null">update_by,</if> + <if test="updateTime != null">update_time,</if> + <if test="delFlag != null">del_flag,</if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="id != null">#{id},</if> + <if test="coalPayId != null">#{coalPayId},</if> + <if test="name != null and name != ''">#{name},</if> + <if test="idCard != null and idCard != ''">#{idCard},</if> + <if test="phone != null and phone != ''">#{phone},</if> + <if test="sex != null">#{sex},</if> + <if test="payCode != null">#{payCode},</if> + <if test="payStatus != null">#{payStatus},</if> + <if test="payType != null">#{payType},</if> + <if test="orderId!=null">#{orderId},</if> + <if test="fileData!=null">#{fileData},</if> + <if test="govPayStatus!=null">#{govPayStatus},</if> + <if test="createBy != null">#{createBy},</if> + <if test="createTime != null">#{createTime},</if> + <if test="updateBy != null">#{updateBy},</if> + <if test="updateTime != null">#{updateTime},</if> + <if test="delFlag != null">#{delFlag},</if> + </trim> + </insert> + + <update id="updateByIds"> + update coal_pay_student set del_flag = 2 where id in + <foreach item="id" collection="array" open="(" separator="," close=")"> + #{id} + </foreach> + </update> + <update id="updateCoalPayStudentById"> + update coal_pay_student + <trim prefix="SET" suffixOverrides=","> + <if test="coalPayId != null">coal_pay_id = #{coalPayId},</if> + <if test="name != null and name != ''">name = #{name},</if> + <if test="idCard != null and idCard != ''">id_card = #{idCard},</if> + <if test="phone != null and phone != ''">phone = #{phone},</if> + <if test="sex != null">sex = #{sex},</if> + <if test="payType != null">pay_type = #{payType},</if> + <if test="payCode != null">pay_code = #{payCode},</if> + <if test="payStatus != null">pay_status = #{payStatus},</if> + <if test="orderId!=null">order_id=#{orderId},</if> + <if test="fileData!=null">file_data=#{fileData},</if> + <if test="govPayStatus!=null">gov_pay_status=#{govPayStatus},</if> + <if test="updateBy != null">update_by = #{updateBy},</if> + <if test="updateTime != null">update_time = #{updateTime},</if> + <if test="createBy != null">create_by = #{createBy},</if> + <if test="createTime != null">create_time = #{createTime},</if> + <if test="delFlag != null">del_flag = #{delFlag},</if> + </trim> + where id = #{id} + </update> + + <select id="selectByCoalPayId" resultType="com.gkhy.exam.pay.entity.CoalPayStudent"> + <include refid="selectCoalPayStudentVo"></include> + where coal_pay_id = #{coalPayId} + and del_flag =0 + </select> + + <select id="selectByCoalPayIdAndPayStatus" resultType="com.gkhy.exam.pay.entity.CoalPayStudent"> + <include refid="selectCoalPayStudentVo"></include> + where coal_pay_id = #{id} and pay_status = #{status} + and del_flag =0 + </select> + + <select id="selectByIds" resultType="com.gkhy.exam.pay.entity.CoalPayStudent"> + <include refid="selectCoalPayStudentVo"></include> + where id in + <foreach item="id" collection="array" open="(" separator="," close=")"> + #{id} + </foreach> + </select> + + <select id="selectByIdcard" resultType="com.gkhy.exam.pay.entity.CoalPayStudent"> + <include refid="selectCoalPayStudentVo"></include> + where id_card=#{idCard} and phone=#{phone} and del_flag = 0 + </select> +</mapper> \ No newline at end of file diff --git a/exam-system/src/test/java/TextPay.java b/exam-system/src/test/java/TextPay.java new file mode 100644 index 0000000..5e8fda3 --- /dev/null +++ b/exam-system/src/test/java/TextPay.java @@ -0,0 +1,58 @@ +import com.gkhy.exam.pay.entity.PayReqData; +import com.gkhy.exam.pay.utils.PayUtils; +import com.gkhy.exam.pay.utils.ResultVo; +import com.ruoyi.common.utils.uuid.UUID; +import lombok.extern.log4j.Log4j2; +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit4.SpringRunner; + +import java.io.IOException; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +@SpringBootTest(classes = TextPay.class) +@ActiveProfiles("dev") +@Log4j2 +public class TextPay { + + + @Test + public void paytext() throws IOException { + + + PayReqData payReqData = new PayReqData(); + PayReqData.Feedata feedatas = new PayReqData.Feedata(); + + payReqData.setDesc("安全技术考试考务费_煤矿安全作业-001504"); + payReqData.setOrderNo("10000000001"); + payReqData.setMoney(BigDecimal.valueOf(103)); + payReqData.setAmount(1); + payReqData.setPayerName("测试"); + payReqData.setCertNo("411381199801093991"); + payReqData.setPayerType(1); + payReqData.setInvoiceSocialCode("11650000MB1957293J"); + payReqData.setHandlingPerson("张三"); + payReqData.setChecker("李四"); + payReqData.setEnterCode("680534083"); + + List<PayReqData.Feedata> feedatas1 = new ArrayList<>(); + feedatas.setAmount(1); + feedatas.setBusCode("DZ001504"); + feedatas.setPrice(BigDecimal.valueOf(103)); + feedatas1.add(feedatas); + payReqData.setFeeDatas(feedatas1); + + + ResultVo resultVo = PayUtils.sendApiPost(payReqData); + System.out.printf("请求结果:"+resultVo); + + } + + + + + +} -- Gitblit v1.9.2