From a2e2c9d1f359e9702d59a4d27a36af3f0bb6aceb Mon Sep 17 00:00:00 2001 From: Administrator <zhubaomin> Date: 星期五, 19 一月 2024 17:27:33 +0800 Subject: [PATCH] 2024-01-19 朱宝民 获取用户列表新接口 --- pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeCardOperate.java | 138 ++++ pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoReversal.java | 64 ++ pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoRecharge.java | 84 ++ pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/ActiveCardCtrl.java | 5 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java | 177 +++++ pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml | 221 +++++++ pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java | 550 ++++++++++++++++++ pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoActiveCard.java | 89 ++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java | 27 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/enums/OperateTypeENUM.java | 27 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserCtrl.java | 6 /dev/null | 21 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoLoss.java | 58 + pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/DtoActiveCard.java | 2 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaUserMapper.java | 28 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/converter/RechargeDtoMapper.java | 26 pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml | 78 ++ pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoCancel.java | 64 ++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoUserInfo.java | 18 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeActiveCard.java | 2 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserSv.java | 74 + 21 files changed, 1,714 insertions(+), 45 deletions(-) diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaUserMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaUserMapper.java index cd7bc13..ac420c3 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaUserMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaUserMapper.java @@ -101,4 +101,32 @@ * @return */ Map getUserInfoById(@Param("userId") Long userId); + + /** + * 鏍规嵁鎸囧畾鐨勬潯浠惰幏鍙栫敤鎴疯褰曟暟 + * @param params + * @return + */ + Long getRecordCount(Map<?, ?> params); + + /** + * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鐢ㄦ埛鍒楄〃 + * @param params + * @return + */ + List<VoUserInfo> getUsers(Map<?, ?> params); + + /** + * 鏍规嵁鐢ㄦ埛缂栧彿鑾峰彇瑙掕壊ID鍒楄〃 + * @param userId + * @return + */ + List<Map<String, Object>> getRoleIdsByUserId(@Param("userId") Long userId); + + /** + * getRoleNamesByUserId + * @param userId + * @return + */ + List<Map<String, Object>> getRoleNamesByUserId(@Param("userId") Long userId); } diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java new file mode 100644 index 0000000..798b5b4 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java @@ -0,0 +1,27 @@ +package com.dy.pipIrrGlobal.daoSe; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dy.pipIrrGlobal.pojoSe.SeCardOperate; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author ZhuBaoMin + * @date 2024-01-18 19:28 + * @LastEditTime 2024-01-18 19:28 + * @Description + */ + +@Mapper +public interface SeCardOperateMapper extends BaseMapper { + int deleteByPrimaryKey(Long id); + + int insert(SeCardOperate record); + + int insertSelective(SeCardOperate record); + + SeCardOperate selectByPrimaryKey(Long id); + + int updateByPrimaryKeySelective(SeCardOperate record); + + int updateByPrimaryKey(SeCardOperate record); +} \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeActiveCard.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeActiveCard.java index ed80934..750461f 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeActiveCard.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeActiveCard.java @@ -89,7 +89,7 @@ */ @Schema(description = "琛ュ崱閲戦", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @Length(message = "琛ュ崱閲戦涓嶅皬浜巤min}", min = 0) - private Double reissueamount; + private Float reissueamount; /** * 鎿嶄綔绫诲瀷;1-寮�鍗★紝2-琛ュ崱 diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeCardOperate.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeCardOperate.java new file mode 100644 index 0000000..21e51cb --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeCardOperate.java @@ -0,0 +1,138 @@ +package com.dy.pipIrrGlobal.pojoSe; + +import com.alibaba.fastjson2.annotation.JSONField; +import com.alibaba.fastjson2.writer.ObjectWriterImplToString; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.dy.common.po.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Positive; +import lombok.*; +import org.hibernate.validator.constraints.Length; + +import java.util.Date; + +/** + * @author ZhuBaoMin + * @date 2024-01-18 19:10 + * @LastEditTime 2024-01-18 19:10 + * @Description + */ + +@TableName(value="se_card_operate", autoResultMap = true) +@Data +@Builder +@ToString +@NoArgsConstructor +@AllArgsConstructor +@Schema(name = "姘村崱鎿嶄綔瀹炰綋") +public class SeCardOperate implements BaseEntity { + public static final long serialVersionUID = 202401181914001L; + + /** + * 涓婚敭 + */ + @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) + @NotNull(message = "姘村崱ID涓嶈兘涓虹┖") + private Long cardId; + + /** + * 鍐滄埛ID + */ + @Schema(description = "鍐滄埛ID", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @NotNull(message = "鍐滄埛ID涓嶈兘涓虹┖") + private Long clientId; + + /** + * 鍗$墖浣欓;鍏呭�笺�佹寕澶便�佸啿姝c�佽В閿� + */ + @Schema(description = "鍗$墖浣欓", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Length(message = "鍗$墖浣欓涓嶅皬浜巤min}", min = 0) + private Float money; + + /** + * 绯荤粺浣欓;鍐叉鏃朵娇鐢� + */ + @Schema(description = "绯荤粺浣欓", requiredMode = Schema.RequiredMode.REQUIRED) + @Length(message = "绯荤粺浣欓涓嶅皬浜巤min}", min = 0) + private Float systemBalance; + + /** + * 浜ゆ槗閲戦;璐按閲戦銆侀��娆鹃噾棰� + */ + @Schema(description = "浜ゆ槗閲戦", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Length(message = "浜ゆ槗閲戦涓嶅皬浜巤min}", min = 0) + private Float tradeAmount; + + /** + * 姘翠环;鍏呭�兼椂浣跨敤 + */ + @Schema(description = "姘翠环", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Length(message = "姘翠环涓嶅皬浜巤min}", min = 0) + private Float price; + + /** + * 璐崱閲戦 + */ + @Schema(description = "璐崱閲戦", requiredMode = Schema.RequiredMode.REQUIRED) + @Length(message = "璐崱閲戦涓嶅皬浜巤min}瀛�", min = 0) + private Integer cardCost; + + /** + * 璧犻�侀噾棰� + */ + @Schema(description = "璧犻�侀噾棰�", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Length(message = "璧犻�侀噾棰濅笉灏忎簬{min}", min = 0) + private Float gift; + + /** + * 闈炰氦鏄撻噾棰�;琛ュ崱閲戦銆佽ˉ鎵i噾棰濄�佸墿浣欓噾棰濓紙瑙i攣锛� + */ + @Schema(description = "闈炰氦鏄撻噾棰�", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Length(message = "闈炰氦鏄撻噾棰濅笉灏忎簬{min}", min = 0) + private Float noTradeAmount; + + /** + * 鎿嶄綔绫诲瀷 + */ + @Schema(description = "鎿嶄綔绫诲瀷", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Length(message = "浠樻鏂瑰紡涓嶅ぇ浜巤max}锛屼笉灏忎簬{min}", min = 1, max = 8) + private Byte operateType; + + /** + * 浠樻鏂瑰紡缂栧彿 + */ + @Schema(description = "浠樻鏂瑰紡缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Length(message = "浠樻鏂瑰紡缂栧彿涓嶅ぇ浜巤max}锛屼笉灏忎簬{min}", min = 1, max = 4) + private Long paymentId; + + /** + * 澶囨敞淇℃伅 + */ + @Schema(description = "澶囨敞", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Length(message = "澶囨敞闀垮害灏忎簬{max}瀛�", min = 1, max = 200) + private String remarks; + + /** + * 鎿嶄綔浜虹紪鍙� + */ + @Schema(description = "鎿嶄綔浜篒D", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Positive(message = "鎿嶄綔浜篒D蹇呴』涓哄ぇ浜�0鐨勬暣鏁�") + private Long operator; + + /** + * 鎿嶄綔鏃堕棿 + */ + @Schema(description = "鎿嶄綔鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + private Date operateDt; +} \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoUserInfo.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoUserInfo.java index 437a9f8..0dd1eb3 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoUserInfo.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoUserInfo.java @@ -21,10 +21,25 @@ private static final long serialVersionUID = 1L; @Schema(title = "鐢ㄦ埛ID") - private String userId; + private Long userId; @Schema(title = "鐢ㄦ埛濮撳悕") private String userName; + + @Schema(title = "鎵嬫満鍙�") + private String phone; + + @Schema(title = "鐗囧尯ID") + private Long blockId; + + @Schema(title = "鐗囧尯鍚嶇О") + private String blockName; + + @Schema(title = "鐘舵�佺紪鍙�") + private Integer stateId; + + @Schema(title = "鐘舵�佸悕绉�") + private String stateName; @Schema(title = "瑙掕壊缂栧彿鍒楄〃") private List<Map<String, Object>> roleIds; @@ -33,7 +48,6 @@ private List<Map<String, Object>> roleNames; @Schema(title = "鏉冮檺鍒楄〃") - //private List<Map<String, Object>> permissions; private JSONArray permissions; } \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml index 66fbe78..c49501a 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml @@ -256,4 +256,82 @@ </if> </where> </select> + + <!--鏍规嵁鎸囧畾鐨勬潯浠惰幏鍙栫敤鎴疯褰曟暟--> + <select id="getRecordCount" parameterType="java.util.Map" resultType="java.lang.Long"> + SELECT + COUNT(*) AS recordCount + FROM ba_user user + INNER JOIN ba_user_role usro ON usro.userId = user.id + <where> + AND user.supperAdmin != 1 + AND user.deleted = 0 + + <if test = "name != null and name !=''"> + AND user.name like CONCAT('%',#{name},'%') + </if> + + <if test = "phone != null and phone !=''"> + AND user.phone like CONCAT('%',#{phone},'%') + </if> + + <if test = "roleId != null and roleId > 0"> + AND usro.roleId = ${roleId} + </if> + </where> + </select> + + <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鐢ㄦ埛鍒楄〃--> + <select id="getUsers" resultType="com.dy.pipIrrGlobal.voBa.VoUserInfo"> + SELECT + id AS userId, + phone, + name AS userName, + disabled AS stateId, + (CASE + WHEN disabled = 0 THEN "姝e父" + WHEN disabled = 1 THEN "宸茬鐢�" + END) AS stateName, + blockId, + (SELECT name FROM ba_block WHERE id = user.blockId) AS blockName + FROM ba_user user + INNER JOIN ba_user_role usro ON usro.userId = user.id + <where> + AND user.supperAdmin != 1 + AND user.deleted = 0 + + <if test = "name != null and name !=''"> + AND user.name like CONCAT('%',#{name},'%') + </if> + + <if test = "phone != null and phone !=''"> + AND user.phone like CONCAT('%',#{phone},'%') + </if> + + <if test = "roleId != null and roleId > 0"> + AND usro.roleId = ${roleId} + </if> + </where> + ORDER BY user.id DESC + <if test="pageCurr != null and pageSize != null"> + LIMIT ${pageCurr}, ${pageSize} + </if> + </select> + + <!--鏍规嵁鐢ㄦ埛缂栧彿鑾峰彇瑙掕壊ID鍒楄〃--> + <select id="getRoleIdsByUserId" resultType="java.util.HashMap"> + SELECT + roleId + FROM ba_user_role + WHERE userId = ${userId} + </select> + + <select id="getRoleNamesByUserId" resultType="java.util.HashMap"> + SELECT + ro.name AS roleName + FROM ba_user_role usro + INNER JOIN ba_role ro ON usro.roleId = ro.id + WHERE userId = ${userId} + + </select> </mapper> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml new file mode 100644 index 0000000..52dc477 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml @@ -0,0 +1,221 @@ +<?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.dy.pipIrrGlobal.daoSe.SeCardOperateMapper"> + <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoSe.SeCardOperate"> + <!--@mbg.generated--> + <!--@Table se_card_operate--> + <id column="id" jdbcType="BIGINT" property="id" /> + <result column="card_id" jdbcType="BIGINT" property="cardId" /> + <result column="client_id" jdbcType="BIGINT" property="clientId" /> + <result column="money" jdbcType="FLOAT" property="money" /> + <result column="system_balance" jdbcType="FLOAT" property="systemBalance" /> + <result column="trade_amount" jdbcType="FLOAT" property="tradeAmount" /> + <result column="price" jdbcType="FLOAT" property="price" /> + <result column="card_cost" jdbcType="INTEGER" property="cardCost" /> + <result column="gift" jdbcType="FLOAT" property="gift" /> + <result column="no_trade_amount" jdbcType="FLOAT" property="noTradeAmount" /> + <result column="operate_type_id" jdbcType="BIGINT" property="operateType" /> + <result column="payment_id" jdbcType="BIGINT" property="paymentId" /> + <result column="remarks" jdbcType="VARCHAR" property="remarks" /> + <result column="operator" jdbcType="BIGINT" property="operator" /> + <result column="operate_dt" jdbcType="TIMESTAMP" property="operateDt" /> + </resultMap> + <sql id="Base_Column_List"> + <!--@mbg.generated--> + id, card_id, client_id, money, system_balance, trade_amount, price, card_cost, gift, + no_trade_amount, operate_type_id, payment_id, remarks, `operator`, operate_dt + </sql> + <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> + <!--@mbg.generated--> + select + <include refid="Base_Column_List" /> + from se_card_operate + where id = #{id,jdbcType=BIGINT} + </select> + <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> + <!--@mbg.generated--> + delete from se_card_operate + where id = #{id,jdbcType=BIGINT} + </delete> + <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSe.SeCardOperate"> + <!--@mbg.generated--> + insert into se_card_operate (id, card_id, client_id, + money, system_balance, trade_amount, + price, card_cost, gift, + no_trade_amount, operate_type, payment_id, + remarks, `operator`, operate_dt + ) + values (#{id,jdbcType=BIGINT}, #{cardId,jdbcType=BIGINT}, #{clientId,jdbcType=BIGINT}, + #{money,jdbcType=FLOAT}, #{systemBalance,jdbcType=FLOAT}, #{tradeAmount,jdbcType=FLOAT}, + #{price,jdbcType=FLOAT}, #{cardCost,jdbcType=INTEGER}, #{gift,jdbcType=FLOAT}, + #{noTradeAmount,jdbcType=FLOAT}, #{operateType,jdbcType=BIGINT}, #{paymentId,jdbcType=BIGINT}, + #{remarks,jdbcType=VARCHAR}, #{operator,jdbcType=BIGINT}, #{operateDt,jdbcType=TIMESTAMP} + ) + </insert> + <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeCardOperate"> + <!--@mbg.generated--> + insert into se_card_operate + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="id != null"> + id, + </if> + <if test="cardId != null"> + card_id, + </if> + <if test="clientId != null"> + client_id, + </if> + <if test="money != null"> + money, + </if> + <if test="systemBalance != null"> + system_balance, + </if> + <if test="tradeAmount != null"> + trade_amount, + </if> + <if test="price != null"> + price, + </if> + <if test="cardCost != null"> + card_cost, + </if> + <if test="gift != null"> + gift, + </if> + <if test="noTradeAmount != null"> + no_trade_amount, + </if> + <if test="operateType != null"> + operate_type_id, + </if> + <if test="paymentId != null"> + payment_id, + </if> + <if test="remarks != null"> + remarks, + </if> + <if test="operator != null"> + `operator`, + </if> + <if test="operateDt != null"> + operate_dt, + </if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="id != null"> + #{id,jdbcType=BIGINT}, + </if> + <if test="cardId != null"> + #{cardId,jdbcType=BIGINT}, + </if> + <if test="clientId != null"> + #{clientId,jdbcType=BIGINT}, + </if> + <if test="money != null"> + #{money,jdbcType=FLOAT}, + </if> + <if test="systemBalance != null"> + #{systemBalance,jdbcType=FLOAT}, + </if> + <if test="tradeAmount != null"> + #{tradeAmount,jdbcType=FLOAT}, + </if> + <if test="price != null"> + #{price,jdbcType=FLOAT}, + </if> + <if test="cardCost != null"> + #{cardCost,jdbcType=INTEGER}, + </if> + <if test="gift != null"> + #{gift,jdbcType=FLOAT}, + </if> + <if test="noTradeAmount != null"> + #{noTradeAmount,jdbcType=FLOAT}, + </if> + <if test="operateType != null"> + #{operateType,jdbcType=BIGINT}, + </if> + <if test="paymentId != null"> + #{paymentId,jdbcType=BIGINT}, + </if> + <if test="remarks != null"> + #{remarks,jdbcType=VARCHAR}, + </if> + <if test="operator != null"> + #{operator,jdbcType=BIGINT}, + </if> + <if test="operateDt != null"> + #{operateDt,jdbcType=TIMESTAMP}, + </if> + </trim> + </insert> + <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeCardOperate"> + <!--@mbg.generated--> + update se_card_operate + <set> + <if test="cardId != null"> + card_id = #{cardId,jdbcType=BIGINT}, + </if> + <if test="clientId != null"> + client_id = #{clientId,jdbcType=BIGINT}, + </if> + <if test="money != null"> + money = #{money,jdbcType=FLOAT}, + </if> + <if test="systemBalance != null"> + system_balance = #{systemBalance,jdbcType=FLOAT}, + </if> + <if test="tradeAmount != null"> + trade_amount = #{tradeAmount,jdbcType=FLOAT}, + </if> + <if test="price != null"> + price = #{price,jdbcType=FLOAT}, + </if> + <if test="cardCost != null"> + card_cost = #{cardCost,jdbcType=INTEGER}, + </if> + <if test="gift != null"> + gift = #{gift,jdbcType=FLOAT}, + </if> + <if test="noTradeAmount != null"> + no_trade_amount = #{noTradeAmount,jdbcType=FLOAT}, + </if> + <if test="operateType != null"> + operate_type_id = #{operateType,jdbcType=BIGINT}, + </if> + <if test="paymentId != null"> + payment_id = #{paymentId,jdbcType=BIGINT}, + </if> + <if test="remarks != null"> + remarks = #{remarks,jdbcType=VARCHAR}, + </if> + <if test="operator != null"> + `operator` = #{operator,jdbcType=BIGINT}, + </if> + <if test="operateDt != null"> + operate_dt = #{operateDt,jdbcType=TIMESTAMP}, + </if> + </set> + where id = #{id,jdbcType=BIGINT} + </update> + <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoSe.SeCardOperate"> + <!--@mbg.generated--> + update se_card_operate + set card_id = #{cardId,jdbcType=BIGINT}, + client_id = #{clientId,jdbcType=BIGINT}, + money = #{money,jdbcType=FLOAT}, + system_balance = #{systemBalance,jdbcType=FLOAT}, + trade_amount = #{tradeAmount,jdbcType=FLOAT}, + price = #{price,jdbcType=FLOAT}, + card_cost = #{cardCost,jdbcType=INTEGER}, + gift = #{gift,jdbcType=FLOAT}, + no_trade_amount = #{noTradeAmount,jdbcType=FLOAT}, + operate_type_id = #{operateType,jdbcType=BIGINT}, + payment_id = #{paymentId,jdbcType=BIGINT}, + remarks = #{remarks,jdbcType=VARCHAR}, + `operator` = #{operator,jdbcType=BIGINT}, + operate_dt = #{operateDt,jdbcType=TIMESTAMP} + where id = #{id,jdbcType=BIGINT} + </update> +</mapper> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserCtrl.java index 3aa4298..86e6440 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserCtrl.java @@ -87,11 +87,11 @@ schema = @Schema(implementation = BaUser.class))} ) }) - @PostMapping(path = "some", consumes = MediaType.APPLICATION_JSON_VALUE) + @GetMapping(path = "some") @SsoAop() - public BaseResponse<QueryResultVo<List<BaUser>>> some(@RequestBody @Valid QueryVo vo) { + public BaseResponse<QueryResultVo<List<VoUserInfo>>> some(QueryVo vo) { try { - QueryResultVo<List<BaUser>> res = this.sv.selectSome(vo); + QueryResultVo<List<VoUserInfo>> res = this.sv.selectSome(vo); return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("鏌ヨ鐢ㄦ埛寮傚父", e); diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserSv.java index 77591e9..4708b90 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserSv.java @@ -54,23 +54,68 @@ } /** - * 寰楀埌涓�涓敤鎴� - * - * @param vo 鏌ヨ鏉′欢鍊煎璞� - * @return 鐢ㄦ埛瀹炰綋 + * 鑾峰彇鐢ㄦ埛鍒楄〃 */ - @SuppressWarnings("unchecked") - public QueryResultVo<List<BaUser>> selectSome(QueryVo vo) { - Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(vo); - Long itemTotal = this.dao.selectTotal(params); + public QueryResultVo<List<VoUserInfo>> selectSome(QueryVo queryVo) { + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); - QueryResultVo<List<BaUser>> rsVo = new QueryResultVo<>(); - rsVo.pageSize = vo.pageSize; - rsVo.pageCurr = vo.pageCurr; + Long itemTotal = this.dao.getRecordCount(params); + + QueryResultVo<List<VoUserInfo>> rsVo = new QueryResultVo<>() ; + + Integer pageCurr = 0; + Integer pageSize = 10000; + rsVo.pageCurr = 1; + rsVo.pageSize = 10000; + if(queryVo.pageSize != null && queryVo.pageCurr != null) { + rsVo.pageSize = queryVo.pageSize ; + rsVo.pageCurr = queryVo.pageCurr; + pageSize = queryVo.pageSize ; + pageCurr = (Integer.parseInt(params.get("pageCurr").toString()) - 1) * Integer.parseInt(params.get("pageSize").toString()); + } + params.put("pageCurr", pageCurr); + params.put("pageSize", pageSize); + rsVo.calculateAndSet(itemTotal, params); - rsVo.obj = this.dao.selectSome(params); - return rsVo; + /** + * 鑾峰彇鐢ㄦ埛鍒楄〃锛屽彇鐢ㄦ埛ID + * 鏍规嵁鐢ㄦ埛ID鑾峰彇roleId鍒楄〃锛屽苟娣诲姞鍒拌繑鍥炲璞′腑 + * 鏍规嵁鐢ㄦ埛ID鑾峰彇roleName鍒楄〃锛屽苟娣诲姞鍒拌繑鍥炲璞′腑 + */ + List<VoUserInfo> list_users = Optional.ofNullable(this.dao.getUsers(params)).orElse(new ArrayList<>()); + if(list_users.size() > 0) { + for(int i = 0; i < list_users.size(); i++) { + VoUserInfo voUserInfo = list_users.get(i); + Long userId = voUserInfo.getUserId(); + + JSONArray array_roleIds = new JSONArray(); + List<Map<String, Object>> list_roleIds = Optional.ofNullable(this.dao.getRoleIdsByUserId(userId)).orElse(new ArrayList<>()); + for (int j = 0; j < list_roleIds.size(); j++) { + Map map_roleId = list_roleIds.get(j); + if(map_roleId != null) { + array_roleIds.add(map_roleId.get("roleId").toString()); + } + + } + List<Map<String, Object>> list_roleId = (List<Map<String, Object>>) JSON.parse(array_roleIds.toJSONString()); + + JSONArray array_roleNames = new JSONArray(); + List<Map<String, Object>> list_roleNames = Optional.ofNullable(this.dao.getRoleNamesByUserId(userId)).orElse(new ArrayList<>()); + for (int j = 0; j < list_roleNames.size(); j++) { + Map map_roleName = list_roleNames.get(j); + if(map_roleName != null) { + array_roleNames.add(map_roleName.get("roleName").toString()); + } + } + List<Map<String, Object>> list_roleName = (List<Map<String, Object>>) JSON.parse(array_roleNames.toJSONString()); + + voUserInfo.setRoleIds(list_roleId); + voUserInfo.setRoleNames(list_roleName); + } + } + rsVo.obj = list_users; + return rsVo ; } /** @@ -182,7 +227,7 @@ JSONArray array_permission = new JSONArray(); Map map = Optional.ofNullable(dao.getUserInfoById(userId)).orElse(new HashMap()); if(map.size() > 0) { - voUserInfo.setUserId(String.valueOf(userId)); + voUserInfo.setUserId(userId); voUserInfo.setUserName(map.get("userName").toString()); } @@ -216,7 +261,6 @@ voUserInfo.setRoleIds(list_roleIds); voUserInfo.setRoleNames(list_roleNames); voUserInfo.setPermissions(array_permission); - return voUserInfo; } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/ActiveCardCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/ActiveCardCtrl.java index 745991c..e31783a 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/ActiveCardCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/ActiveCardCtrl.java @@ -9,6 +9,7 @@ import com.dy.pipIrrGlobal.pojoSe.SeClientCard; import com.dy.pipIrrGlobal.util.Constant; import com.dy.pipIrrGlobal.voSe.VoActiveCard; +import com.dy.pipIrrSell.cardOperate.enums.OperateTypeENUM; import com.dy.pipIrrSell.clientCard.CardStateENUM; import com.dy.pipIrrSell.clientCard.ClientCardSv; import com.dy.pipIrrSell.clientCard.LastOperateENUM; @@ -262,7 +263,7 @@ //String clientNum = ""; Long clientId = 0L; Integer cardCost = po.getCardCost(); - Double reissueAmount = po.getReissueAmount(); + Float reissueAmount = po.getReissueAmount(); Long paymentId = po.getPaymentId(); String remarks = po.getRemarks(); Long operator = po.getOperator(); @@ -304,7 +305,7 @@ activeCard.setCardcost(cardCost); activeCard.setPaymentid(paymentId); activeCard.setReissueamount(reissueAmount); - activeCard.setOperatetype(OperateTypeENUM.REPLACE.getCode()); + activeCard.setOperatetype(OperateTypeENUM.REISSUE.getCode()); activeCard.setRemarks(remarks); activeCard.setOperator(operator); activeCard.setOperatedt(replaceTime); diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/DtoActiveCard.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/DtoActiveCard.java index b8b4e05..ab3451b 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/DtoActiveCard.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/DtoActiveCard.java @@ -65,7 +65,7 @@ */ @Schema(description = "琛ュ崱閲戦", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @Min(value = 0, message="琛ュ崱閲戦涓嶈兘灏忎簬0") - private Double reissueAmount; + private Float reissueAmount; /** * 鏀粯鏂瑰紡缂栧彿 diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/OperateTypeENUM.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/OperateTypeENUM.java deleted file mode 100644 index a4012fb..0000000 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/OperateTypeENUM.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.dy.pipIrrSell.activeCard; - -import lombok.AllArgsConstructor; -import lombok.Getter; - -/** - * @author ZhuBaoMin - * @date 2023/12/8 10:56 - * @LastEditTime 2023/12/8 10:56 - * @Description 寮�鍗�/琛ュ崱绫诲瀷鏋氫妇 - */ - -@Getter -@AllArgsConstructor -public enum OperateTypeENUM { - ACTIVE((byte)1, "寮�鍗�"), - REPLACE((byte)2, "琛ュ崱"); - - private final Byte code; - private final String message; -} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java new file mode 100644 index 0000000..592df3a --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java @@ -0,0 +1,550 @@ +package com.dy.pipIrrSell.cardOperate; + +import com.dy.common.aop.SsoAop; +import com.dy.common.webUtil.BaseResponse; +import com.dy.common.webUtil.BaseResponseUtils; +import com.dy.common.webUtil.ResultCodeMsg; +import com.dy.pipIrrGlobal.pojoSe.SeCardOperate; +import com.dy.pipIrrGlobal.pojoSe.SeClientCard; +import com.dy.pipIrrGlobal.util.Constant; +import com.dy.pipIrrSell.cardOperate.converter.RechargeDtoMapper; +import com.dy.pipIrrSell.cardOperate.dto.*; +import com.dy.pipIrrSell.cardOperate.enums.OperateTypeENUM; +import com.dy.pipIrrSell.clientCard.CardStateENUM; +import com.dy.pipIrrSell.clientCard.ClientCardSv; +import com.dy.pipIrrSell.clientCard.LastOperateENUM; +import com.dy.pipIrrSell.result.SellResultCode; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +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.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 java.time.format.DateTimeFormatter; +import java.util.*; + +/** + * @author ZhuBaoMin + * @date 2024-01-18 19:36 + * @LastEditTime 2024-01-18 19:36 + * @Description + */ + +@Slf4j +@Tag(name = "姘村崱鎿嶄綔绠$悊", description = "姘村崱鍚勭鎿嶄綔") +@RestController +@RequestMapping(path="card") +@RequiredArgsConstructor +public class CardOperateCtrl { + private final CardOperateSv cardOperateSv; + private final ClientCardSv clientCardSv; + + /** + * 寮�鍗� + * @param po 寮�鍗′紶鍏ュ璞� + * @param bindingResult + * @return 姘村崱缂栧彿 + */ + @Operation(summary = "寮�鍗�", description = "鏂板紑鍐滄埛鍗�") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = Boolean.class))} + ) + }) + @PostMapping(path = "active", consumes = MediaType.APPLICATION_JSON_VALUE) + @Transactional(rollbackFor = Exception.class) + @SsoAop() + public BaseResponse<Boolean> add_active(@RequestBody @Valid DtoActiveCard po, BindingResult bindingResult){ + if(bindingResult != null && bindingResult.hasErrors()){ + return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + + // 鑾峰彇5绾ц鏀垮尯鍒掍覆areaCode + String areaCode = String.valueOf(cardOperateSv.getAreaCodeByNum(po.getClientNum())); + + /** + * 鏍规嵁琛屾斂鍖哄垝涓诧紙areaCode锛夊湪姘村崱琛ㄤ腑閽堝姘村崱缂栧彿锛坈ardNum锛夎繘琛屾ā绯婃煡璇� + * 濡傛灉4浣嶉『搴忓彿宸茬粡杈惧埌鏈�澶у�硷紝鎻愮ず鐢ㄦ埛鑱旂郴绯荤粺绠$悊鍛� + * 濡傛灉4浣嶉『搴忓彿鏈揪鍒版渶澶у�硷紝鍒欏姞1 + * cardNum涓烘柊鐨勫崱鍙� + */ + String cardNum = Optional.ofNullable(cardOperateSv.getCardNumOfMax(areaCode)).orElse(""); + if(cardNum != null && cardNum.trim().length() > 0) { + Integer number = Integer.parseInt(cardNum.substring(12)); + number = number + 1; + if(number > 9999) { + return BaseResponseUtils.buildFail(SellResultCode.CARD_NUMBER_OVERRUN.getMessage()); + } + cardNum = cardNum.substring(0, 12) + String.format("%04d", number); + } else { + cardNum = areaCode + "0001"; + } + + /** + * cardAddr 姘村崱鍦板潃锛堜粎浠呭啓鍏ワ紝鏃犱笟鍔★級 + * clientNum 鍐滄埛缂栧彿 + * cardCost 鍗$墖璐圭敤 + * amount 鍏呭�奸噾棰� + * reissueAmount 琛ュ崱閲戦锛岃ˉ鍗℃椂浣跨敤 + * paymentId 鏀粯鏂瑰紡缂栧彿 + * remarks 澶囨敞 + * operator 鎿嶄綔浜虹紪鍙� + * activeTime 寮�鍗℃椂闂� + */ + String cardAddr = po.getCardAddr(); + String clientNum = po.getClientNum(); + Integer cardCost = po.getCardCost(); + Float amount = po.getAmount(); + Long paymentId = po.getPaymentId(); + String remarks = po.getRemarks(); + Long operator = po.getOperator(); + Date activeTime = new Date(); + + /** + * 鏍规嵁鍐滄埛缂栧彿鑾峰彇鍐滄埛ID + */ + Long clientId = cardOperateSv.getClientIdByNum(clientNum); + + /** + * 娣诲姞鍐滄埛鍗¤褰� + */ + SeClientCard seClientCard = new SeClientCard(); + seClientCard.setCardaddr(cardAddr); + seClientCard.setCardnum(cardNum); + seClientCard.setClientid(clientId); + seClientCard.setMoney(0f); + seClientCard.setState(CardStateENUM.NORMAL.getCode()); + 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.setCardCost(cardCost); + seCardOperate.setPaymentId(paymentId); + seCardOperate.setOperateType(OperateTypeENUM.ACTIVE.getCode()); + seCardOperate.setRemarks(remarks); + seCardOperate.setOperator(operator); + seCardOperate.setOperateDt(activeTime); + Long rec = Optional.ofNullable(cardOperateSv.add(seCardOperate)).orElse(0L); + if(rec == 0) { + return BaseResponseUtils.buildFail(SellResultCode.ACTIVE_FAIL_WRITE_ACTIVE_CARD_ERROR.getMessage()); + } + + /** + * 濡傛灉鎿嶄綔浜哄憳寮�鍗℃椂杈撳叆浜嗗厖鍊奸噾棰濓紝鍒欏紑鍗″悗璋冪敤鍏呭�煎姛鑳� + */ + po.setCardNum(cardNum); + if(amount != null && amount > 0) { + po.setClientId(clientId); + DtoRecharge dtoRecharge = RechargeDtoMapper.INSTANCT.po2vo(po); + dtoRecharge.setMoney(0f); + dtoRecharge.setGift(0f); + dtoRecharge.setPrice(0f); + BaseResponse<Boolean> job = cardOperateSv.addRecharge(dtoRecharge); + if(!job.getCode().equals("0001")) { + return BaseResponseUtils.buildFail(SellResultCode.ACTIVE_FAIL_RECHARGE_EXCEPTION.getMessage()); + } + } + + Map map = new HashMap(); + map.put("projectCode", Constant.projectCode_ym); + map.put("cardNum", cardNum); + return BaseResponseUtils.buildSuccess(map) ; + } + + /** + * 琛ュ崱 + * @param po + * @param bindingResult + * @return + */ + @Operation(summary = "琛ュ崱", description = "琛ュ崱") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = Boolean.class))} + ) + }) + @PostMapping(path = "reissue", consumes = MediaType.APPLICATION_JSON_VALUE) + @Transactional(rollbackFor = Exception.class) + @SsoAop() + public BaseResponse<Boolean> add_reissue(@RequestBody @Valid com.dy.pipIrrSell.activeCard.DtoActiveCard po, BindingResult bindingResult){ + if(bindingResult != null && bindingResult.hasErrors()){ + return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + + /** + * cardId 姘村崱缂栧彿锛堥潪浼犲叆鍙傛暟锛岀敱cardNum鍙嶆煡锛屾洿鏂版按鍗¤〃鐢級 + * cardNum 姘村崱缂栧彿 + * clientId 鍐滄埛ID锛堥潪浼犲叆鍙傛暟锛岀敱cardNum鍙嶆煡锛屾坊鍔犺ˉ鍗′娇鐢級 + * cardCost 鍗$墖璐圭敤 + * reissueAmount 琛ュ崱閲戦锛岃ˉ鍗℃椂浣跨敤 + * paymentId 鏀粯鏂瑰紡缂栧彿 + * remarks 澶囨敞 + * operator 鎿嶄綔浜虹紪鍙� + * activeTime 琛ュ崱鏃堕棿 + */ + Long cardId = 0L; + Long clientId = 0L; + String cardNum = po.getCardNum(); + Integer cardCost = po.getCardCost(); + Float reissueAmount = po.getReissueAmount(); + Long paymentId = po.getPaymentId(); + String remarks = po.getRemarks(); + Long operator = po.getOperator(); + Date reissueTime = new Date(); + + /** + * 渚濇嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿強鍐滄埛缂栧彿 + */ + Map map = Optional.ofNullable(clientCardSv.getCardIdAndClientNum(cardNum)).orElse(new HashMap()); + if(map == null || map.size() <= 0) { + return BaseResponseUtils.buildFail(SellResultCode.CARD_NUMBER_ERROR.getMessage()); + } + cardId = Long.parseLong(map.get("cardId").toString()); + clientId = Long.parseLong(map.get("clientId").toString()); + + /** + * 淇敼鍐滄埛鍗′俊鎭細 + * 琛ュ崱鏃堕棿 + * 鏈�鍚庢搷浣滅被鍨�-2 + */ + SeClientCard seClientCard = new SeClientCard(); + seClientCard.setId(cardId); + seClientCard.setReplacedt(reissueTime); + seClientCard.setLastoper(LastOperateENUM.REPLACE.getCode()); + Integer rec_updateClientCard = Optional.ofNullable(clientCardSv.UpdateClientCard(seClientCard)).orElse(0); + if(rec_updateClientCard == 0) { + return BaseResponseUtils.buildFail(SellResultCode.REPLACE_FAIL_WRITE_CLIENT_CARD_ERROR.getMessage()); + } + + /** + * 娣诲姞琛ュ崱璁板綍 + */ + SeCardOperate seCardOperate = new SeCardOperate(); + seCardOperate.setCardId(cardId); + seCardOperate.setClientId(clientId); + seCardOperate.setCardCost(cardCost); + seCardOperate.setPaymentId(paymentId); + seCardOperate.setNoTradeAmount(reissueAmount); + seCardOperate.setOperateType(OperateTypeENUM.REISSUE.getCode()); + seCardOperate.setRemarks(remarks); + seCardOperate.setOperator(operator); + seCardOperate.setOperateDt(reissueTime); + Long rec = Optional.ofNullable(cardOperateSv.add(seCardOperate)).orElse(0L); + if(rec == 0) { + return BaseResponseUtils.buildFail(SellResultCode.REPLACE_FAIL_WRITE_RECHARGE_ERROR.getMessage()); + } + + return BaseResponseUtils.buildSuccess(true) ; + } + + /** + * 鍏呭�� + * @param po 鍏呭�间紶杈撳璞� + * @param bindingResult + * @return + */ + @Operation(summary = "鍏呭��", description = "鍏呭��") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = Boolean.class))} + ) + }) + @PostMapping(path = "recharge", consumes = MediaType.APPLICATION_JSON_VALUE) + @Transactional(rollbackFor = Exception.class) + @SsoAop() + public BaseResponse<Boolean> add(@RequestBody @Valid DtoRecharge po, BindingResult bindingResult){ + if(bindingResult != null && bindingResult.hasErrors()){ + return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + return cardOperateSv.addRecharge(po); + } + + /** + * 閿�鍗� + * @param po + * @param bindingResult + * @return + */ + @Operation(summary = "娣诲姞娉ㄩ攢璁板綍", description = "娣诲姞娉ㄩ攢璁板綍") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = Boolean.class))} + ) + }) + @PostMapping(path = "cancel", consumes = MediaType.APPLICATION_JSON_VALUE) + @Transactional(rollbackFor = Exception.class) + @SsoAop() + public BaseResponse<Boolean> add(@RequestBody @Valid DtoCancel po, BindingResult bindingResult){ + DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + if(bindingResult != null && bindingResult.hasErrors()){ + return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + + /** + * cardId 姘村崱缂栧彿锛堥潪浼犲叆鍙傛暟锛岀敱cardNum鍙嶆煡锛屼慨鏀瑰啘鎴峰崱浣跨敤锛� + * clientId 鍐滄埛缂栧彿锛堥潪浼犲叆鍙傛暟锛岀敱cardNum鍙嶆煡锛� + * cardNum 姘村崱缂栧彿 + * refund 閫�娆鹃噾棰� + * refundType 閫�娆炬柟寮� + * remarks 澶囨敞 + * operator 鎿嶄綔浜虹紪鍙� + * cancelTime 娉ㄩ攢鏃堕棿 + */ + Long cardId = 0L; + Long clientId = 0L; + String cardNum = po.getCardNum(); + Float refund = po.getRefund(); + Byte refundType = po.getRefundType(); + String remarks = po.getRemarks(); + Long operator = po.getOperator(); + Date cancelTime = new Date(); + + /** + * 渚濇嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿強鍐滄埛缂栧彿 + */ + Map map = Optional.ofNullable(clientCardSv.getCardIdAndClientNum(cardNum)).orElse(new HashMap()); + if(map == null || map.size() <= 0) { + return BaseResponseUtils.buildFail(SellResultCode.CARD_NUMBER_MISTAKE.getMessage()); + } + cardId = Long.parseLong(map.get("cardId").toString()); + clientId = Long.parseLong(map.get("clientId").toString()); + + /** + * 淇敼鍐滄埛鍗′俊鎭細 + * 娉ㄩ攢鏃堕棿 + * 鏈�鍚庢搷浣滅被鍨�-4 + */ + SeClientCard seClientCard = new SeClientCard(); + seClientCard.setId(cardId); + seClientCard.setCanceldt(cancelTime); + seClientCard.setMoney(0f); + seClientCard.setState(CardStateENUM.CANCELLED.getCode()); + seClientCard.setLastoper(LastOperateENUM.CANCEL.getCode()); + Integer rec_updateClientCard = Optional.ofNullable(clientCardSv.UpdateClientCard(seClientCard)).orElse(0); + if(rec_updateClientCard == 0) { + return BaseResponseUtils.buildFail(SellResultCode.CANCEL_FAIL_WRITE_CLIENT_CARD_ERROR.getMessage()); + } + + /** + * 娣诲姞娉ㄩ攢璁板綍 + */ + SeCardOperate seCardOperate = new SeCardOperate(); + seCardOperate.setCardId(cardId); + seCardOperate.setClientId(clientId); + seCardOperate.setTradeAmount(-refund); + seCardOperate.setOperateType(OperateTypeENUM.CANCEL.getCode()); + seCardOperate.setRemarks(remarks); + seCardOperate.setOperator(operator); + seCardOperate.setOperateDt(cancelTime); + + Long rec = Optional.ofNullable(cardOperateSv.add(seCardOperate)).orElse(0L); + if(rec == 0) { + return BaseResponseUtils.buildFail(SellResultCode.CANCEL_FAIL_WRITE_CANCELL_ERROR.getMessage()); + } + + return BaseResponseUtils.buildSuccess(true) ; + } + + /** + * 鎸傚け + * @param po + * @param bindingResult + * @return + */ + @Operation(summary = "娣诲姞鎸傚け璁板綍", description = "娣诲姞鎸傚け璁板綍") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = Boolean.class))} + ) + }) + @PostMapping(path = "loss", consumes = MediaType.APPLICATION_JSON_VALUE) + @Transactional(rollbackFor = Exception.class) + @SsoAop() + public BaseResponse<Boolean> add(@RequestBody @Valid DtoLoss po, BindingResult bindingResult){ + if(bindingResult != null && bindingResult.hasErrors()){ + return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + + /** + * cardId 姘村崱缂栧彿锛堥潪浼犲叆鍙傛暟锛岀敱cardNum鍙嶆煡锛� + * clientId 鍐滄埛缂栧彿锛堥潪浼犲叆鍙傛暟锛岀敱cardNum鍙嶆煡锛� + * cardNum 姘村崱缂栧彿 + * money 浣欓 + * refund 閫�娆鹃噾棰� + * remarks 澶囨敞 + * operator 鎿嶄綔浜虹紪鍙� + * lossTime 鎸傚け鏃堕棿 + */ + Long cardId = 0L; + Long clientId = 0L; + String cardNum = po.getCardNum(); + Float money = po.getMoney(); + Float refund = po.getRefund(); + String remarks = po.getRemarks(); + Long operator = po.getOperator(); + Date lossTime = new Date(); + + /** + * 渚濇嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿強鍐滄埛缂栧彿 + */ + Map map = Optional.ofNullable(clientCardSv.getCardIdAndClientNum(cardNum)).orElse(new HashMap()); + if(map == null || map.size() <= 0) { + return BaseResponseUtils.buildFail(SellResultCode.CARD_NUMBER_MISTAKE.getMessage()); + } + cardId = Long.parseLong(map.get("cardId").toString()); + clientId = Long.parseLong(map.get("clientId").toString()); + + /** + * 淇敼鍐滄埛鍗′俊鎭細 + * 鎸傚け鏃堕棿 + * 鏈�鍚庢搷浣滅被鍨�-4 + */ + SeClientCard seClientCard = new SeClientCard(); + seClientCard.setId(cardId); + seClientCard.setMoney(money); + seClientCard.setLossdtdt(lossTime); + seClientCard.setState(CardStateENUM.LOSS.getCode()); + seClientCard.setLastoper(LastOperateENUM.LOSS.getCode()); + Integer rec_updateClientCard = Optional.ofNullable(clientCardSv.UpdateClientCard(seClientCard)).orElse(0); + if(rec_updateClientCard == 0) { + return BaseResponseUtils.buildFail(SellResultCode.LOSS_FAIL_WRITE_CLIENT_CARD_ERROR.getMessage()); + } + + /** + * 娣诲姞鎸傚け璁板綍 + */ + SeCardOperate seCardOperate = new SeCardOperate(); + seCardOperate.setCardId(cardId); + seCardOperate.setClientId(clientId); + seCardOperate.setMoney(money); + seCardOperate.setTradeAmount(-refund); + seCardOperate.setOperateType(OperateTypeENUM.LOSS.getCode()); + seCardOperate.setRemarks(remarks); + seCardOperate.setOperator(operator); + seCardOperate.setOperateDt(lossTime); + Long rec = Optional.ofNullable(cardOperateSv.add(seCardOperate)).orElse(0L); + if(rec == 0) { + return BaseResponseUtils.buildFail(SellResultCode.LOSS_FAIL_WRITE_LOSS_ERROR.getMessage()); + } + + return BaseResponseUtils.buildSuccess(true) ; + } + + @Operation(summary = "娣诲姞鍐叉璁板綍", description = "娣诲姞鍐叉璁板綍") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = Boolean.class))} + ) + }) + @PostMapping(path = "reversal", consumes = MediaType.APPLICATION_JSON_VALUE) + @Transactional(rollbackFor = Exception.class) + @SsoAop() + public BaseResponse<Boolean> add(@RequestBody @Valid DtoReversal po, BindingResult bindingResult){ + if(bindingResult != null && bindingResult.hasErrors()){ + return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + + /** + * cardId 姘村崱缂栧彿锛堥潪浼犲叆鍙傛暟锛岀敱cardNum鍙嶆煡锛屼慨鏀瑰啘鎴峰崱浣跨敤锛� + * clientId 鍐滄埛缂栧彿锛堥潪浼犲叆鍙傛暟锛岀敱cardNum鍙嶆煡锛� + * cardNum 姘村崱缂栧彿 + * cardBalance 鍗$墖浣欓 + * systemBalance 绯荤粺浣欓 + * remarks 澶囨敞 + * operator 鎿嶄綔浜虹紪鍙� + * reversalTime 鍐叉鏃堕棿 + */ + Long cardId = 0L; + Long clientId = 0L; + String cardNum = po.getCardNum(); + Float cardBalance = po.getCardBalance(); + Float systemBalance = po.getSystemBalance(); + String remarks = po.getRemarks(); + Long operator = po.getOperator(); + Date reversalTime = new Date(); + + /** + * 渚濇嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿強鍐滄埛缂栧彿 + */ + Map map = Optional.ofNullable(clientCardSv.getCardIdAndClientNum(cardNum)).orElse(new HashMap()); + if(map == null || map.size() <= 0) { + return BaseResponseUtils.buildFail(SellResultCode.CARD_NUMBER_MISTAKE.getMessage()); + } + cardId = Long.parseLong(map.get("cardId").toString()); + clientId = Long.parseLong(map.get("clientId").toString()); + + /** + * 淇敼鍐滄埛鍗′俊鎭細 + * 鎸傚け鏃堕棿 + * 鏈�鍚庢搷浣滅被鍨�-4 + */ + SeClientCard seClientCard = new SeClientCard(); + seClientCard.setId(cardId); + seClientCard.setReversaldt(reversalTime); + seClientCard.setMoney(cardBalance); + seClientCard.setLastoper(LastOperateENUM.REVERSAL.getCode()); + Integer rec_updateClientCard = Optional.ofNullable(clientCardSv.UpdateClientCard(seClientCard)).orElse(0); + if(rec_updateClientCard == 0) { + return BaseResponseUtils.buildFail(SellResultCode.RECHARGE_FAIL_WRITE_CLIENT_CARD_ERROR.getMessage()); + } + + /** + * 娣诲姞鍐叉璁板綍 + */ + SeCardOperate seCardOperate = new SeCardOperate(); + seCardOperate.setCardId(cardId); + seCardOperate.setClientId(clientId); + seCardOperate.setMoney(cardBalance); + seCardOperate.setSystemBalance(systemBalance); + seCardOperate.setOperateType(OperateTypeENUM.REVERSAL.getCode()); + seCardOperate.setRemarks(remarks); + seCardOperate.setOperator(operator); + seCardOperate.setOperateDt(reversalTime); + Long rec = Optional.ofNullable(cardOperateSv.add(seCardOperate)).orElse(0L); + if(rec == 0) { + return BaseResponseUtils.buildFail(SellResultCode.REVERSAL_FAIL_WRITE_REVERSAL_ERROR.getMessage()); + } + + return BaseResponseUtils.buildSuccess(true) ; + } + +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java new file mode 100644 index 0000000..2ae05b5 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java @@ -0,0 +1,177 @@ +package com.dy.pipIrrSell.cardOperate; + +import com.dy.common.webUtil.BaseResponse; +import com.dy.common.webUtil.BaseResponseUtils; +import com.dy.pipIrrGlobal.daoSe.SeCardOperateMapper; +import com.dy.pipIrrGlobal.daoSe.SeClientCardMapper; +import com.dy.pipIrrGlobal.daoSe.SeClientMapper; +import com.dy.pipIrrGlobal.pojoSe.SeCardOperate; +import com.dy.pipIrrGlobal.pojoSe.SeClientCard; +import com.dy.pipIrrSell.cardOperate.dto.DtoRecharge; +import com.dy.pipIrrSell.cardOperate.enums.OperateTypeENUM; +import com.dy.pipIrrSell.clientCard.ClientCardSv; +import com.dy.pipIrrSell.clientCard.LastOperateENUM; +import com.dy.pipIrrSell.result.SellResultCode; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; + +/** + * @author ZhuBaoMin + * @date 2024-01-18 19:36 + * @LastEditTime 2024-01-18 19:36 + * @Description + */ + +@Slf4j +@Service +public class CardOperateSv { + @Autowired + private SeCardOperateMapper seCardOperateMapper; + + @Autowired + private SeClientCardMapper seClientCardMapper; + + @Autowired + private SeClientMapper seClientMapper; + + @Autowired + private ClientCardSv clientCardSv; + + + /** + * 娣诲姞寮�鍗¤褰� + * @param po 姘村崱鎿嶄綔瀵硅薄 + * @return 寮�鍗¤褰曚富閿� + */ + public Long activeCard(SeCardOperate po) { + seCardOperateMapper.insert(po); + return po.getId(); + } + + /** + * 鏍规嵁鍐滄埛缂栧彿鑾峰彇5绾ц鏀垮尯鍒掍唬鐮侊紝寮�鍗′娇鐢� + * @param clientNum 鍐滄埛缂栧彿 + * @return 5绾ц鏀垮尯鍒掍唬鐮� + */ + public Long getAreaCodeByNum(String clientNum) { + return seClientMapper.getAreaCodeByNum(clientNum); + } + + /** + * 鏍规嵁琛屾斂鍖哄垝涓叉ā鍧楁煡璇㈡按鍗$紪鍙凤紝寮�鍗′娇鐢� + * @param areaCode + * @return + */ + String getCardNumOfMax(String areaCode) { + return seClientCardMapper.getCardNumOfMax(areaCode); + } + + /** + * 鏍规嵁鍐滄埛缂栧彿鑾峰彇鍐滄埛ID锛屽紑鍗′娇鐢� + * @param clientNum + * @return + */ + public Long getClientIdByNum(String clientNum) { + return seClientMapper.getClientIdByNum(clientNum); + } + + /** + * 娣诲姞姘村崱鎿嶄綔瀵硅薄锛屽悇鎿嶄綔閮戒娇鐢� + * @param po 姘村崱鎿嶄綔瀵硅薄 + * @return 鎿嶄綔璁板綍涓婚敭 + */ + public Long add(SeCardOperate po) { + seCardOperateMapper.insert(po); + return po.getId(); + } + + /** + * 娣诲姞鍏呭�艰褰� + * 淇敼鍐滄埛淇℃伅銆佹坊鍔犲厖鍊艰褰� + * @param po + * @return + */ + public BaseResponse<Boolean> addRecharge(DtoRecharge po){ + /** + * cardId 姘村崱缂栧彿锛堜緷鎹按鍗$紪鍙疯幏鍙栵級 + * clientId 鍐滄埛缂栧彿锛堜緷鎹按鍗$紪鍙疯幏鍙栵級 + * cardNum 姘村崱缂栧彿 + * money 鍗$墖浣欓 + * amount 鍏呭�奸噾棰� + * gift 璧犻�侀噾棰� + * afterRecharge 鍏呭�煎悗浣欓 + * paymentId 鏀粯鏂瑰紡缂栧彿 + * price 姘翠环 + * remarks 澶囨敞 + * operator 鎿嶄綔浜虹紪鍙� + * rechargeTime 鍏呭�兼椂闂� + */ + Long cardId = 0L; + Long clientId = 0L; + String cardNum = po.getCardNum(); + Float money = po.getMoney(); + Float amount = po.getAmount(); + Float gift = po.getGift(); + Float afterRecharge = money + amount + gift; + Long paymentId = po.getPaymentId(); + Float price = po.getPrice(); + String remarks = po.getRemarks(); + Long operator = po.getOperator(); + Date rechargeTime = new Date(); + + /** + * 渚濇嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿強鍐滄埛缂栧彿 + */ + Map map = Optional.ofNullable(clientCardSv.getCardIdAndClientNum(cardNum)).orElse(new HashMap()); + if(map == null || map.size() <= 0) { + return BaseResponseUtils.buildFail(SellResultCode.CARD_NUMBER_MISTAKE.getMessage()); + } + cardId = Long.parseLong(map.get("cardId").toString()); + clientId = Long.parseLong(map.get("clientId").toString()); + + /** + * 淇敼鍐滄埛鍗′俊鎭細 + * 琛ュ崱鏃堕棿 + * 鏈�鍚庢搷浣滅被鍨�-2 + */ + SeClientCard seClientCard = new SeClientCard(); + seClientCard.setId(cardId); + seClientCard.setMoney(afterRecharge); + seClientCard.setRechargedt(rechargeTime); + seClientCard.setLastoper(LastOperateENUM.RECHARGE.getCode ()); + Integer rec_updateClientCard = Optional.ofNullable(clientCardSv.UpdateClientCard(seClientCard)).orElse(0); + if(rec_updateClientCard == 0) { + return BaseResponseUtils.buildFail(SellResultCode.RECHARGE_FAIL_WRITE_CLIENT_CARD_ERROR.getMessage()); + } + + /** + * 娣诲姞鍏呭�艰褰� + */ + SeCardOperate seCardOperate = new SeCardOperate(); + seCardOperate.setCardId(cardId); + seCardOperate.setClientId(clientId); + seCardOperate.setMoney(money); + seCardOperate.setTradeAmount(amount); + seCardOperate.setGift(gift); + seCardOperate.setOperateType(OperateTypeENUM.RECHARGE.getCode()); + seCardOperate.setPaymentId(paymentId); + seCardOperate.setPrice(price); + seCardOperate.setRemarks(remarks); + seCardOperate.setOperator(operator); + seCardOperate.setOperateDt(rechargeTime); + + seCardOperateMapper.insert(seCardOperate); + Long rec = Optional.ofNullable(seCardOperate.getId()).orElse(0L); + if(rec == 0) { + return BaseResponseUtils.buildFail(SellResultCode.REPLACE_FAIL_WRITE_RECHARGE_ERROR.getMessage()); + } + + return BaseResponseUtils.buildSuccess(true) ; + } +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/converter/RechargeDtoMapper.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/converter/RechargeDtoMapper.java new file mode 100644 index 0000000..fb35ed1 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/converter/RechargeDtoMapper.java @@ -0,0 +1,26 @@ +package com.dy.pipIrrSell.cardOperate.converter; + +import com.dy.pipIrrSell.cardOperate.dto.DtoActiveCard; +import com.dy.pipIrrSell.cardOperate.dto.DtoRecharge; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.factory.Mappers; + +/** + * @author ZhuBaoMin + * @date 2024-01-19 9:41 + * @LastEditTime 2024-01-19 9:41 + * @Description + */ + +@Mapper +public interface RechargeDtoMapper { + RechargeDtoMapper INSTANCT = Mappers.getMapper(RechargeDtoMapper.class); + + @Mapping(target = "cardNum", source = "cardNum") + @Mapping(target = "amount", source = "amount") + @Mapping(target = "paymentId", source = "paymentId") + @Mapping(target = "remarks", source = "remarks") + @Mapping(target = "operator", source = "operator") + DtoRecharge po2vo(DtoActiveCard po); +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoActiveCard.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoActiveCard.java new file mode 100644 index 0000000..4f8f7ad --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoActiveCard.java @@ -0,0 +1,89 @@ +package com.dy.pipIrrSell.cardOperate.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Positive; +import lombok.*; + +/** + * @author ZhuBaoMin + * @date 2024-01-18 19:44 + * @LastEditTime 2024-01-18 19:44 + * @Description + */ + +@Data +@Builder +@ToString +@NoArgsConstructor +@AllArgsConstructor +@Schema(name = "寮�鍗�/琛ュ崱浼犲叆瀵硅薄") +public class DtoActiveCard { + public static final long serialVersionUID = 202401181945001L; + /** + * 姘村崱鍦板潃锛屼粎淇濆瓨锛屾棤涓氬姟 + */ + @Schema(description = "姘村崱鍦板潃", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @NotBlank(message = "姘村崱鍦板潃涓嶈兘涓虹┖") + private String cardAddr; + + /** + * 鍐滄埛缂栧彿锛屽紑鍗′娇鐢� + */ + @Schema(description = "鍐滄埛缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + private String clientNum; + + /** + * 鍐滄埛ID锛堜富閿級锛屼笉鏄紑鍗℃帴鍙d紶鍏ワ紝鐢卞啘鎴风紪鍙疯幏寰楋紝淇濆瓨寮�鍗¤褰曞拰鍏呭�艰褰曢兘闇�瑕� + */ + @Schema(description = "鍐滄埛ID", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + private Long clientId; + + /** + * 姘村崱缂栧彿锛屼笉鏄紑鍗℃帴鍙d紶鍏ワ紝鐢卞啘鎴风紪鍙疯幏寰楋紝鍏呭�奸渶瑕� + */ + @Schema(description = "姘村崱缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + private String cardNum; + + /** + * 鍗$墖璐圭敤 + */ + @Schema(description = "鍗$墖璐圭敤", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Positive(message = "鍗$墖璐圭敤蹇呴』涓哄ぇ浜�0鐨勬暣鏁�") + private Integer cardCost; + + /** + * 鍏呭�奸噾棰� + */ + @Schema(description = "鍏呭�奸噾棰�", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Min(value = 0, message="鍏呭�奸噾棰濅笉鑳藉皬浜�0") + private Float amount; + + /** + * 琛ュ崱閲戦 + */ + @Schema(description = "琛ュ崱閲戦", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Min(value = 0, message="琛ュ崱閲戦涓嶈兘灏忎簬0") + private Double reissueAmount; + + /** + * 鏀粯鏂瑰紡缂栧彿 + */ + @Schema(description = "鏀粯鏂瑰紡缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Positive(message = "鏀粯鏂瑰紡缂栧彿蹇呴』涓哄ぇ浜�0鐨勬暣鏁�") + private Long paymentId; + + /** + * 澶囨敞淇℃伅 + */ + @Schema(description = "澶囨敞", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + private String remarks; + + /** + * 鎿嶄綔浜虹紪鍙� + */ + @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Positive(message = "鎿嶄綔浜虹紪鍙峰繀椤讳负澶т簬0鐨勬暣鏁�") + private Long operator; +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoCancel.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoCancel.java new file mode 100644 index 0000000..250b1e1 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoCancel.java @@ -0,0 +1,64 @@ +package com.dy.pipIrrSell.cardOperate.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Positive; +import lombok.*; + +/** + * @author ZhuBaoMin + * @date 2024-01-19 10:08 + * @LastEditTime 2024-01-19 10:08 + * @Description + */ + +@Data +@Builder +@ToString +@NoArgsConstructor +@AllArgsConstructor +@Schema(name = "娉ㄩ攢浼犲叆瀵硅薄") +public class DtoCancel { + public static final long serialVersionUID = 202401191009001L; + + /** + * 姘村崱缂栧彿 + */ + @Schema(description = "姘村崱缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @NotBlank + private String cardNum; + + /** + * 鍐滄埛缂栧彿 + */ + //@Schema(description = "鍐滄埛缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + //private Long clientId; + + /** + * 閫�娆鹃噾棰� + */ + @Schema(description = "閫�娆鹃噾棰�", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Min(value = 0, message="閫�娆鹃噾棰濅笉鑳藉皬浜�0") + private Float refund; + + /** + * 閫�娆炬柟寮�;1-鐜伴噾 + */ + @Schema(description = "閫�娆炬柟寮�", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Positive(message = "閫�娆炬柟寮忓繀椤讳负澶т簬0鐨勬暣鏁�") + private Byte refundType; + + /** + * 澶囨敞淇℃伅 + */ + @Schema(description = "澶囨敞", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + private String remarks; + + /** + * 鎿嶄綔浜虹紪鍙� + */ + @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Positive(message = "鎿嶄綔浜虹紪鍙峰繀椤讳负澶т簬0鐨勬暣鏁�") + private Long operator; +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoLoss.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoLoss.java new file mode 100644 index 0000000..60008b7 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoLoss.java @@ -0,0 +1,58 @@ +package com.dy.pipIrrSell.cardOperate.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Positive; +import lombok.*; + +/** + * @author ZhuBaoMin + * @date 2024-01-19 10:32 + * @LastEditTime 2024-01-19 10:32 + * @Description + */ + +@Data +@Builder +@ToString +@NoArgsConstructor +@AllArgsConstructor +@Schema(name = "鎸傚け浼犲叆瀵硅薄") +public class DtoLoss { + public static final long serialVersionUID = 202401191033001L; + + /** + * 姘村崱缂栧彿 + */ + @Schema(description = "姘村崱缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @NotBlank(message = "姘村崱缂栧彿涓嶈兘涓虹┖") + private String 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 refund; + + /** + * 澶囨敞淇℃伅 + */ + @Schema(description = "澶囨敞", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + private String remarks; + + /** + * 鎿嶄綔浜虹紪鍙� + */ + @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Positive(message = "鎿嶄綔浜虹紪鍙峰繀椤讳负澶т簬0鐨勬暣鏁�") + private Long operator; +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoRecharge.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoRecharge.java new file mode 100644 index 0000000..d1e4f28 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoRecharge.java @@ -0,0 +1,84 @@ +package com.dy.pipIrrSell.cardOperate.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Positive; +import lombok.*; + +/** + * @author ZhuBaoMin + * @date 2024-01-19 9:06 + * @LastEditTime 2024-01-19 9:06 + * @Description + */ + +@Data +@Builder +@ToString +@NoArgsConstructor +@AllArgsConstructor +@Schema(name = "鍏呭�间紶鍏ュ璞�") +public class DtoRecharge { + public static final long serialVersionUID = 202401190907001L; + + /** + * 姘村崱缂栧彿 + */ + @Schema(description = "姘村崱缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @NotBlank(message = "姘村崱缂栧彿涓嶈兘涓虹┖") + private String cardNum; + + /** + * 鍐滄埛ID锛屼笉鏄厖鍊兼帴鍙d紶鍏ワ紝鐢卞紑鍗″璞′紶鍏ワ紝淇濆瓨鍏呭�艰褰曢渶瑕� + */ + @Schema(description = "鍐滄埛ID", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + private Long clientId; + + /** + * 鍗$墖浣欓 + */ + @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 amount; + + /** + * 璧犻�侀噾棰� + */ + @Schema(description = "璧犻�侀噾棰�", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Min(value = 0, message="璧犻�侀噾棰濅笉鑳藉皬浜�0") + private Float gift; + + /** + * 浠樻鏂瑰紡缂栧彿 + */ + @Schema(description = "浠樻鏂瑰紡缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + private Long paymentId; + + /** + * 姘翠环 + */ + @Schema(description = "姘翠环", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Min(value = 0, message="姘翠环涓嶈兘灏忎簬0") + private Float price; + + /** + * 澶囨敞淇℃伅 + */ + @Schema(description = "澶囨敞", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + private String remarks; + + /** + * 鎿嶄綔浜虹紪鍙� + */ + @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Positive(message = "鎿嶄綔浜虹紪鍙峰繀椤讳负澶т簬0鐨勬暣鏁�") + private Long operator; +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoReversal.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoReversal.java new file mode 100644 index 0000000..1fde2fc --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoReversal.java @@ -0,0 +1,64 @@ +package com.dy.pipIrrSell.cardOperate.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Positive; +import lombok.*; + +/** + * @author ZhuBaoMin + * @date 2024-01-19 13:36 + * @LastEditTime 2024-01-19 13:36 + * @Description + */ + +@Data +@Builder +@ToString +@NoArgsConstructor +@AllArgsConstructor +@Schema(name = "鍐叉浼犲叆瀵硅薄") +public class DtoReversal { + public static final long serialVersionUID = 202401191337001L; + + /** + * 姘村崱缂栧彿 + */ + @Schema(description = "姘村崱缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @NotBlank(message = "姘村崱缂栧彿涓嶈兘涓虹┖") + private String cardNum; + + /** + * 鍐滄埛缂栧彿 + */ + //@Schema(description = "鍐滄埛缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + //private String clientNum; + + /** + * 鍗$墖浣欓 + */ + @Schema(description = "鍗$墖浣欓", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Min(value = 0, message="鍗$墖浣欓涓嶈兘灏忎簬0") + private Float cardBalance; + + /** + * 绯荤粺浣欓 + */ + @Schema(description = "绯荤粺浣欓", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Min(value = 0, message="绯荤粺浣欓涓嶈兘灏忎簬0") + private Float systemBalance; + + /** + * 澶囨敞淇℃伅 + */ + @Schema(description = "澶囨敞", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + private String remarks; + + /** + * 鎿嶄綔浜虹紪鍙� + */ + @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Positive(message = "鎿嶄綔浜虹紪鍙峰繀椤讳负澶т簬0鐨勬暣鏁�") + private Long operator; +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/enums/OperateTypeENUM.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/enums/OperateTypeENUM.java new file mode 100644 index 0000000..595627b --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/enums/OperateTypeENUM.java @@ -0,0 +1,27 @@ +package com.dy.pipIrrSell.cardOperate.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author ZhuBaoMin + * @date 2023/12/8 10:56 + * @LastEditTime 2023/12/8 10:56 + * @Description 寮�鍗�/琛ュ崱绫诲瀷鏋氫妇 + */ + +@Getter +@AllArgsConstructor +public enum OperateTypeENUM { + ACTIVE((byte)1, "寮�鍗�"), + RECHARGE((byte)2, "鍏呭��"), + CANCEL((byte)3, "閿�鍗�"), + REISSUE((byte)4, "琛ュ崱"), + REFUND((byte)5, "琛ユ墸"), + LOSS((byte)6, "鎸傚け"), + REVERSAL((byte)7, "鍐叉"), + UNLOCK((byte)8, "瑙i攣"); + + private final Byte code; + private final String message; +} -- Gitblit v1.8.0