Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV
| | |
| | | * @param cardNum |
| | | * @return |
| | | */ |
| | | Map getCardIdAndClientNum(@Param("cardNum") String cardNum); |
| | | Map getCardIdAndClientNum(@Param("cardNum") Long cardNum); |
| | | |
| | | /** |
| | | * 根据农户主键获取水卡列表 |
| | |
| | | * @return |
| | | */ |
| | | List<VoCards> getUnreplaced(Map<?, ?> params); |
| | | |
| | | /** |
| | | * 判断指定水卡是否为挂失状态且无补卡记录 |
| | | * @param cardNum 水卡编号 |
| | | * @return 符合条件记录数,最多一条 |
| | | */ |
| | | Integer isLostAndUnreplaced(@Param("cardNum") Long cardNum); |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.dy.pipIrrGlobal.pojoSe.SeVirtualCard; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | /** |
| | | * @author ZhuBaoMin |
| | | * @date 2024-03-05 20:45 |
| | | * @LastEditTime 2024-03-05 20:45 |
| | | * @date 2024-04-22 9:38 |
| | | * @LastEditTime 2024-04-22 9:38 |
| | | * @Description |
| | | */ |
| | | |
| | |
| | | |
| | | int updateByPrimaryKey(SeVirtualCard record); |
| | | |
| | | /** |
| | | * 验证农户是否拥有指定名称的虚拟卡 |
| | | * @param clientId 农户编号 |
| | | * @param vcName 虚拟卡名称 |
| | | * @return 符合条件记录数 |
| | | */ |
| | | int getRecordCountByName(@Param("clientId") Long clientId, @Param("vcName") String vcName); |
| | | } |
| | |
| | | private Byte state; |
| | | |
| | | /** |
| | | * 原挂失卡ID |
| | | */ |
| | | @Schema(description = "卡片状态", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | @Positive(message = "原挂失卡ID必须为正数") |
| | | private Long originalCardId; |
| | | |
| | | /** |
| | | * 开卡时间 |
| | | */ |
| | | @Schema(description = "开卡时间", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import jakarta.validation.constraints.Max; |
| | | import jakarta.validation.constraints.Min; |
| | | import jakarta.validation.constraints.NotBlank; |
| | | import jakarta.validation.constraints.NotNull; |
| | | import lombok.*; |
| | | |
| | |
| | | public static final long serialVersionUID = 202403052048001L; |
| | | |
| | | /** |
| | | * 主键 |
| | | */ |
| | | * 主键 |
| | | */ |
| | | @JSONField(serializeUsing= ObjectWriterImplToString.class) |
| | | @TableId(type = IdType.INPUT) |
| | | @Schema(description = "实体id", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | private Long id; |
| | | |
| | | /** |
| | | * 农户ID |
| | | */ |
| | | * 虚拟卡名称 |
| | | */ |
| | | @Schema(description = "农户ID", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | @NotBlank(message = "虚拟卡名称不能为空") |
| | | private String vcName; |
| | | |
| | | /** |
| | | * 农户ID |
| | | */ |
| | | @Schema(description = "农户ID", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | @NotNull(message = "农户ID不能为空") |
| | | private Long clientId; |
| | | |
| | | /** |
| | | * 钱包余额 |
| | | */ |
| | | * 钱包余额 |
| | | */ |
| | | @Schema(description = "钱包余额", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | @Min(value = 0, message = "钱包余额不能小于0") |
| | | private Double money; |
| | | |
| | | /** |
| | | * 最后操作;1-开户,2-充值,3-消费,4-申请退款,5-退款审核 |
| | | */ |
| | | * 最后操作;1-开户,2-充值,3-消费,4-申请退款,5-退款审核 |
| | | */ |
| | | @Schema(description = "操作类型", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | @Min(value = 1, message = "最后操作不能小于1") |
| | | @Max(value = 5, message = "最后操作不能大于5") |
| | | private Byte lastOperate; |
| | | |
| | | /** |
| | | * 最后操作时间 |
| | | */ |
| | | * 最后操作时间 |
| | | */ |
| | | @Schema(description = "最后操作时间", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | private Date lastOperateTime; |
| | | |
| | | /** |
| | | * 创建时间 |
| | | */ |
| | | * 是否使用中;0-未使用,1-使用中 |
| | | */ |
| | | @Schema(description = "是否使用中", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | private Byte inUse; |
| | | |
| | | /** |
| | | * 创建时间 |
| | | */ |
| | | @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | private Date createTime; |
| | | |
| | |
| | | @ColumnWidth(15) |
| | | private String divideName; |
| | | |
| | | @Schema(title = "所属片区") |
| | | @ExcelProperty("所属片区") |
| | | @Schema(title = "所属片区ID") |
| | | @ExcelProperty("所属片区ID") |
| | | @ColumnWidth(19) |
| | | private String blockId; |
| | | |
| | | @Schema(title = "所属片区名称") |
| | | @ExcelProperty("所属片区名称") |
| | | @ColumnWidth(15) |
| | | private String blockName; |
| | | |
| | |
| | | @ColumnWidth(25) |
| | | private String address; |
| | | |
| | | @Schema(title = "覆盖村") |
| | | @ExcelProperty("覆盖村") |
| | | @ColumnWidth(25) |
| | | private String villages; |
| | | |
| | | @Schema(title = "覆盖面积") |
| | | @ExcelProperty("覆盖面积") |
| | | @ColumnWidth(25) |
| | | private String area; |
| | | |
| | | @Schema(title = "经度") |
| | | @ExcelProperty("经度") |
| | | @ColumnWidth(25) |
| | | private String lng; |
| | | |
| | | @Schema(title = "纬度") |
| | | @ExcelProperty("纬度") |
| | | @ColumnWidth(25) |
| | | private String lat; |
| | | |
| | | @Schema(title = "操作人") |
| | | @ExcelProperty("操作人") |
| | | @ColumnWidth(25) |
| | | private String operator; |
| | | |
| | | @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | @Schema(title = "操作时间") |
| | | @ExcelIgnore |
| | | private Date operateDt; |
| | | |
| | | @Schema(title = "备注") |
| | | @ExcelProperty("备注") |
| | | @ColumnWidth(250) |
| | | private String remarks; |
| | | } |
| | |
| | | public class VoIntake implements BaseEntity { |
| | | private static final long serialVersionUID = 202312261049001L; |
| | | |
| | | @Schema(title = "ID") |
| | | @ExcelProperty("ID") |
| | | @Schema(title = "取水口ID") |
| | | @ExcelProperty("取水口ID") |
| | | @ColumnWidth(10) |
| | | private String id; |
| | | private String intakeId; |
| | | |
| | | @Schema(title = "取水口名称") |
| | | @ExcelProperty("取水口名称") |
| | | @ColumnWidth(15) |
| | | private String intakeName; |
| | | |
| | | @Schema(title = "分水房ID") |
| | | @ExcelProperty("分水房ID") |
| | | @ColumnWidth(10) |
| | | private String divideId; |
| | | |
| | | @Schema(title = "所属分水房") |
| | | @ExcelProperty("所属分水房") |
| | | @ColumnWidth(15) |
| | | private String divideName; |
| | | |
| | | @Schema(title = "片区ID") |
| | | @ExcelProperty("片区ID") |
| | | @ColumnWidth(15) |
| | | private String blockId; |
| | | |
| | | @Schema(title = "所属片区") |
| | | @ExcelProperty("所属片区") |
| | |
| | | @ColumnWidth(25) |
| | | private String address; |
| | | |
| | | @Schema(title = "经度") |
| | | @ExcelProperty("经度") |
| | | @ColumnWidth(25) |
| | | private String lng; |
| | | |
| | | @Schema(title = "纬度") |
| | | @ExcelProperty("纬度") |
| | | @ColumnWidth(25) |
| | | private String lat; |
| | | |
| | | @Schema(title = "操作人") |
| | | @ExcelProperty("操作人") |
| | | @ColumnWidth(25) |
| | | private String operator; |
| | | |
| | | @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | @Schema(title = "操作时间") |
| | | @ExcelIgnore |
| | | private Date operateDt; |
| | | |
| | | @Schema(title = "备注") |
| | | @ExcelProperty("备注") |
| | | @ColumnWidth(250) |
| | | private String remarks; |
| | | } |
| | |
| | | webPort: 8085 |
| | | actutorPort: 9085 |
| | | idSuffix: 7 |
| | | irrigate: |
| | | webPort: 8086 |
| | | actutorPort: 9086 |
| | | idSuffix: 8 |
| | | |
| | | #项目编号 |
| | | #projectCode: |
| | |
| | | AND divi.name LIKE CONCAT('%',#{divideName},'%') |
| | | </if> |
| | | |
| | | <if test = "blockName != null and blockName !=''"> |
| | | AND blo.name = #{blockName} |
| | | <if test = "blockId != null and blockId !=''"> |
| | | AND divi.blockId = #{blockId} |
| | | </if> |
| | | </where> |
| | | </select> |
| | |
| | | (@i:=@i+1) AS id, |
| | | CAST(divi.id AS char) AS divideId, |
| | | divi.name AS divideName, |
| | | CAST(divi.blockId AS char) AS blockId, |
| | | blo.`name` AS blockName, |
| | | divi.header, |
| | | divi.villages, |
| | | divi.area, |
| | | divi.lng, |
| | | divi.lat, |
| | | divi.phone, |
| | | divi.remarks, |
| | | CONCAT(country.`name`, town.`name`, village.`name`) AS address, |
| | | CAST(divi.operator AS char) AS operator, |
| | | divi.operateDt |
| | | FROM pr_divide divi |
| | | INNER JOIN ba_block blo ON divi.blockId = blo.id |
| | |
| | | AND divi.name LIKE CONCAT('%',#{divideName},'%') |
| | | </if> |
| | | |
| | | <if test = "blockName != null and blockName !=''"> |
| | | AND blo.name = #{blockName} |
| | | <if test = "blockId != null"> |
| | | AND divi.blockId = #{blockId} |
| | | </if> |
| | | </where> |
| | | ORDER BY divi.operateDt DESC |
| | |
| | | AND ge.name LIKE CONCAT('%', #{intakeName}, '%') |
| | | </if> |
| | | |
| | | <if test="divideName != null and divideName != ''"> |
| | | AND divi.name LIKE CONCAT('%', #{divideName}, '%') |
| | | <if test = "divideId != null"> |
| | | AND divi.id = #{divideId} |
| | | </if> |
| | | |
| | | <if test="blockName != null and blockName != ''"> |
| | | AND blo.name LIKE CONCAT('%', #{blockName}, '%') |
| | | <if test = "blockId != null"> |
| | | AND blo.id = #{blockId} |
| | | </if> |
| | | |
| | | <if test="isBinded == 0"> |
| | |
| | | |
| | | <!--根据指定条件获取取水口记录--> |
| | | <select id="getIntakes" resultType="com.dy.pipIrrGlobal.voPr.VoIntake"> |
| | | SELECT CAST(ge.id AS char) AS id, |
| | | SELECT |
| | | CAST(ge.id AS char) AS intakeId, |
| | | ge.`name` AS intakeName, |
| | | CAST(divi.id AS char) AS divideId, |
| | | divi.`name` AS divideName, |
| | | CAST(blo.id AS char) AS blockId, |
| | | blo.`name` AS blockName, |
| | | ge.lng, |
| | | ge.lat, |
| | | ge.remarks, |
| | | ge.operator, |
| | | ge.operateDt As operateDt, |
| | | (CASE |
| | | WHEN ge.id NOT IN(SELECT intakeId FROM pr_controller where deleted = 0) THEN "未绑定" |
| | |
| | | AND ge.name LIKE CONCAT('%', #{intakeName}, '%') |
| | | </if> |
| | | |
| | | <if test="divideName != null and divideName != ''"> |
| | | AND divi.name LIKE CONCAT('%', #{divideName}, '%') |
| | | <if test = "divideId != null"> |
| | | AND divi.id = #{divideId} |
| | | </if> |
| | | |
| | | <if test="blockName != null and blockName != ''"> |
| | | AND blo.name LIKE CONCAT('%', #{blockName}, '%') |
| | | <if test = "blockId != null"> |
| | | AND blo.id = #{blockId} |
| | | </if> |
| | | |
| | | <if test="isBinded == 0"> |
| | |
| | | <result column="clientId" jdbcType="BIGINT" property="clientid" /> |
| | | <result column="money" jdbcType="FLOAT" property="money" /> |
| | | <result column="state" jdbcType="TINYINT" property="state" /> |
| | | <result column="original_card_id" jdbcType="BIGINT" property="originalCardId"/> |
| | | <result column="createDt" jdbcType="TIMESTAMP" property="createdt" /> |
| | | <result column="replaceDt" jdbcType="TIMESTAMP" property="replacedt" /> |
| | | <result column="rechargeDt" jdbcType="TIMESTAMP" property="rechargedt" /> |
| | |
| | | </resultMap> |
| | | <sql id="Base_Column_List"> |
| | | <!--@mbg.generated--> |
| | | id, cardAddr, cardNum, clientId, money, `state`, createDt, replaceDt, rechargeDt, |
| | | id, cardAddr, cardNum, clientId, money, `state`, original_card_id, createDt, replaceDt, rechargeDt, |
| | | lossDtDt, cancelDt, unlockDt, reversalDt, refundDt, consumeDt, lastOper, remarks |
| | | </sql> |
| | | <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> |
| | |
| | | <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.dy.pipIrrGlobal.pojoSe.SeClientCard"> |
| | | <!--@mbg.generated--> |
| | | insert into se_client_card (id, cardAddr, cardNum, clientId, |
| | | money, `state`, createDt, |
| | | money, `state`, original_card_id, createDt, |
| | | replaceDt, rechargeDt, lossDtDt, |
| | | cancelDt, unlockDt, reversalDt, refundDt, |
| | | consumeDt, lastOper, remarks |
| | | ) |
| | | values (#{id,jdbcType=BIGINT}, #{cardaddr,jdbcType=VARCHAR}, #{cardnum,jdbcType=BIGINT}, #{clientid,jdbcType=BIGINT}, |
| | | #{money,jdbcType=FLOAT}, #{state,jdbcType=TINYINT}, #{createdt,jdbcType=TIMESTAMP}, |
| | | #{money,jdbcType=FLOAT}, #{state,jdbcType=TINYINT}, #{originalCardId,jdbcType=BIGINT}, #{createdt,jdbcType=TIMESTAMP}, |
| | | #{replacedt,jdbcType=TIMESTAMP}, #{rechargedt,jdbcType=TIMESTAMP}, #{lossdtdt,jdbcType=TIMESTAMP}, |
| | | #{canceldt,jdbcType=TIMESTAMP}, #{unlockdt,jdbcType=TIMESTAMP}, #{reversaldt,jdbcType=TIMESTAMP}, |
| | | #{refunddt,jdbcType=TIMESTAMP}, #{consumedt,jdbcType=TIMESTAMP}, #{lastoper,jdbcType=TINYINT}, #{remarks,jdbcType=VARCHAR} |
| | |
| | | </if> |
| | | <if test="state != null"> |
| | | `state`, |
| | | </if> |
| | | <if test="originalCardId != null"> |
| | | original_card_id, |
| | | </if> |
| | | <if test="createdt != null"> |
| | | createDt, |
| | |
| | | </if> |
| | | <if test="state != null"> |
| | | #{state,jdbcType=TINYINT}, |
| | | </if> |
| | | <if test="originalCardId != null"> |
| | | #{originalCardId,jdbcType=BIGINT}, |
| | | </if> |
| | | <if test="createdt != null"> |
| | | #{createdt,jdbcType=TIMESTAMP}, |
| | |
| | | <if test="state != null"> |
| | | `state` = #{state,jdbcType=TINYINT}, |
| | | </if> |
| | | <if test="originalCardId != null"> |
| | | `original_card_id` = #{originalCardId,jdbcType=BIGINT}, |
| | | </if> |
| | | <if test="createdt != null"> |
| | | createDt = #{createdt,jdbcType=TIMESTAMP}, |
| | | </if> |
| | |
| | | clientId = #{clientid,jdbcType=BIGINT}, |
| | | money = #{money,jdbcType=FLOAT}, |
| | | `state` = #{state,jdbcType=TINYINT}, |
| | | original_card_id = #{originalCardId,jdbcType=BIGINT}, |
| | | createDt = #{createdt,jdbcType=TIMESTAMP}, |
| | | replaceDt = #{replacedt,jdbcType=TIMESTAMP}, |
| | | rechargeDt = #{rechargedt,jdbcType=TIMESTAMP}, |
| | |
| | | SELECT |
| | | COUNT(*) AS recordCount |
| | | FROM se_client_card card |
| | | INNER JOIN se_client cli ON card.clientId = cli.id |
| | | WHERE card.state = 3 AND NOT EXISTS (SELECT * FROM se_client_card card2 WHERE card.clientId = card2.clientId AND card2.state = 1) |
| | | INNER JOIN se_client cli ON card.clientId = cli.id |
| | | WHERE card.state = 3 AND NOT EXISTS (SELECT * FROM se_client_card card2 WHERE card2.original_card_id = card.cardNum) |
| | | </select> |
| | | |
| | | <!--获取已挂失未补卡的记录--> |
| | |
| | | FORMAT(card.money,2) AS money |
| | | FROM se_client_card card |
| | | INNER JOIN se_client cli ON card.clientId = cli.id |
| | | WHERE card.state = 3 AND NOT EXISTS (SELECT * FROM se_client_card card2 WHERE card.clientId = card2.clientId AND card2.state = 1) |
| | | WHERE card.state = 3 AND NOT EXISTS (SELECT * FROM se_client_card card2 WHERE card2.original_card_id = card.cardNum) |
| | | ORDER BY card.id |
| | | <trim prefix="limit " > |
| | | <if test="start != null and count != null"> |
| | |
| | | </if> |
| | | </trim> |
| | | </select> |
| | | |
| | | <!--判断指定水卡是否为挂失状态且无补卡记录--> |
| | | <select id="isLostAndUnreplaced" resultType="java.lang.Integer"> |
| | | SELECT |
| | | COUNT(*) AS recordCount |
| | | FROM se_client_card card |
| | | INNER JOIN se_client_card card2 ON card2.original_card_id = card.cardNum |
| | | <where> |
| | | AND card.state = 3 |
| | | <if test = "cardNum != null and cardNum > 0"> |
| | | AND card.cardNum = #{cardNum} |
| | | </if> |
| | | </where> |
| | | </select> |
| | | </mapper> |
| | |
| | | <!--@mbg.generated--> |
| | | <!--@Table se_virtual_card--> |
| | | <id column="id" jdbcType="BIGINT" property="id" /> |
| | | <result column="vc_name" jdbcType="VARCHAR" property="vcName" /> |
| | | <result column="client_id" jdbcType="BIGINT" property="clientId" /> |
| | | <result column="money" jdbcType="FLOAT" property="money" /> |
| | | <result column="last_operate" jdbcType="TINYINT" property="lastOperate" /> |
| | | <result column="last_operate_time" jdbcType="TIMESTAMP" property="lastOperateTime" /> |
| | | <result column="in_use" jdbcType="TINYINT" property="inUse" /> |
| | | <result column="create_time" jdbcType="TIMESTAMP" property="createTime" /> |
| | | </resultMap> |
| | | <sql id="Base_Column_List"> |
| | | <!--@mbg.generated--> |
| | | id, client_id, money, last_operate, last_operate_time, create_time |
| | | id, vc_name, client_id, money, last_operate, last_operate_time, in_use, create_time |
| | | </sql> |
| | | <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> |
| | | <!--@mbg.generated--> |
| | |
| | | </delete> |
| | | <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSe.SeVirtualCard"> |
| | | <!--@mbg.generated--> |
| | | insert into se_virtual_card (id, client_id, money, |
| | | last_operate, last_operate_time, create_time |
| | | ) |
| | | values (#{id,jdbcType=BIGINT}, #{clientId,jdbcType=BIGINT}, #{money,jdbcType=FLOAT}, |
| | | #{lastOperate,jdbcType=TINYINT}, #{lastOperateTime,jdbcType=TIMESTAMP}, #{createTime,jdbcType=TIMESTAMP} |
| | | ) |
| | | insert into se_virtual_card (id, vc_name, client_id, |
| | | money, last_operate, last_operate_time, |
| | | in_use, create_time) |
| | | values (#{id,jdbcType=BIGINT}, #{vcName,jdbcType=VARCHAR}, #{clientId,jdbcType=BIGINT}, |
| | | #{money,jdbcType=FLOAT}, #{lastOperate,jdbcType=TINYINT}, #{lastOperateTime,jdbcType=TIMESTAMP}, |
| | | #{inUse,jdbcType=TINYINT}, #{createTime,jdbcType=TIMESTAMP}) |
| | | </insert> |
| | | <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeVirtualCard"> |
| | | <!--@mbg.generated--> |
| | |
| | | <trim prefix="(" suffix=")" suffixOverrides=","> |
| | | <if test="id != null"> |
| | | id, |
| | | </if> |
| | | <if test="vcName != null"> |
| | | vc_name, |
| | | </if> |
| | | <if test="clientId != null"> |
| | | client_id, |
| | |
| | | <if test="lastOperateTime != null"> |
| | | last_operate_time, |
| | | </if> |
| | | <if test="inUse != null"> |
| | | in_use, |
| | | </if> |
| | | <if test="createTime != null"> |
| | | create_time, |
| | | </if> |
| | |
| | | <trim prefix="values (" suffix=")" suffixOverrides=","> |
| | | <if test="id != null"> |
| | | #{id,jdbcType=BIGINT}, |
| | | </if> |
| | | <if test="vcName != null"> |
| | | #{vcName,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="clientId != null"> |
| | | #{clientId,jdbcType=BIGINT}, |
| | |
| | | <if test="lastOperateTime != null"> |
| | | #{lastOperateTime,jdbcType=TIMESTAMP}, |
| | | </if> |
| | | <if test="inUse != null"> |
| | | #{inUse,jdbcType=TINYINT}, |
| | | </if> |
| | | <if test="createTime != null"> |
| | | #{createTime,jdbcType=TIMESTAMP}, |
| | | </if> |
| | |
| | | <!--@mbg.generated--> |
| | | update se_virtual_card |
| | | <set> |
| | | <if test="vcName != null"> |
| | | vc_name = #{vcName,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="clientId != null"> |
| | | client_id = #{clientId,jdbcType=BIGINT}, |
| | | </if> |
| | |
| | | <if test="lastOperateTime != null"> |
| | | last_operate_time = #{lastOperateTime,jdbcType=TIMESTAMP}, |
| | | </if> |
| | | <if test="inUse != null"> |
| | | in_use = #{inUse,jdbcType=TINYINT}, |
| | | </if> |
| | | <if test="createTime != null"> |
| | | create_time = #{createTime,jdbcType=TIMESTAMP}, |
| | | </if> |
| | |
| | | <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoSe.SeVirtualCard"> |
| | | <!--@mbg.generated--> |
| | | update se_virtual_card |
| | | set client_id = #{clientId,jdbcType=BIGINT}, |
| | | set vc_name = #{vcName,jdbcType=VARCHAR}, |
| | | client_id = #{clientId,jdbcType=BIGINT}, |
| | | money = #{money,jdbcType=FLOAT}, |
| | | last_operate = #{lastOperate,jdbcType=TINYINT}, |
| | | last_operate_time = #{lastOperateTime,jdbcType=TIMESTAMP}, |
| | | in_use = #{inUse,jdbcType=TINYINT}, |
| | | create_time = #{createTime,jdbcType=TIMESTAMP} |
| | | where id = #{id,jdbcType=BIGINT} |
| | | </update> |
| | | |
| | | <!--验证农户是否拥有指定名称的虚拟卡--> |
| | | <select id="getRecordCountByName" resultType="java.lang.Integer"> |
| | | SELECT COUNT(*) AS recordCount |
| | | FROM se_virtual_card |
| | | <where> |
| | | <if test = "clientId != null and clientId > 0"> |
| | | AND client_id = #{clientId} |
| | | </if> |
| | | |
| | | <if test = "vcName != null and vcName !=''"> |
| | | AND vc_name = #{vcName} |
| | | </if> |
| | | </where> |
| | | </select> |
| | | </mapper> |
New file |
| | |
| | | HELP.md |
| | | target/ |
| | | !.mvn/wrapper/maven-wrapper.jar |
| | | !**/src/main/**/target/ |
| | | !**/src/test/**/target/ |
| | | |
| | | ### STS ### |
| | | .apt_generated |
| | | .classpath |
| | | .factorypath |
| | | .project |
| | | .settings |
| | | .springBeans |
| | | .sts4-cache |
| | | |
| | | ### IntelliJ IDEA ### |
| | | .idea |
| | | *.iws |
| | | *.iml |
| | | *.ipr |
| | | |
| | | ### NetBeans ### |
| | | /nbproject/private/ |
| | | /nbbuild/ |
| | | /dist/ |
| | | /nbdist/ |
| | | /.nb-gradle/ |
| | | build/ |
| | | !**/src/main/**/build/ |
| | | !**/src/test/**/build/ |
| | | |
| | | ### VS Code ### |
| | | .vscode/ |
New file |
| | |
| | | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.6/apache-maven-3.9.6-bin.zip |
| | | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar |
New file |
| | |
| | | #!/bin/sh |
| | | # ---------------------------------------------------------------------------- |
| | | # Licensed to the Apache Software Foundation (ASF) under one |
| | | # or more contributor license agreements. See the NOTICE file |
| | | # distributed with this work for additional information |
| | | # regarding copyright ownership. The ASF licenses this file |
| | | # to you under the Apache License, Version 2.0 (the |
| | | # "License"); you may not use this file except in compliance |
| | | # with the License. You may obtain a copy of the License at |
| | | # |
| | | # https://www.apache.org/licenses/LICENSE-2.0 |
| | | # |
| | | # Unless required by applicable law or agreed to in writing, |
| | | # software distributed under the License is distributed on an |
| | | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| | | # KIND, either express or implied. See the License for the |
| | | # specific language governing permissions and limitations |
| | | # under the License. |
| | | # ---------------------------------------------------------------------------- |
| | | |
| | | # ---------------------------------------------------------------------------- |
| | | # Apache Maven Wrapper startup batch script, version 3.2.0 |
| | | # |
| | | # Required ENV vars: |
| | | # ------------------ |
| | | # JAVA_HOME - location of a JDK home dir |
| | | # |
| | | # Optional ENV vars |
| | | # ----------------- |
| | | # MAVEN_OPTS - parameters passed to the Java VM when running Maven |
| | | # e.g. to debug Maven itself, use |
| | | # set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 |
| | | # MAVEN_SKIP_RC - flag to disable loading of mavenrc files |
| | | # ---------------------------------------------------------------------------- |
| | | |
| | | if [ -z "$MAVEN_SKIP_RC" ] ; then |
| | | |
| | | if [ -f /usr/local/etc/mavenrc ] ; then |
| | | . /usr/local/etc/mavenrc |
| | | fi |
| | | |
| | | if [ -f /etc/mavenrc ] ; then |
| | | . /etc/mavenrc |
| | | fi |
| | | |
| | | if [ -f "$HOME/.mavenrc" ] ; then |
| | | . "$HOME/.mavenrc" |
| | | fi |
| | | |
| | | fi |
| | | |
| | | # OS specific support. $var _must_ be set to either true or false. |
| | | cygwin=false; |
| | | darwin=false; |
| | | mingw=false |
| | | case "$(uname)" in |
| | | CYGWIN*) cygwin=true ;; |
| | | MINGW*) mingw=true;; |
| | | Darwin*) darwin=true |
| | | # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home |
| | | # See https://developer.apple.com/library/mac/qa/qa1170/_index.html |
| | | if [ -z "$JAVA_HOME" ]; then |
| | | if [ -x "/usr/libexec/java_home" ]; then |
| | | JAVA_HOME="$(/usr/libexec/java_home)"; export JAVA_HOME |
| | | else |
| | | JAVA_HOME="/Library/Java/Home"; export JAVA_HOME |
| | | fi |
| | | fi |
| | | ;; |
| | | esac |
| | | |
| | | if [ -z "$JAVA_HOME" ] ; then |
| | | if [ -r /etc/gentoo-release ] ; then |
| | | JAVA_HOME=$(java-config --jre-home) |
| | | fi |
| | | fi |
| | | |
| | | # For Cygwin, ensure paths are in UNIX format before anything is touched |
| | | if $cygwin ; then |
| | | [ -n "$JAVA_HOME" ] && |
| | | JAVA_HOME=$(cygpath --unix "$JAVA_HOME") |
| | | [ -n "$CLASSPATH" ] && |
| | | CLASSPATH=$(cygpath --path --unix "$CLASSPATH") |
| | | fi |
| | | |
| | | # For Mingw, ensure paths are in UNIX format before anything is touched |
| | | if $mingw ; then |
| | | [ -n "$JAVA_HOME" ] && [ -d "$JAVA_HOME" ] && |
| | | JAVA_HOME="$(cd "$JAVA_HOME" || (echo "cannot cd into $JAVA_HOME."; exit 1); pwd)" |
| | | fi |
| | | |
| | | if [ -z "$JAVA_HOME" ]; then |
| | | javaExecutable="$(which javac)" |
| | | if [ -n "$javaExecutable" ] && ! [ "$(expr "\"$javaExecutable\"" : '\([^ ]*\)')" = "no" ]; then |
| | | # readlink(1) is not available as standard on Solaris 10. |
| | | readLink=$(which readlink) |
| | | if [ ! "$(expr "$readLink" : '\([^ ]*\)')" = "no" ]; then |
| | | if $darwin ; then |
| | | javaHome="$(dirname "\"$javaExecutable\"")" |
| | | javaExecutable="$(cd "\"$javaHome\"" && pwd -P)/javac" |
| | | else |
| | | javaExecutable="$(readlink -f "\"$javaExecutable\"")" |
| | | fi |
| | | javaHome="$(dirname "\"$javaExecutable\"")" |
| | | javaHome=$(expr "$javaHome" : '\(.*\)/bin') |
| | | JAVA_HOME="$javaHome" |
| | | export JAVA_HOME |
| | | fi |
| | | fi |
| | | fi |
| | | |
| | | if [ -z "$JAVACMD" ] ; then |
| | | if [ -n "$JAVA_HOME" ] ; then |
| | | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then |
| | | # IBM's JDK on AIX uses strange locations for the executables |
| | | JAVACMD="$JAVA_HOME/jre/sh/java" |
| | | else |
| | | JAVACMD="$JAVA_HOME/bin/java" |
| | | fi |
| | | else |
| | | JAVACMD="$(\unset -f command 2>/dev/null; \command -v java)" |
| | | fi |
| | | fi |
| | | |
| | | if [ ! -x "$JAVACMD" ] ; then |
| | | echo "Error: JAVA_HOME is not defined correctly." >&2 |
| | | echo " We cannot execute $JAVACMD" >&2 |
| | | exit 1 |
| | | fi |
| | | |
| | | if [ -z "$JAVA_HOME" ] ; then |
| | | echo "Warning: JAVA_HOME environment variable is not set." |
| | | fi |
| | | |
| | | # traverses directory structure from process work directory to filesystem root |
| | | # first directory with .mvn subdirectory is considered project base directory |
| | | find_maven_basedir() { |
| | | if [ -z "$1" ] |
| | | then |
| | | echo "Path not specified to find_maven_basedir" |
| | | return 1 |
| | | fi |
| | | |
| | | basedir="$1" |
| | | wdir="$1" |
| | | while [ "$wdir" != '/' ] ; do |
| | | if [ -d "$wdir"/.mvn ] ; then |
| | | basedir=$wdir |
| | | break |
| | | fi |
| | | # workaround for JBEAP-8937 (on Solaris 10/Sparc) |
| | | if [ -d "${wdir}" ]; then |
| | | wdir=$(cd "$wdir/.." || exit 1; pwd) |
| | | fi |
| | | # end of workaround |
| | | done |
| | | printf '%s' "$(cd "$basedir" || exit 1; pwd)" |
| | | } |
| | | |
| | | # concatenates all lines of a file |
| | | concat_lines() { |
| | | if [ -f "$1" ]; then |
| | | # Remove \r in case we run on Windows within Git Bash |
| | | # and check out the repository with auto CRLF management |
| | | # enabled. Otherwise, we may read lines that are delimited with |
| | | # \r\n and produce $'-Xarg\r' rather than -Xarg due to word |
| | | # splitting rules. |
| | | tr -s '\r\n' ' ' < "$1" |
| | | fi |
| | | } |
| | | |
| | | log() { |
| | | if [ "$MVNW_VERBOSE" = true ]; then |
| | | printf '%s\n' "$1" |
| | | fi |
| | | } |
| | | |
| | | BASE_DIR=$(find_maven_basedir "$(dirname "$0")") |
| | | if [ -z "$BASE_DIR" ]; then |
| | | exit 1; |
| | | fi |
| | | |
| | | MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}; export MAVEN_PROJECTBASEDIR |
| | | log "$MAVEN_PROJECTBASEDIR" |
| | | |
| | | ########################################################################################## |
| | | # Extension to allow automatically downloading the maven-wrapper.jar from Maven-central |
| | | # This allows using the maven wrapper in projects that prohibit checking in binary data. |
| | | ########################################################################################## |
| | | wrapperJarPath="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" |
| | | if [ -r "$wrapperJarPath" ]; then |
| | | log "Found $wrapperJarPath" |
| | | else |
| | | log "Couldn't find $wrapperJarPath, downloading it ..." |
| | | |
| | | if [ -n "$MVNW_REPOURL" ]; then |
| | | wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" |
| | | else |
| | | wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" |
| | | fi |
| | | while IFS="=" read -r key value; do |
| | | # Remove '\r' from value to allow usage on windows as IFS does not consider '\r' as a separator ( considers space, tab, new line ('\n'), and custom '=' ) |
| | | safeValue=$(echo "$value" | tr -d '\r') |
| | | case "$key" in (wrapperUrl) wrapperUrl="$safeValue"; break ;; |
| | | esac |
| | | done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" |
| | | log "Downloading from: $wrapperUrl" |
| | | |
| | | if $cygwin; then |
| | | wrapperJarPath=$(cygpath --path --windows "$wrapperJarPath") |
| | | fi |
| | | |
| | | if command -v wget > /dev/null; then |
| | | log "Found wget ... using wget" |
| | | [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--quiet" |
| | | if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then |
| | | wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" |
| | | else |
| | | wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" |
| | | fi |
| | | elif command -v curl > /dev/null; then |
| | | log "Found curl ... using curl" |
| | | [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--silent" |
| | | if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then |
| | | curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" |
| | | else |
| | | curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" |
| | | fi |
| | | else |
| | | log "Falling back to using Java to download" |
| | | javaSource="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.java" |
| | | javaClass="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.class" |
| | | # For Cygwin, switch paths to Windows format before running javac |
| | | if $cygwin; then |
| | | javaSource=$(cygpath --path --windows "$javaSource") |
| | | javaClass=$(cygpath --path --windows "$javaClass") |
| | | fi |
| | | if [ -e "$javaSource" ]; then |
| | | if [ ! -e "$javaClass" ]; then |
| | | log " - Compiling MavenWrapperDownloader.java ..." |
| | | ("$JAVA_HOME/bin/javac" "$javaSource") |
| | | fi |
| | | if [ -e "$javaClass" ]; then |
| | | log " - Running MavenWrapperDownloader.java ..." |
| | | ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$wrapperUrl" "$wrapperJarPath") || rm -f "$wrapperJarPath" |
| | | fi |
| | | fi |
| | | fi |
| | | fi |
| | | ########################################################################################## |
| | | # End of extension |
| | | ########################################################################################## |
| | | |
| | | # If specified, validate the SHA-256 sum of the Maven wrapper jar file |
| | | wrapperSha256Sum="" |
| | | while IFS="=" read -r key value; do |
| | | case "$key" in (wrapperSha256Sum) wrapperSha256Sum=$value; break ;; |
| | | esac |
| | | done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" |
| | | if [ -n "$wrapperSha256Sum" ]; then |
| | | wrapperSha256Result=false |
| | | if command -v sha256sum > /dev/null; then |
| | | if echo "$wrapperSha256Sum $wrapperJarPath" | sha256sum -c > /dev/null 2>&1; then |
| | | wrapperSha256Result=true |
| | | fi |
| | | elif command -v shasum > /dev/null; then |
| | | if echo "$wrapperSha256Sum $wrapperJarPath" | shasum -a 256 -c > /dev/null 2>&1; then |
| | | wrapperSha256Result=true |
| | | fi |
| | | else |
| | | echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." |
| | | echo "Please install either command, or disable validation by removing 'wrapperSha256Sum' from your maven-wrapper.properties." |
| | | exit 1 |
| | | fi |
| | | if [ $wrapperSha256Result = false ]; then |
| | | echo "Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised." >&2 |
| | | echo "Investigate or delete $wrapperJarPath to attempt a clean download." >&2 |
| | | echo "If you updated your Maven version, you need to update the specified wrapperSha256Sum property." >&2 |
| | | exit 1 |
| | | fi |
| | | fi |
| | | |
| | | MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" |
| | | |
| | | # For Cygwin, switch paths to Windows format before running java |
| | | if $cygwin; then |
| | | [ -n "$JAVA_HOME" ] && |
| | | JAVA_HOME=$(cygpath --path --windows "$JAVA_HOME") |
| | | [ -n "$CLASSPATH" ] && |
| | | CLASSPATH=$(cygpath --path --windows "$CLASSPATH") |
| | | [ -n "$MAVEN_PROJECTBASEDIR" ] && |
| | | MAVEN_PROJECTBASEDIR=$(cygpath --path --windows "$MAVEN_PROJECTBASEDIR") |
| | | fi |
| | | |
| | | # Provide a "standardized" way to retrieve the CLI args that will |
| | | # work with both Windows and non-Windows executions. |
| | | MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $*" |
| | | export MAVEN_CMD_LINE_ARGS |
| | | |
| | | WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain |
| | | |
| | | # shellcheck disable=SC2086 # safe args |
| | | exec "$JAVACMD" \ |
| | | $MAVEN_OPTS \ |
| | | $MAVEN_DEBUG_OPTS \ |
| | | -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ |
| | | "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ |
| | | ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" |
New file |
| | |
| | | @REM ---------------------------------------------------------------------------- |
| | | @REM Licensed to the Apache Software Foundation (ASF) under one |
| | | @REM or more contributor license agreements. See the NOTICE file |
| | | @REM distributed with this work for additional information |
| | | @REM regarding copyright ownership. The ASF licenses this file |
| | | @REM to you under the Apache License, Version 2.0 (the |
| | | @REM "License"); you may not use this file except in compliance |
| | | @REM with the License. You may obtain a copy of the License at |
| | | @REM |
| | | @REM https://www.apache.org/licenses/LICENSE-2.0 |
| | | @REM |
| | | @REM Unless required by applicable law or agreed to in writing, |
| | | @REM software distributed under the License is distributed on an |
| | | @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| | | @REM KIND, either express or implied. See the License for the |
| | | @REM specific language governing permissions and limitations |
| | | @REM under the License. |
| | | @REM ---------------------------------------------------------------------------- |
| | | |
| | | @REM ---------------------------------------------------------------------------- |
| | | @REM Apache Maven Wrapper startup batch script, version 3.2.0 |
| | | @REM |
| | | @REM Required ENV vars: |
| | | @REM JAVA_HOME - location of a JDK home dir |
| | | @REM |
| | | @REM Optional ENV vars |
| | | @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands |
| | | @REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending |
| | | @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven |
| | | @REM e.g. to debug Maven itself, use |
| | | @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 |
| | | @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files |
| | | @REM ---------------------------------------------------------------------------- |
| | | |
| | | @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' |
| | | @echo off |
| | | @REM set title of command window |
| | | title %0 |
| | | @REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' |
| | | @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% |
| | | |
| | | @REM set %HOME% to equivalent of $HOME |
| | | if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") |
| | | |
| | | @REM Execute a user defined script before this one |
| | | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre |
| | | @REM check for pre script, once with legacy .bat ending and once with .cmd ending |
| | | if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %* |
| | | if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %* |
| | | :skipRcPre |
| | | |
| | | @setlocal |
| | | |
| | | set ERROR_CODE=0 |
| | | |
| | | @REM To isolate internal variables from possible post scripts, we use another setlocal |
| | | @setlocal |
| | | |
| | | @REM ==== START VALIDATION ==== |
| | | if not "%JAVA_HOME%" == "" goto OkJHome |
| | | |
| | | echo. |
| | | echo Error: JAVA_HOME not found in your environment. >&2 |
| | | echo Please set the JAVA_HOME variable in your environment to match the >&2 |
| | | echo location of your Java installation. >&2 |
| | | echo. |
| | | goto error |
| | | |
| | | :OkJHome |
| | | if exist "%JAVA_HOME%\bin\java.exe" goto init |
| | | |
| | | echo. |
| | | echo Error: JAVA_HOME is set to an invalid directory. >&2 |
| | | echo JAVA_HOME = "%JAVA_HOME%" >&2 |
| | | echo Please set the JAVA_HOME variable in your environment to match the >&2 |
| | | echo location of your Java installation. >&2 |
| | | echo. |
| | | goto error |
| | | |
| | | @REM ==== END VALIDATION ==== |
| | | |
| | | :init |
| | | |
| | | @REM Find the project base dir, i.e. the directory that contains the folder ".mvn". |
| | | @REM Fallback to current working directory if not found. |
| | | |
| | | set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% |
| | | IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir |
| | | |
| | | set EXEC_DIR=%CD% |
| | | set WDIR=%EXEC_DIR% |
| | | :findBaseDir |
| | | IF EXIST "%WDIR%"\.mvn goto baseDirFound |
| | | cd .. |
| | | IF "%WDIR%"=="%CD%" goto baseDirNotFound |
| | | set WDIR=%CD% |
| | | goto findBaseDir |
| | | |
| | | :baseDirFound |
| | | set MAVEN_PROJECTBASEDIR=%WDIR% |
| | | cd "%EXEC_DIR%" |
| | | goto endDetectBaseDir |
| | | |
| | | :baseDirNotFound |
| | | set MAVEN_PROJECTBASEDIR=%EXEC_DIR% |
| | | cd "%EXEC_DIR%" |
| | | |
| | | :endDetectBaseDir |
| | | |
| | | IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig |
| | | |
| | | @setlocal EnableExtensions EnableDelayedExpansion |
| | | for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a |
| | | @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% |
| | | |
| | | :endReadAdditionalConfig |
| | | |
| | | SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" |
| | | set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" |
| | | set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain |
| | | |
| | | set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" |
| | | |
| | | FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( |
| | | IF "%%A"=="wrapperUrl" SET WRAPPER_URL=%%B |
| | | ) |
| | | |
| | | @REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central |
| | | @REM This allows using the maven wrapper in projects that prohibit checking in binary data. |
| | | if exist %WRAPPER_JAR% ( |
| | | if "%MVNW_VERBOSE%" == "true" ( |
| | | echo Found %WRAPPER_JAR% |
| | | ) |
| | | ) else ( |
| | | if not "%MVNW_REPOURL%" == "" ( |
| | | SET WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" |
| | | ) |
| | | if "%MVNW_VERBOSE%" == "true" ( |
| | | echo Couldn't find %WRAPPER_JAR%, downloading it ... |
| | | echo Downloading from: %WRAPPER_URL% |
| | | ) |
| | | |
| | | powershell -Command "&{"^ |
| | | "$webclient = new-object System.Net.WebClient;"^ |
| | | "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ |
| | | "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ |
| | | "}"^ |
| | | "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%WRAPPER_URL%', '%WRAPPER_JAR%')"^ |
| | | "}" |
| | | if "%MVNW_VERBOSE%" == "true" ( |
| | | echo Finished downloading %WRAPPER_JAR% |
| | | ) |
| | | ) |
| | | @REM End of extension |
| | | |
| | | @REM If specified, validate the SHA-256 sum of the Maven wrapper jar file |
| | | SET WRAPPER_SHA_256_SUM="" |
| | | FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( |
| | | IF "%%A"=="wrapperSha256Sum" SET WRAPPER_SHA_256_SUM=%%B |
| | | ) |
| | | IF NOT %WRAPPER_SHA_256_SUM%=="" ( |
| | | powershell -Command "&{"^ |
| | | "$hash = (Get-FileHash \"%WRAPPER_JAR%\" -Algorithm SHA256).Hash.ToLower();"^ |
| | | "If('%WRAPPER_SHA_256_SUM%' -ne $hash){"^ |
| | | " Write-Output 'Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised.';"^ |
| | | " Write-Output 'Investigate or delete %WRAPPER_JAR% to attempt a clean download.';"^ |
| | | " Write-Output 'If you updated your Maven version, you need to update the specified wrapperSha256Sum property.';"^ |
| | | " exit 1;"^ |
| | | "}"^ |
| | | "}" |
| | | if ERRORLEVEL 1 goto error |
| | | ) |
| | | |
| | | @REM Provide a "standardized" way to retrieve the CLI args that will |
| | | @REM work with both Windows and non-Windows executions. |
| | | set MAVEN_CMD_LINE_ARGS=%* |
| | | |
| | | %MAVEN_JAVA_EXE% ^ |
| | | %JVM_CONFIG_MAVEN_PROPS% ^ |
| | | %MAVEN_OPTS% ^ |
| | | %MAVEN_DEBUG_OPTS% ^ |
| | | -classpath %WRAPPER_JAR% ^ |
| | | "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^ |
| | | %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* |
| | | if ERRORLEVEL 1 goto error |
| | | goto end |
| | | |
| | | :error |
| | | set ERROR_CODE=1 |
| | | |
| | | :end |
| | | @endlocal & set ERROR_CODE=%ERROR_CODE% |
| | | |
| | | if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost |
| | | @REM check for post script, once with legacy .bat ending and once with .cmd ending |
| | | if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat" |
| | | if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd" |
| | | :skipRcPost |
| | | |
| | | @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' |
| | | if "%MAVEN_BATCH_PAUSE%"=="on" pause |
| | | |
| | | if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE% |
| | | |
| | | cmd /C exit /B %ERROR_CODE% |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| | | xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> |
| | | <modelVersion>4.0.0</modelVersion> |
| | | |
| | | <parent> |
| | | <artifactId>pipIrr-web</artifactId> |
| | | <groupId>com.dy</groupId> |
| | | <version>1.0.0</version> |
| | | <relativePath>../pom.xml</relativePath> |
| | | </parent> |
| | | |
| | | <packaging>jar</packaging> |
| | | <artifactId>pipIrr-web-irrigate</artifactId> |
| | | <name>pipIrr-web-irrigate</name> |
| | | <description>web田间灌溉项目管理</description> |
| | | |
| | | <build> |
| | | <plugins> |
| | | <!-- 生成不包含依赖jar的可执行jar包 |
| | | <plugin> |
| | | !- spring boot提供的maven打包插件 - |
| | | <groupId>org.springframework.boot</groupId> |
| | | <artifactId>spring-boot-maven-plugin</artifactId> |
| | | <executions> |
| | | <execution> |
| | | !- |
| | | <goals> |
| | | <goal>repackage</goal> |
| | | </goals> |
| | | - |
| | | <configuration> |
| | | !- 不加的话最终包名为: ${artifactId}-${version}.jar, 加了的话最终包名: ${artifactId}-${version}-${classifier}.jar - |
| | | <classifier>execute</classifier> |
| | | !- 不指定生成路径的话, 默认保存在 ${build.directory} 下 - |
| | | <outputDirectory>${project.build.directory}/execute</outputDirectory> |
| | | <finalName>${artifactId}-${version}</finalName> |
| | | <layout>ZIP</layout> |
| | | <mainClass>com.dy.pipIrrBase.PipIrrBaseApplication</mainClass> |
| | | <includes> |
| | | <include> |
| | | <groupId>com.dy</groupId> |
| | | <artifactId>pipIrr-common</artifactId> |
| | | </include> |
| | | <include> |
| | | <groupId>com.dy</groupId> |
| | | <artifactId>pipIrr-global</artifactId> |
| | | </include> |
| | | </includes> |
| | | <excludes> |
| | | <exclude> |
| | | <groupId>org.projectlombok</groupId> |
| | | <artifactId>lombok</artifactId> |
| | | </exclude> |
| | | </excludes> |
| | | </configuration> |
| | | </execution> |
| | | </executions> |
| | | |
| | | </plugin> |
| | | --> |
| | | <!-- 拷贝依赖的jar包到lib目录--> |
| | | <plugin> |
| | | <groupId>org.springframework.boot</groupId> |
| | | <artifactId>spring-boot-maven-plugin</artifactId> |
| | | <executions> |
| | | <execution> |
| | | <configuration> |
| | | <!-- 不加的话最终包名为: ${artifactId}-${version}.jar, 加了的话最终包名: ${artifactId}-${version}-${classifier}.jar |
| | | <classifier>execute</classifier> |
| | | --> |
| | | <!-- ${project.build.directory}是maven变量,内置的,表示target目录,如果不写,将在根目录下创建/lib --> |
| | | <outputDirectory>${project.build.directory}/lib</outputDirectory> |
| | | <!-- excludeTransitive:是否不包含间接依赖包,比如我们依赖A,但是A又依赖了B,我们是否也要把B打进去 默认不打--> |
| | | <excludeTransitive>false</excludeTransitive> |
| | | <!-- 复制的jar文件去掉版本信息 --> |
| | | <stripVersion>false</stripVersion> |
| | | <finalName>${project.artifactId}-${project.version}</finalName> |
| | | <layout>ZIP</layout> |
| | | <mainClass>com.dy.pipIrrBase.PipIrrBaseApplication</mainClass> |
| | | <includes> |
| | | <include> |
| | | <groupId>com.dy</groupId> |
| | | <artifactId>pipIrr-common</artifactId> |
| | | </include> |
| | | <include> |
| | | <groupId>com.dy</groupId> |
| | | <artifactId>pipIrr-global</artifactId> |
| | | </include> |
| | | </includes> |
| | | <excludes> |
| | | <exclude> |
| | | <groupId>org.projectlombok</groupId> |
| | | <artifactId>lombok</artifactId> |
| | | </exclude> |
| | | </excludes> |
| | | </configuration> |
| | | </execution> |
| | | </executions> |
| | | </plugin> |
| | | |
| | | <plugin> |
| | | <!-- 设置java编译版本,运行环境版本 --> |
| | | <groupId>org.apache.maven.plugins</groupId> |
| | | <artifactId>maven-compiler-plugin</artifactId> |
| | | <!-- source: 源代码编译版本;target: 目标平台编译版本;encoding: 字符集编码。 --> |
| | | <configuration> |
| | | <source>${java.version}</source> |
| | | <target>${java.version}</target> |
| | | <encoding>${encoding}</encoding> |
| | | </configuration> |
| | | </plugin> |
| | | <plugin> |
| | | <!-- 解决资源文件的编码问题 --> |
| | | <groupId>org.apache.maven.plugins</groupId> |
| | | <artifactId>maven-resources-plugin</artifactId> |
| | | <configuration> |
| | | <encoding>${encoding}</encoding> |
| | | </configuration> |
| | | </plugin> |
| | | <plugin> |
| | | <!-- maven里执行测试用例的插件 --> |
| | | <groupId>org.apache.maven.plugins</groupId> |
| | | <artifactId>maven-surefire-plugin</artifactId> |
| | | <configuration> |
| | | <skipTests>true</skipTests> |
| | | </configuration> |
| | | </plugin> |
| | | <plugin> |
| | | <!-- 下面解决:当进行Maven Lifecycle package时报错:Could not find artifact org.apache.mina:mina-core:bundle:2.2.1 in maven (https://repo1.maven.org/maven2/)--> |
| | | <groupId>org.apache.felix</groupId> |
| | | <artifactId>maven-bundle-plugin</artifactId> |
| | | <extensions>true</extensions> |
| | | </plugin> |
| | | </plugins> |
| | | </build> |
| | | |
| | | </project> |
New file |
| | |
| | | package com.dy.pipIrrIrrigate; |
| | | |
| | | import com.dy.common.multiDataSource.EnableMultiDataSource; |
| | | import org.mybatis.spring.annotation.MapperScan; |
| | | import org.springframework.boot.SpringApplication; |
| | | import org.springframework.boot.autoconfigure.SpringBootApplication; |
| | | import org.springframework.context.annotation.ComponentScan; |
| | | import org.springframework.context.annotation.EnableAspectJAutoProxy; |
| | | |
| | | @SpringBootApplication |
| | | @EnableAspectJAutoProxy |
| | | @EnableMultiDataSource |
| | | @ComponentScan(basePackages = {"com.dy.common", "com.dy.pipIrrGlobal", "com.dy.pipIrrIrrigate"}) |
| | | @MapperScan({"com.dy.pipIrrGlobal.daoIr", "com.dy.pipIrrGlobal.daoIr"}) |
| | | public class PipIrrIrrigateApplication { |
| | | |
| | | public static void main(String[] args) { |
| | | SpringApplication.run(PipIrrIrrigateApplication.class, args); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.dy.pipIrrIrrigate.config; |
| | | |
| | | import com.dy.common.webFilter.DevOfDataSourceNameSetFilter; |
| | | import com.dy.common.webFilter.UserTokenFilter; |
| | | import jakarta.servlet.Filter; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.boot.web.servlet.FilterRegistrationBean; |
| | | import org.springframework.context.annotation.Bean; |
| | | import org.springframework.context.annotation.Configuration; |
| | | |
| | | /** |
| | | * @author ZhuBaoMin |
| | | * @date 2023/12/20 21:17 |
| | | * @LastEditTime 2023/12/20 21:17 |
| | | * @Description |
| | | */ |
| | | |
| | | @Configuration |
| | | public class WebFilterConfiguration { |
| | | |
| | | @Value("${pipIrr.global.dev}") |
| | | public String isDevStage ;//是否为开发阶段 |
| | | @Value("${pipIrr.global.dsName}") |
| | | public String dsName ;//开发阶段的数据源名称 |
| | | |
| | | /** |
| | | * DevOfDataSourceNameSetFilter与UserTokenFilter只能一个被配置上, |
| | | * 所以他们的order都是1 |
| | | */ |
| | | private static final int order_UserTokenFilter = 1 ;//与下面 |
| | | private static final int order_DevOfDataSourceNameSetFilter = 1 ; |
| | | |
| | | |
| | | @Bean |
| | | public FilterRegistrationBean<? extends Filter> RegFilter() { |
| | | FilterRegistrationBean<Filter> filterRegistrationBean = new FilterRegistrationBean<>(); |
| | | if(this.isDevStage != null && !this.isDevStage.trim().equals("") && this.isDevStage.trim().equalsIgnoreCase("true")){ |
| | | filterRegistrationBean.setFilter(new DevOfDataSourceNameSetFilter()); |
| | | filterRegistrationBean.addUrlPatterns("/*");//配置过滤规则 |
| | | filterRegistrationBean.addInitParameter("dataSourceName",dsName);//设置init参数 |
| | | filterRegistrationBean.setName("DevOfDataSourceNameSetFilter");//设置过滤器名称 |
| | | filterRegistrationBean.setOrder(order_DevOfDataSourceNameSetFilter);//执行次序 |
| | | }else{ |
| | | filterRegistrationBean.setFilter(new UserTokenFilter()); |
| | | filterRegistrationBean.addUrlPatterns("/*");//配置过滤规则 |
| | | filterRegistrationBean.setName("UserTokenFilter");//设置过滤器名称 |
| | | filterRegistrationBean.setOrder(order_UserTokenFilter);//执行次序 |
| | | } |
| | | return filterRegistrationBean; |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.dy.pipIrrIrrigate.config; |
| | | |
| | | import com.dy.common.webListener.GenerateIdSetSuffixListener; |
| | | import jakarta.servlet.ServletContextListener; |
| | | import org.springframework.boot.web.servlet.ServletListenerRegistrationBean; |
| | | import org.springframework.context.annotation.Bean; |
| | | import org.springframework.context.annotation.Configuration; |
| | | |
| | | /** |
| | | * @author ZhuBaoMin |
| | | * @date 2023/12/5 10:33 |
| | | * @LastEditTime 2023/12/5 10:33 |
| | | * @Description |
| | | */ |
| | | @Configuration |
| | | public class WebListenerConfiguration { |
| | | |
| | | /** |
| | | * 启动顺序 |
| | | */ |
| | | //private static final int order_config = 0 ; |
| | | private static final int order_idSetSuffix = 1 ; |
| | | //private static final int order_init = 2 ; |
| | | |
| | | /* |
| | | * 解析各种***.config配置的ConfigListener,暂时不采用此种配置方式 |
| | | * |
| | | @Bean |
| | | public ConfigListener getGlConfigListener(){ |
| | | return new ConfigListener() ; |
| | | } |
| | | /** |
| | | * 外部提供Listener |
| | | * @param listener 外部提供Listener |
| | | * @return 注册Bean |
| | | @Bean |
| | | public ServletListenerRegistrationBean<? extends ServletContextListener> regConfigListener(ConfigListener listener) { |
| | | ServletListenerRegistrationBean<ConfigListener> listenerRegistrationBean = new ServletListenerRegistrationBean<>(); |
| | | listenerRegistrationBean.setListener(listener); |
| | | listenerRegistrationBean.setOrder(order_config); |
| | | return listenerRegistrationBean; |
| | | } |
| | | */ |
| | | |
| | | /** |
| | | * 内部提供listener,该listener在系统启动时,根据配置 设置ID产生器的后缀 |
| | | * @return 注册Bean |
| | | */ |
| | | @Bean |
| | | public ServletListenerRegistrationBean<? extends ServletContextListener> regSsoListener() { |
| | | ServletListenerRegistrationBean<GenerateIdSetSuffixListener> listenerRegistrationBean = new ServletListenerRegistrationBean<>(); |
| | | listenerRegistrationBean.setListener(new GenerateIdSetSuffixListener()); |
| | | listenerRegistrationBean.setOrder(order_idSetSuffix); |
| | | return listenerRegistrationBean; |
| | | } |
| | | |
| | | // /** |
| | | // * 内部提供listener,该listener在系统启动时,初始化数据库数据 |
| | | // * @return 注册Bean |
| | | // */ |
| | | // @Bean |
| | | // public ServletListenerRegistrationBean<? extends ServletContextListener> regInitListener() { |
| | | // ServletListenerRegistrationBean<InitListener> listenerRegistrationBean = new ServletListenerRegistrationBean<>(); |
| | | // listenerRegistrationBean.setListener(new InitListener()); |
| | | // listenerRegistrationBean.setOrder(order_init); |
| | | // return listenerRegistrationBean; |
| | | // } |
| | | } |
New file |
| | |
| | | package com.dy.pipIrrIrrigate.result; |
| | | |
| | | import lombok.AllArgsConstructor; |
| | | import lombok.Getter; |
| | | |
| | | /** |
| | | * @author ZhuBaoMin |
| | | * @date 2024-04-23 16:31 |
| | | * @LastEditTime 2024-04-23 16:31 |
| | | * @Description |
| | | */ |
| | | |
| | | @Getter |
| | | @AllArgsConstructor |
| | | public enum IrrigateResultCode { |
| | | /** |
| | | * 田间灌溉项目 |
| | | */ |
| | | DIVIDE_FAIL(10001, "分水房添加失败"), |
| | | DELETE_DIVIDE_FAIL(10001, "分水房删除失败"), |
| | | NO_DIVIDES(10001, "无符合条件的分水房记录"); |
| | | |
| | | |
| | | private final Integer code; |
| | | private final String message; |
| | | } |
New file |
| | |
| | | spring: |
| | | profiles: |
| | | include: global, database, database-ym, database-pj |
| | | |
| | | #actutor的web端口 |
| | | management: |
| | | server: |
| | | port: ${pipIrr.irrigate.actutorPort} |
| | | #web服务端口,8086 |
| | | server: |
| | | port: ${pipIrr.irrigate.webPort} |
| | | servlet: |
| | | context-path: /irrigate #web访问上下文路径 |
| | | context-parameters: |
| | | #GenerateIdSetSuffixListener中应用,取值范围是0-99 |
| | | idSuffix: ${pipIrr.irrigate.idSuffix} |
| | | #ConfigListener中应用 |
| | | #configFileNames: config-global.xml,config-demo.xml |
New file |
| | |
| | | Configuration: |
| | | #status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出;可以设置成Off(关闭)或Error(只输出错误信息) |
| | | status: Error |
| | | |
| | | Properties: # 定义全局变量 |
| | | Property: |
| | | #日志文件存储的目录 |
| | | - name: log.path |
| | | value: ./logs |
| | | #日志文件存储名称 |
| | | - name: project.name |
| | | value: pipIrrBase |
| | | |
| | | #定义输出器,可以输出到控制台和文件. |
| | | Appenders: |
| | | #输出到控制台 |
| | | Console: |
| | | #Appender命名 |
| | | name: CONSOLE |
| | | target: SYSTEM_OUT |
| | | ThresholdFilter: |
| | | level: debug #输出日志级别,输出日志时,首先由Loggers.Root.level或Loggers.Logger.level判断是否输出,然后再由本level判断是否输出 |
| | | onMatch: ACCEPT #onMatch=ACCEPT 大于等于 "level" 配置的等级地日志输出 |
| | | onMismatch: DENY #onMismatch=DENY 小于 "level" 配置的等级地日志不输出 |
| | | #日志内容样式 |
| | | PatternLayout: |
| | | #%n-换行 |
| | | #%m-日志内容,输出代码中指定的日志信息 |
| | | #%p-输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL |
| | | #%r-程序启动到现在的毫秒数 |
| | | #%%- 输出一个"%" 字符 |
| | | #%t-当前线程名 |
| | | #%d-日期和时间, 常用的格式有%d{DATE},%d{ABSOLUTE},%d{HH:mm:ss,SSS},%d{ddMMyyyyHH:mm:ss,SSS} |
| | | #%l-同%F%L%C%M |
| | | #%F-java源文件名 |
| | | #%L-java源码行数 |
| | | #%C-java类名,%C{1}输出最后一个元素 |
| | | #%M-java方法名 |
| | | pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%C.%M:%L) - %m%n" |
| | | # 输出到文件,超过10MB归档 |
| | | RollingFile: |
| | | - name: ROLLING_FILE |
| | | ignoreExceptions: false |
| | | fileName: ${log.path}/${project.name}.log |
| | | filePattern: "${log.path}/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz" |
| | | ThresholdFilter: |
| | | level: error #输出日志级别,输出日志时,首先由Loggers.Root.level或Loggers.Logger.level判断是否输出,然后再由本level判断是否输出 |
| | | onMatch: ACCEPT #onMatch=ACCEPT 大于等于 "level" 配置的等级地日志输出 |
| | | onMismatch: DENY #onMismatch=DENY 小于 "level" 配置的等级地日志不输出 |
| | | #日志内容样式 |
| | | PatternLayout: |
| | | pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%C.%M:%L) - %m%n" |
| | | Policies: |
| | | SizeBasedTriggeringPolicy: |
| | | size: "10 MB" |
| | | DefaultRolloverStrategy: |
| | | max: 1000 |
| | | |
| | | Loggers: |
| | | Root: |
| | | level: info #日志输出级别,共有8个级别,按照从低到高为:all < trace < debug < info < warn < error < fatal < off |
| | | AppenderRef: #Root的子节点,用来指定该日志输出到哪个Appender. |
| | | - ref: CONSOLE #输出日志时,首先由本level判断是否输出,然后再由上面的Appenders.Console.ThresholdFilter.level判断是否输出 |
| | | - ref: ROLLING_FILE #输出日志时,首先由本level判断是否输出,然后再由上面的Appenders.RollingFile.ThresholdFilter.level判断是否输出 |
| | | # 为包配置特殊的Log级别,方便调试, |
| | | # 不受Loggers.Root.level限制 |
| | | Logger: |
| | | - name: com.dy.pipIrrGlobal.daoSe |
| | | additivity: false #去除重复的log |
| | | level: debug #输出日志级别 |
| | | AppenderRef: |
| | | - ref: CONSOLE #输出日志时,首先由本.level判断是否输出,然后再由上面的Appenders.Console.ThresholdFilter.level判断是否输出 |
| | | - ref: ROLLING_FILE #输出日志时,首先由本level判断是否输出,然后再由上面的Appenders.RollingFile.ThresholdFilter.level判断是否输出 |
New file |
| | |
| | | package com.dy.pipIrrIrrigate; |
| | | |
| | | import org.junit.jupiter.api.Test; |
| | | import org.springframework.boot.test.context.SpringBootTest; |
| | | |
| | | @SpringBootTest |
| | | class PipIrrWebIrrigateApplicationTests { |
| | | |
| | | @Test |
| | | void contextLoads() { |
| | | } |
| | | |
| | | } |
| | |
| | | public String divideName; |
| | | |
| | | @Schema(description = "片区名称") |
| | | public String blockName; |
| | | public String blockId; |
| | | } |
| | |
| | | public String intakeName; |
| | | |
| | | @Schema(description = "所属分水房") |
| | | public String divideName; |
| | | public String divideId; |
| | | |
| | | @Schema(description = "所属片区") |
| | | public String blockName; |
| | | public String blockId; |
| | | |
| | | @Schema(description = "是否绑定设备") |
| | | //0未绑定 1已绑定 |
| | |
| | | /** |
| | | * 如果操作人员开卡时输入了充值金额,则开卡后调用充值功能 |
| | | */ |
| | | po.setCardNum(cardNum); |
| | | po.setCardNum(Long.parseLong(cardNum)); |
| | | if(amount != null && amount > 0) { |
| | | po.setClientId(clientId); |
| | | DtoRecharge dtoRecharge = RechargeDtoMapper.INSTANCT.po2vo(po); |
| | |
| | | * activeTime 补卡时间 |
| | | */ |
| | | Long cardId = 0L; |
| | | String cardNum = po.getCardNum(); |
| | | Long cardNum = po.getCardNum(); |
| | | //String clientNum = ""; |
| | | Long clientId = 0L; |
| | | Integer cardCost = po.getCardCost(); |
| | |
| | | * 补卡时使用 |
| | | */ |
| | | @Schema(description = "水卡编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | private String cardNum; |
| | | private Long cardNum; |
| | | |
| | | /** |
| | | * 卡片费用 |
| | |
| | | * cancelTime 挂失时间 |
| | | */ |
| | | Long cardId = 0L; |
| | | String cardNum = po.getCardNum(); |
| | | Long cardNum = po.getCardNum(); |
| | | Long clientId = 0L; |
| | | Float refund = po.getRefund(); |
| | | Byte refundType = po.getRefundType(); |
| | |
| | | |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import jakarta.validation.constraints.Min; |
| | | import jakarta.validation.constraints.NotBlank; |
| | | import jakarta.validation.constraints.NotNull; |
| | | import jakarta.validation.constraints.Positive; |
| | | import lombok.*; |
| | | |
| | |
| | | * 水卡编号 |
| | | */ |
| | | @Schema(description = "水卡编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | @NotBlank |
| | | private String cardNum; |
| | | @NotNull(message = "水卡编号不能为空") |
| | | private Long cardNum; |
| | | |
| | | /** |
| | | * 农户编号 |
| | |
| | | * cardAddr 水卡地址(仅仅写入,无业务) |
| | | * clientNum 农户编号 |
| | | * cardCost 卡片费用 |
| | | * amount 充值金额 |
| | | * amount 充值金额,充值接口为输入参数,补卡接口为原卡退还金额 |
| | | * reissueAmount 补卡金额,补卡时使用 |
| | | * paymentId 支付方式编号 |
| | | * remarks 备注 |
| | |
| | | String cardAddr = po.getCardAddr(); |
| | | String clientNum = po.getClientNum(); |
| | | Integer cardCost = po.getCardCost(); |
| | | Long originalCardId = po.getOriginalCardId(); |
| | | Float amount = po.getAmount(); |
| | | Long paymentId = po.getPaymentId(); |
| | | String remarks = po.getRemarks(); |
| | |
| | | Long clientId = cardOperateSv.getClientIdByNum(clientNum); |
| | | |
| | | /** |
| | | * 添加农户卡记录 |
| | | * 添加农户卡记录,退还金额作为当前余额 |
| | | */ |
| | | SeClientCard seClientCard = new SeClientCard(); |
| | | seClientCard.setCardaddr(cardAddr); |
| | | seClientCard.setCardnum(cardNum); |
| | | seClientCard.setClientid(clientId); |
| | | seClientCard.setMoney(0f); |
| | | seClientCard.setMoney(amount); |
| | | seClientCard.setState(CardStateENUM.NORMAL.getCode()); |
| | | seClientCard.setOriginalCardId(originalCardId); |
| | | seClientCard.setCreatedt(activeTime); |
| | | seClientCard.setLastoper(LastOperateENUM.ACTIVE.getCode()); |
| | | |
| | | Long cardId = Optional.ofNullable(clientCardSv.add(seClientCard)).orElse(0L) ; |
| | | if(cardId == 0) { |
| | | return BaseResponseUtils.buildFail(SellResultCode.ACTIVE_FAIL_WRITE_CLIENT_CARD_ERROR.getMessage()); |
| | | } |
| | | |
| | | /** |
| | | * 添加开卡记录 |
| | | * 添加开卡记录,退还金额作为充值金额 |
| | | */ |
| | | SeCardOperate seCardOperate = new SeCardOperate(); |
| | | seCardOperate.setCardId(cardId); |
| | | seCardOperate.setClientId(clientId); |
| | | seCardOperate.setMoney(amount); |
| | | seCardOperate.setCardCost(cardCost); |
| | | seCardOperate.setPaymentId(paymentId); |
| | | seCardOperate.setOperateType(OperateTypeENUM.ACTIVE.getCode()); |
| | |
| | | |
| | | /** |
| | | * 如果操作人员开卡时输入了充值金额,则开卡后调用充值功能 |
| | | * 补卡除外,补卡的退还金额是从挂失卡中转移过来的,没有实际金钱交易 |
| | | */ |
| | | po.setCardNum(cardNum); |
| | | if(amount != null && amount > 0) { |
| | | po.setCardNum(Long.parseLong(cardNum)); |
| | | if(amount != null && amount > 0 && originalCardId == null) { |
| | | po.setClientId(clientId); |
| | | DtoRecharge dtoRecharge = RechargeDtoMapper.INSTANCT.po2vo(po); |
| | | dtoRecharge.setMoney(0f); |
| | |
| | | * cardAddr 新的水卡地址(仅仅写入,无业务) |
| | | * clientNum 农户编号,开新卡使用,通过老卡号获取 |
| | | * cardNum 水卡编号,传入的是老卡号,返回的是新卡号 |
| | | * cardId 原水卡(挂失水卡)ID,转移余额后需要更新卡余额为0 |
| | | * moeny 余额,挂失时使用 |
| | | * cardCost 卡片费用 |
| | | * paymentId 支付方式编号 |
| | |
| | | |
| | | String cardAddr = po.getCardAddr(); |
| | | String clientNum = ""; |
| | | String cardNum = po.getCardNum(); |
| | | Float money = po.getMoney(); |
| | | Long cardNum = po.getCardNum(); |
| | | Long cardId = 0L; |
| | | Integer cardCost = po.getCardCost(); |
| | | Float reissueAmount = po.getReissueAmount(); |
| | | Long paymentId = po.getPaymentId(); |
| | | String remarks = po.getRemarks(); |
| | | Long operator = po.getOperator(); |
| | | |
| | | // 验证水卡状态是否支持当前操作 |
| | | String stateName = Optional.ofNullable(clientCardSv.getCardStateByCardNum(Long.parseLong(cardNum))).orElse(""); |
| | | if(stateName.length() == 0 || !stateName.equals("正常")) { |
| | | return BaseResponseUtils.buildFail(stateName + ", " + SellResultCode.THE_CARD_NOT_SUPPORT_THIS_OPERATION.getMessage()); |
| | | // 判断当前水卡是否为挂失状态且未补卡,仅已经挂失其未补卡的可以补卡 |
| | | if(!cardOperateSv.isLostAndUnreplaced(cardNum)) { |
| | | return BaseResponseUtils.buildFail(SellResultCode.THE_CARD_NOT_SUPPORT_THIS_OPERATION.getMessage()); |
| | | } |
| | | |
| | | /** |
| | |
| | | return BaseResponseUtils.buildFail(SellResultCode.CARD_NUMBER_MISTAKE.getMessage()); |
| | | } |
| | | clientNum = map.get("clientNum").toString(); |
| | | cardId = Long.parseLong(map.get("cardId").toString()); |
| | | |
| | | /** |
| | | * 添加挂失记录 |
| | | * 如果是补卡调用的开卡且转移了退还金额,需修改挂失卡余额为0 |
| | | */ |
| | | DtoLoss dtoLoss = new DtoLoss(); |
| | | dtoLoss.setCardNum(cardNum); |
| | | dtoLoss.setMoney(money); |
| | | dtoLoss.setRefund(0f); |
| | | dtoLoss.setRemarks(remarks); |
| | | dtoLoss.setOperator(operator); |
| | | BaseResponse<java.lang.Boolean> baseResponse_addLoss = this.add_loss(dtoLoss, null); |
| | | |
| | | if(!baseResponse_addLoss.getCode().equals("0001")) { |
| | | return BaseResponseUtils.buildFail(SellResultCode.REPLACE_FAIL_WRITE_RECHARGE_ERROR.getMessage()); |
| | | } |
| | | SeClientCard seClientCard = new SeClientCard(); |
| | | seClientCard.setId(cardId); |
| | | seClientCard.setMoney(0f); |
| | | cardOperateSv.updateClientCard(seClientCard); |
| | | |
| | | /** |
| | | * 添加开卡记录 |
| | | * 添加开卡记录,退还金额冲到新卡中 |
| | | */ |
| | | DtoActiveCard dtoActiveCard = new DtoActiveCard(); |
| | | dtoActiveCard.setCardAddr(cardAddr); |
| | | dtoActiveCard.setClientNum(clientNum); |
| | | dtoActiveCard.setOriginalCardId(cardNum); |
| | | dtoActiveCard.setCardCost(cardCost); |
| | | dtoActiveCard.setAmount(0f); |
| | | dtoActiveCard.setAmount(reissueAmount); |
| | | dtoActiveCard.setPaymentId(paymentId); |
| | | dtoActiveCard.setRemarks(remarks); |
| | | dtoActiveCard.setOperator(operator); |
| | |
| | | } |
| | | |
| | | String theContent = String.valueOf(baseResponse_addActive.getContent()); |
| | | cardNum = theContent.substring(theContent.indexOf("=") + 1, theContent.indexOf(",")); |
| | | cardNum = Long.parseLong(theContent.substring(theContent.indexOf("=") + 1, theContent.indexOf(","))); |
| | | |
| | | Map map_response = new HashMap(); |
| | | map_response.put("projectCode", Constant.projectCode_ym); |
| | |
| | | */ |
| | | Long cardId = 0L; |
| | | Long clientId = 0L; |
| | | String cardNum = po.getCardNum(); |
| | | Long cardNum = po.getCardNum(); |
| | | Float refund = po.getRefund(); |
| | | Byte refundType = po.getRefundType(); |
| | | String remarks = po.getRemarks(); |
| | |
| | | Date cancelTime = new Date(); |
| | | |
| | | // 验证水卡状态是否支持当前操作 |
| | | String stateName = Optional.ofNullable(clientCardSv.getCardStateByCardNum(Long.parseLong(cardNum))).orElse(""); |
| | | String stateName = Optional.ofNullable(clientCardSv.getCardStateByCardNum(cardNum)).orElse(""); |
| | | if(stateName.length() == 0 || !stateName.equals("正常")) { |
| | | return BaseResponseUtils.buildFail(stateName + ", " + SellResultCode.THE_CARD_NOT_SUPPORT_THIS_OPERATION.getMessage()); |
| | | } |
| | |
| | | */ |
| | | Long cardId = 0L; |
| | | Long clientId = 0L; |
| | | String cardNum = po.getCardNum(); |
| | | Long cardNum = po.getCardNum(); |
| | | Float money = po.getMoney(); |
| | | Float refund = po.getRefund(); |
| | | String remarks = po.getRemarks(); |
| | |
| | | Date lossTime = new Date(); |
| | | |
| | | // 验证水卡状态是否支持当前操作 |
| | | String stateName = Optional.ofNullable(clientCardSv.getCardStateByCardNum(Long.parseLong(cardNum))).orElse(""); |
| | | String stateName = Optional.ofNullable(clientCardSv.getCardStateByCardNum(cardNum)).orElse(""); |
| | | if(stateName.length() == 0 || !stateName.equals("正常")) { |
| | | return BaseResponseUtils.buildFail(stateName + ", " + SellResultCode.THE_CARD_NOT_SUPPORT_THIS_OPERATION.getMessage()); |
| | | } |
| | |
| | | */ |
| | | Long cardId = 0L; |
| | | Long clientId = 0L; |
| | | String cardNum = po.getCardNum(); |
| | | Long cardNum = po.getCardNum(); |
| | | Float cardBalance = po.getCardBalance(); |
| | | Float systemBalance = po.getSystemBalance(); |
| | | String remarks = po.getRemarks(); |
| | |
| | | Date reversalTime = new Date(); |
| | | |
| | | // 验证水卡状态是否支持当前操作 |
| | | String stateName = Optional.ofNullable(clientCardSv.getCardStateByCardNum(Long.parseLong(cardNum))).orElse(""); |
| | | String stateName = Optional.ofNullable(clientCardSv.getCardStateByCardNum(cardNum)).orElse(""); |
| | | if(stateName.length() == 0 || !stateName.equals("正常")) { |
| | | return BaseResponseUtils.buildFail(stateName + ", " + SellResultCode.THE_CARD_NOT_SUPPORT_THIS_OPERATION.getMessage()); |
| | | } |
| | |
| | | */ |
| | | Long cardId = 0L; |
| | | Long clientId = 0L; |
| | | String cardNum = po.getCardNum(); |
| | | Long cardNum = po.getCardNum(); |
| | | Float money = po.getMoney(); |
| | | Float refund = po.getRefund(); |
| | | String remarks = po.getRemarks(); |
| | |
| | | Date refundTime = new Date(); |
| | | |
| | | // 验证水卡状态是否支持当前操作 |
| | | String stateName = Optional.ofNullable(clientCardSv.getCardStateByCardNum(Long.parseLong(cardNum))).orElse(""); |
| | | String stateName = Optional.ofNullable(clientCardSv.getCardStateByCardNum(cardNum)).orElse(""); |
| | | if(stateName.length() == 0 || !stateName.equals("正常")) { |
| | | return BaseResponseUtils.buildFail(stateName + ", " + SellResultCode.THE_CARD_NOT_SUPPORT_THIS_OPERATION.getMessage()); |
| | | } |
| | |
| | | } |
| | | |
| | | /** |
| | | * cardId 水卡编号(非传入参数,由cardAddr反查,修改农户卡使用) |
| | | * cardId 水卡主键(非传入参数,由cardNum反查,修改农户卡使用) |
| | | * clientId 农户编号(非传入参数,由cardNum反查) |
| | | * cardNum 水卡地址 |
| | | * cardNum 水卡编号 |
| | | * money 余额 |
| | | * remarks 备注 |
| | | * operator 操作人编号 |
| | |
| | | */ |
| | | Long cardId = 0L; |
| | | Long clientId = 0L; |
| | | String cardNum = po.getCardNum(); |
| | | Long cardNum = po.getCardNum(); |
| | | Float money = po.getMoney(); |
| | | String remarks = po.getRemarks(); |
| | | Long operator = po.getOperator(); |
| | | Date unlockTime = new Date(); |
| | | |
| | | // 验证水卡状态是否支持当前操作 |
| | | String stateName = Optional.ofNullable(clientCardSv.getCardStateByCardNum(Long.parseLong(cardNum))).orElse(""); |
| | | if(stateName.length() == 0 || !stateName.equals("已挂失")) { |
| | | return BaseResponseUtils.buildFail(stateName + ", " + SellResultCode.THE_CARD_NOT_SUPPORT_THIS_OPERATION.getMessage()); |
| | | // 判断当前水卡是否为挂失状态且未补卡,仅已经挂失其未补卡的可以解锁 |
| | | if(!cardOperateSv.isLostAndUnreplaced(cardNum)) { |
| | | return BaseResponseUtils.buildFail(SellResultCode.THE_CARD_NOT_SUPPORT_THIS_OPERATION.getMessage()); |
| | | } |
| | | |
| | | /** |
| | |
| | | return BaseResponseUtils.buildException(e.getMessage()) ; |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 根据指定条件获取开卡记录 |
| | |
| | | */ |
| | | Long cardId = 0L; |
| | | Long clientId = 0L; |
| | | String cardNum = po.getCardNum(); |
| | | Long cardNum = po.getCardNum(); |
| | | Float money = po.getMoney(); |
| | | Float amount = po.getAmount(); |
| | | Float gift = po.getGift(); |
| | |
| | | |
| | | |
| | | // 验证水卡状态是否支持当前操作 |
| | | String stateName = Optional.ofNullable(clientCardSv.getCardStateByCardNum(Long.parseLong(cardNum))).orElse(""); |
| | | String stateName = Optional.ofNullable(clientCardSv.getCardStateByCardNum(cardNum)).orElse(""); |
| | | if(stateName.length() == 0 || !stateName.equals("正常")) { |
| | | return BaseResponseUtils.buildFail(stateName + ", " + SellResultCode.THE_CARD_NOT_SUPPORT_THIS_OPERATION.getMessage()); |
| | | } |
| | |
| | | |
| | | return BaseResponseUtils.buildSuccess(true) ; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 根据指定条件获取充值记录 |
| | |
| | | |
| | | return map_result; |
| | | } |
| | | |
| | | /** |
| | | * 判断指定水卡是否为挂失状态且无补卡记录 |
| | | * @param cardNum 水卡编号 |
| | | * @return 是否已挂失未补卡 |
| | | */ |
| | | public Boolean isLostAndUnreplaced(Long cardNum) { |
| | | Integer rec = seClientCardMapper.isLostAndUnreplaced(cardNum); |
| | | if(rec != null && rec > 0) { |
| | | return false; |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | /** |
| | | * 修改农户水卡 |
| | | * @param po |
| | | * @return |
| | | */ |
| | | public Integer updateClientCard(SeClientCard po) { |
| | | return seClientCardMapper.updateByPrimaryKeySelective(po); |
| | | } |
| | | } |
| | |
| | | * 水卡编号,不是开卡接口传入,由农户编号获得,充值需要 |
| | | */ |
| | | @Schema(description = "水卡编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | private String cardNum; |
| | | private Long cardNum; |
| | | |
| | | /** |
| | | * 原挂失卡ID |
| | | */ |
| | | @Schema(description = "原挂失卡ID", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | private Long originalCardId; |
| | | |
| | | /** |
| | | * 卡片费用 |
| | |
| | | |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import jakarta.validation.constraints.Min; |
| | | import jakarta.validation.constraints.NotBlank; |
| | | import jakarta.validation.constraints.NotNull; |
| | | import jakarta.validation.constraints.Positive; |
| | | import lombok.*; |
| | | |
| | |
| | | * 水卡编号 |
| | | */ |
| | | @Schema(description = "水卡编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | @NotBlank |
| | | private String cardNum; |
| | | @NotNull(message = "水卡编号不能为空") |
| | | private Long cardNum; |
| | | |
| | | /** |
| | | * 农户编号 |
| | |
| | | |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import jakarta.validation.constraints.Min; |
| | | import jakarta.validation.constraints.NotBlank; |
| | | import jakarta.validation.constraints.NotNull; |
| | | import jakarta.validation.constraints.Positive; |
| | | import lombok.*; |
| | | |
| | |
| | | * 水卡编号 |
| | | */ |
| | | @Schema(description = "水卡编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | @NotBlank(message = "水卡编号不能为空") |
| | | private String cardNum; |
| | | @NotNull(message = "水卡编号不能为空") |
| | | private Long cardNum; |
| | | |
| | | /** |
| | | * 余额 |
| | |
| | | |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import jakarta.validation.constraints.Min; |
| | | import jakarta.validation.constraints.NotBlank; |
| | | import jakarta.validation.constraints.NotNull; |
| | | import jakarta.validation.constraints.Positive; |
| | | import lombok.*; |
| | | |
| | |
| | | * 水卡编号 |
| | | */ |
| | | @Schema(description = "水卡编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | @NotBlank(message = "水卡编号不能为空") |
| | | private String cardNum; |
| | | @NotNull(message = "水卡编号不能为空") |
| | | private Long cardNum; |
| | | |
| | | /** |
| | | * 农户ID,不是充值接口传入,由开卡对象传入,保存充值记录需要 |
| | |
| | | |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import jakarta.validation.constraints.Min; |
| | | import jakarta.validation.constraints.NotBlank; |
| | | import jakarta.validation.constraints.NotNull; |
| | | import jakarta.validation.constraints.Positive; |
| | | import lombok.*; |
| | | |
| | |
| | | * 水卡编号 |
| | | */ |
| | | @Schema(description = "水卡编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | @NotBlank(message = "水卡编号不能为空") |
| | | private String cardNum; |
| | | @NotNull(message = "水卡编号不能为空") |
| | | private Long cardNum; |
| | | |
| | | /** |
| | | * 卡片余额 |
| | |
| | | @NotBlank(message = "水卡地址不能为空") |
| | | private String cardAddr; |
| | | |
| | | ///** |
| | | // * 农户编号,开卡使用 |
| | | // */ |
| | | //@Schema(description = "农户编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | //private String clientNum; |
| | | |
| | | /** |
| | | * 农户ID(主键),不是开卡接口传入,由农户编号获得,保存开卡记录和充值记录都需要 |
| | | */ |
| | | //@Schema(description = "农户ID", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | //private Long clientId; |
| | | |
| | | /** |
| | | * 水卡编号,不是开卡接口传入,由农户编号获得,充值需要 |
| | | */ |
| | | @Schema(description = "水卡编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | private String cardNum; |
| | | private Long cardNum; |
| | | |
| | | /** |
| | | * 金额 |
| | | */ |
| | | @Schema(description = "金额", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | @Min(value = 0, message="金额不能小于0") |
| | | private Float money; |
| | | //@Schema(description = "金额", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | //@Min(value = 0, message="金额不能小于0") |
| | | //private Float money; |
| | | |
| | | /** |
| | | * 卡片费用 |
| | |
| | | private Integer cardCost; |
| | | |
| | | /** |
| | | * 补卡金额,开卡时充值用 |
| | | * 退还金额,补开卡时充值用 |
| | | */ |
| | | //@Schema(description = "补卡金额", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | //@Min(value = 0, message="补卡金额不能小于0") |
| | | //private Float reissueAmount; |
| | | @Schema(description = "退还金额", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | @Min(value = 0, message="退还金额不能小于0") |
| | | private Float reissueAmount; |
| | | |
| | | /** |
| | | * 支付方式编号 |
| | |
| | | |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import jakarta.validation.constraints.Min; |
| | | import jakarta.validation.constraints.NotBlank; |
| | | import jakarta.validation.constraints.NotNull; |
| | | import jakarta.validation.constraints.Positive; |
| | | import lombok.*; |
| | | |
| | |
| | | * 水卡编号 |
| | | */ |
| | | @Schema(description = "水卡编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | @NotBlank(message = "水卡编号不能为空") |
| | | private String cardNum; |
| | | @NotNull(message = "水卡编号不能为空") |
| | | private Long cardNum; |
| | | |
| | | /** |
| | | * 农户编号 |
| | |
| | | |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import jakarta.validation.constraints.Min; |
| | | import jakarta.validation.constraints.NotBlank; |
| | | import jakarta.validation.constraints.NotNull; |
| | | import jakarta.validation.constraints.Positive; |
| | | import lombok.*; |
| | | |
| | |
| | | * 水卡编号 |
| | | */ |
| | | @Schema(description = "水卡编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | @NotBlank(message = "水卡编号不能为空") |
| | | private String cardNum; |
| | | @NotNull(message = "水卡编号不能为空") |
| | | private Long cardNum; |
| | | |
| | | /** |
| | | * 农户编号 |
| | |
| | | import io.swagger.v3.oas.annotations.responses.ApiResponses; |
| | | import io.swagger.v3.oas.annotations.tags.Tag; |
| | | import jakarta.validation.Valid; |
| | | import jakarta.validation.constraints.NotNull; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.http.MediaType; |
| | |
| | | |
| | | return BaseResponseUtils.buildSuccess(true) ; |
| | | } |
| | | |
| | | /** |
| | | * 根据村ID获取12位行政区划 |
| | | * @param villageId |
| | | * @return |
| | | */ |
| | | @Operation(summary = "根据村ID获取12位行政区划", description = "根据村ID获取12位行政区划") |
| | | @ApiResponses(value = { |
| | | @ApiResponse( |
| | | responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, |
| | | description = "操作结果:true:成功,false:失败(BaseResponse.content)", |
| | | content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, |
| | | schema = @Schema(implementation = Boolean.class))} |
| | | ) |
| | | }) |
| | | @GetMapping(path = "district") |
| | | @SsoAop() |
| | | public BaseResponse<Boolean> getDistrictNum(@RequestParam("villageId") @NotNull(message = "村编号不能为空") Long villageId){ |
| | | /** |
| | | * 获取5级行政区划信息 |
| | | */ |
| | | Map map_districts = Optional.ofNullable(clientSv.getDistrictsByVillageId(villageId)).orElse(new HashMap()); |
| | | if(map_districts.size() <= 0) { |
| | | return BaseResponseUtils.buildFail("区划信息有误"); |
| | | } |
| | | |
| | | String provinceNum = map_districts.get("provinceNum").toString(); |
| | | String cityNum = map_districts.get("cityNum").toString(); |
| | | String countyNum = map_districts.get("countyNum").toString(); |
| | | String townNum = map_districts.get("townNum").toString(); |
| | | String villageNum = map_districts.get("villageNum").toString(); |
| | | |
| | | // 生成12位5级行政区划编码串及名称串 |
| | | Long districtNum = Long.parseLong(provinceNum + cityNum + countyNum + townNum + villageNum); |
| | | |
| | | Map map = new HashMap(); |
| | | map.put("districtNum", districtNum); |
| | | return BaseResponseUtils.buildSuccess(map) ; |
| | | } |
| | | } |
| | |
| | | * @param cardNum |
| | | * @return |
| | | */ |
| | | public Map getCardIdAndClientNum(String cardNum) { |
| | | public Map getCardIdAndClientNum(Long cardNum) { |
| | | return seClientCardMapper.getCardIdAndClientNum(cardNum); |
| | | } |
| | | /** |
| | |
| | | |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import jakarta.validation.constraints.Min; |
| | | import jakarta.validation.constraints.NotBlank; |
| | | import jakarta.validation.constraints.NotNull; |
| | | import jakarta.validation.constraints.Positive; |
| | | import lombok.*; |
| | | |
| | |
| | | * 水卡编号 |
| | | */ |
| | | @Schema(description = "水卡编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | @NotBlank |
| | | private String cardNum; |
| | | @NotNull(message = "水卡编号不能为空") |
| | | private Long cardNum; |
| | | |
| | | /** |
| | | * 农户编号 |
| | |
| | | * lossTime 挂失时间 |
| | | */ |
| | | Long cardId = 0L; |
| | | String cardNum = po.getCardNum(); |
| | | Long cardNum = po.getCardNum(); |
| | | Long clientId = 0L; |
| | | Float money = po.getMoney(); |
| | | Float refund = po.getRefund(); |
| | |
| | | |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import jakarta.validation.constraints.Min; |
| | | import jakarta.validation.constraints.NotBlank; |
| | | import jakarta.validation.constraints.NotNull; |
| | | import jakarta.validation.constraints.Positive; |
| | | import lombok.*; |
| | | |
| | |
| | | * 水卡编号 |
| | | */ |
| | | @Schema(description = "水卡编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | @NotBlank(message = "水卡编号不能为空") |
| | | @NotNull(message = "水卡编号不能为空") |
| | | //private String cardAddr; |
| | | private String cardNum; |
| | | private Long cardNum; |
| | | //private Long cardId; |
| | | |
| | | /** |
| | |
| | | * rechargeTime 充值时间 |
| | | */ |
| | | Long cardId = 0L; |
| | | String cardNum = po.getCardNum(); |
| | | Long cardNum = po.getCardNum(); |
| | | String clientNum = ""; |
| | | //Long clientId = po.getClientId(); |
| | | Long clientId = 0L; |
| | |
| | | ABNORMAL(10001, "退款异常"), |
| | | RECHARGE_ADD_FAIL(10001, "充值记录添加失败"), |
| | | |
| | | CARD_NAME_ESIST(90001, "该名称虚拟卡已经存在"), |
| | | CLIENT_ID_CANNOT_BE_NULL(90001, "农户编号不能为空"), |
| | | WALLET_OPEN_ACCOUNT_FAIL(90002, "虚拟卡账户注册失败"), |
| | | //WALLET_ACCOUNT_EXIST(90003, "该农户已注册电子钱包"), |
| | |
| | | |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import jakarta.validation.constraints.Min; |
| | | import jakarta.validation.constraints.NotBlank; |
| | | import jakarta.validation.constraints.NotNull; |
| | | import jakarta.validation.constraints.Positive; |
| | | import lombok.*; |
| | | |
| | |
| | | * 水卡编号 |
| | | */ |
| | | @Schema(description = "水卡编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | @NotBlank |
| | | private String cardNum; |
| | | @NotNull(message = "水卡编号不能为空") |
| | | private Long cardNum; |
| | | |
| | | /** |
| | | * 农户编号 |
| | |
| | | * reversalTime 冲正 |
| | | */ |
| | | Long cardId = 0L; |
| | | String cardNum = po.getCardNum(); |
| | | Long cardNum = po.getCardNum(); |
| | | Long clientId = 0L; |
| | | Float cardBalance = po.getCardBalance(); |
| | | Float systemBalance = po.getSystemBalance(); |
| | |
| | | |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import jakarta.validation.constraints.Min; |
| | | import jakarta.validation.constraints.NotBlank; |
| | | import jakarta.validation.constraints.NotNull; |
| | | import jakarta.validation.constraints.Positive; |
| | | import lombok.*; |
| | | |
| | |
| | | * 水卡编号 |
| | | */ |
| | | @Schema(description = "水卡编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | @NotBlank(message = "水卡编号不能为空") |
| | | private String cardNum; |
| | | @NotNull(message = "水卡编号不能为空") |
| | | private Long cardNum; |
| | | |
| | | /** |
| | | * 农户编号 |
| | |
| | | * unlockTime 解锁时间 |
| | | */ |
| | | Long cardId = 0L; |
| | | String cardNum = po.getCardNum(); |
| | | Long cardNum = po.getCardNum(); |
| | | Long clientId = 0L; |
| | | Float money = po.getMoney(); |
| | | String remarks = po.getRemarks(); |
| | |
| | | import com.dy.pipIrrSell.util.PayHelper; |
| | | import com.dy.pipIrrSell.virtualCard.dto.DtoAudit; |
| | | import com.dy.pipIrrSell.virtualCard.dto.DtoRefund; |
| | | import com.dy.pipIrrSell.virtualCard.dto.DtoRegist; |
| | | import com.dy.pipIrrSell.virtualCard.enums.LastOperateENUM; |
| | | import com.dy.pipIrrSell.virtualCard.enums.RefundItemStateENUM; |
| | | import com.dy.pipIrrSell.virtualCard.enums.RefundStateENUM; |
| | |
| | | import io.swagger.v3.oas.annotations.responses.ApiResponses; |
| | | import io.swagger.v3.oas.annotations.tags.Tag; |
| | | import jakarta.validation.Valid; |
| | | import jakarta.validation.constraints.NotNull; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.http.MediaType; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.validation.BindingResult; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import javax.crypto.NoSuchPaddingException; |
| | | import java.io.IOException; |
| | |
| | | |
| | | /** |
| | | * 虚拟卡账号注册 |
| | | * @param clientId |
| | | * @param po |
| | | * @param bindingResult |
| | | * @return |
| | | */ |
| | | @Operation(summary = "注册虚拟卡", description = "注册虚拟卡") |
| | |
| | | }) |
| | | @PostMapping(path = "add_vc") |
| | | @SsoAop() |
| | | public BaseResponse<Boolean> addWallet(@RequestParam("clientId") @NotNull(message = "农户编号不能为空") Long clientId){ |
| | | if(clientId == null || clientId < 0) { |
| | | return BaseResponseUtils.buildFail(SellResultCode.CLIENT_ID_CANNOT_BE_NULL.getMessage()); |
| | | //public BaseResponse<Boolean> addVC(@RequestParam("clientId") @NotNull(message = "农户编号不能为空") Long clientId){ |
| | | public BaseResponse<Boolean> addVC(@RequestBody @Valid DtoRegist po, BindingResult bindingResult){ |
| | | if(bindingResult != null && bindingResult.hasErrors()){ |
| | | return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); |
| | | } |
| | | Long clientId = po.getClientId(); |
| | | String vcName = po.getVcName(); |
| | | |
| | | // 名称验重 |
| | | Integer rc = virtualCardSv.getRecordCountByName(po); |
| | | if(rc != null && rc > 0) { |
| | | return BaseResponseUtils.buildFail(SellResultCode.CARD_NAME_ESIST.getMessage()); |
| | | } |
| | | |
| | | SeVirtualCard seVirtualCard = new SeVirtualCard(); |
| | | seVirtualCard.setVcName(vcName); |
| | | seVirtualCard.setClientId(clientId); |
| | | seVirtualCard.setMoney(0d); |
| | | seVirtualCard.setLastOperate(LastOperateENUM.OPEN_ACCOUNT.getCode()); |
| | | seVirtualCard.setLastOperateTime(new Date()); |
| | | seVirtualCard.setInUse((byte) 0); |
| | | seVirtualCard.setCreateTime(new Date()); |
| | | Long rec = virtualCardSv.insertVirtualCard(seVirtualCard); |
| | | if(rec == null) { |
| | |
| | | import com.dy.pipIrrGlobal.pojoSe.SeVirtualCard; |
| | | import com.dy.pipIrrGlobal.voSe.VoOrders; |
| | | import com.dy.pipIrrSell.result.SellResultCode; |
| | | import com.dy.pipIrrSell.virtualCard.dto.DtoRegist; |
| | | import com.dy.pipIrrSell.virtualCard.dto.DtoVirtualCard; |
| | | import com.dy.pipIrrSell.virtualCard.enums.LastOperateENUM; |
| | | import com.dy.pipIrrSell.virtualCard.enums.OrderStateENUM; |
| | |
| | | } |
| | | |
| | | /** |
| | | * 验证农户是否拥有指定名称的虚拟卡 |
| | | * @param po |
| | | * @return |
| | | */ |
| | | public Integer getRecordCountByName(DtoRegist po) { |
| | | return seVirtualCardMapper.getRecordCountByName(po.getClientId(), po.getVcName()); |
| | | } |
| | | |
| | | /** |
| | | * 修改虚拟卡 |
| | | * 充值、消费、申请退款、审核退款时需要修改虚拟卡的:余额、最后操作、最后操作时间 |
| | | * @param po |
New file |
| | |
| | | package com.dy.pipIrrSell.virtualCard.dto; |
| | | |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import jakarta.validation.constraints.NotBlank; |
| | | import jakarta.validation.constraints.NotNull; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @author ZhuBaoMin |
| | | * @date 2024-04-22 9:53 |
| | | * @LastEditTime 2024-04-22 9:53 |
| | | * @Description |
| | | */ |
| | | |
| | | @Data |
| | | @Schema(name = "注册虚拟卡传入对象") |
| | | public class DtoRegist { |
| | | public static final long serialVersionUID = 202404220954001L; |
| | | |
| | | /** |
| | | * 农户ID |
| | | */ |
| | | @Schema(description = "农户ID", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | @NotNull(message = "农户ID不能为空") |
| | | private Long clientId; |
| | | |
| | | /** |
| | | * 虚拟卡名称 |
| | | */ |
| | | @Schema(description = "农户ID", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | @NotBlank(message = "虚拟卡名称不能为空") |
| | | private String vcName; |
| | | } |
| | |
| | | <module>pipIrr-web-gis</module> |
| | | <module>pipIrr-web-sell</module> |
| | | <module>pipIrr-web-project</module> |
| | | <module>pipIrr-web-irrigate</module> |
| | | </modules> |
| | | |
| | | <dependencies> |