From 3948f4fc637d8439bc2a2e44c449e968b3c0fb15 Mon Sep 17 00:00:00 2001 From: wuzeyu <1223318623@qq.com> Date: 星期五, 26 一月 2024 08:58:21 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideSv.java | 3 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeGeneral.java | 92 ++++ pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/dto/DtoGeneral.java | 54 ++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoGeneral.java | 17 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/result/SystemResultCode.java | 7 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralCtrl.java | 189 ++++++++ pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralSv.java | 189 ++++++++ pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml | 4 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java | 10 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java | 3 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeAuditsMapper.java | 27 + pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeAuditsMapper.xml | 115 +++++ pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserCtrl.java | 3 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeGeneralMapper.java | 89 ++++ pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeGeneralMapper.xml | 289 +++++++++++++ pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java | 10 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeAudits.java | 76 +++ pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/qo/QoGeneral.java | 34 + pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml | 16 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/qo/QoToAudit.java | 27 + pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserSv.java | 11 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/qo/QoTransaction.java | 3 22 files changed, 1,250 insertions(+), 18 deletions(-) diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeAuditsMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeAuditsMapper.java new file mode 100644 index 0000000..95ef40d --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeAuditsMapper.java @@ -0,0 +1,27 @@ +package com.dy.pipIrrGlobal.daoSe; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dy.pipIrrGlobal.pojoSe.SeAudits; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author ZhuBaoMin + * @date 2024-01-24 18:57 + * @LastEditTime 2024-01-24 18:57 + * @Description + */ + +@Mapper +public interface SeAuditsMapper extends BaseMapper<SeAudits> { + int deleteByPrimaryKey(Long id); + + int insert(SeAudits record); + + int insertSelective(SeAudits record); + + SeAudits selectByPrimaryKey(Long id); + + int updateByPrimaryKeySelective(SeAudits record); + + int updateByPrimaryKey(SeAudits record); +} \ No newline at end of file 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 index f4ace47..12a6884 100644 --- 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 @@ -89,7 +89,8 @@ /** * 鑾峰彇鎸囧畾鏃ユ湡銆佹寚瀹氭敮浠樻柟寮忓疄鏀堕噾棰濆悎璁� - * @param params + * @param tradeDate + * @param paymentId * @return */ //Float getPaymentSums(Map<?, ?> params); diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeGeneralMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeGeneralMapper.java new file mode 100644 index 0000000..0e230af --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeGeneralMapper.java @@ -0,0 +1,89 @@ +package com.dy.pipIrrGlobal.daoSe; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dy.pipIrrGlobal.pojoSe.SeGeneral; +import com.dy.pipIrrGlobal.voSe.VoGeneral; +import com.dy.pipIrrGlobal.voSe.VoTransactionStatistics; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + * @author ZhuBaoMin + * @date 2024-01-24 18:57 + * @LastEditTime 2024-01-25 15:55 + * @Description + */ + +@Mapper +public interface SeGeneralMapper extends BaseMapper<SeGeneral> { + int deleteByPrimaryKey(Long id); + + int insert(SeGeneral record); + + int insertSelective(SeGeneral record); + + SeGeneral selectByPrimaryKey(Long id); + + int updateByPrimaryKeySelective(SeGeneral record); + + int updateByPrimaryKey(SeGeneral record); + + /** + * 鑾峰彇鏈敓鎴愭�昏处鐨勪氦鏄撴棩鏈熷垪琛紙褰撳ぉ鐨勪氦鏄撹褰曚笉鐢熸垚鎬昏处锛� + * @return + */ + List<Map<String, Object>> getDatesOfNotInGenerals(); + + /** + * 鏍规嵁浜ゆ槗鏃ユ湡鑾峰彇鎬昏处璁板綍鍒楄〃锛堝緟鐢熸垚鐨勶級 + * @param operateDate + * @return + */ + List<SeGeneral> getGeneralByOperateDate(@Param("operateDate") String operateDate); + + /** + * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鎬昏处璁板綍鏁� + * @param params + * @return + */ + Long getRecordCount(Map<?, ?> params); + + /** + * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鎬昏处璁板綍 + * @param params + * @return + */ + List<VoGeneral> getGenerals(Map<?, ?> params); + + /** + * 璐㈠姟瀵硅处瀹℃牳椤碉紝鏀堕摱鍛�+鏃ユ湡鍒嗙粍锛屾帓闄や氦鏄撶被鍨嬪垎缁勶紝璁板綍鏁� + * @param params + * @return + */ + Long getToAuditRecordCount(Map<?, ?> params); + + /** + * 璐㈠姟瀵硅处瀹℃牳椤碉紝鏀堕摱鍛�+鏃ユ湡鍒嗙粍锛屾帓闄や氦鏄撶被鍨嬪垎缁� + * @param params + * @return + */ + List<VoTransactionStatistics> getToAudit(Map<?, ?> params); + + /** + * 鑾峰彇鎸囧畾鏃ユ湡銆佹寚瀹氭敹閾跺憳銆佹寚瀹氭敮浠樻柟寮忓疄鏀堕噾棰濆悎璁� + * @param tradeDate + * @param paymentId + * @return + */ + Float getPaymentSums(@Param("tradeDate") String tradeDate, @Param("cashierId") Long cashierId, @Param("paymentId") Long paymentId); + + /** + * 鏍瑰熀鎸囧畾鏃ユ湡銆佹寚瀹氭敹閾跺憳鑾峰彇绗旀暟鍚堣銆佸疄鏀堕噾棰濆悎璁°�佽禒閫侀噾棰濆悎璁� + * @param params + * @return + */ + Map getTransactionStatisticsSums(Map<?, ?> params); +} \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeAudits.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeAudits.java new file mode 100644 index 0000000..9d1a492 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeAudits.java @@ -0,0 +1,76 @@ +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-24 18:57 + * @LastEditTime 2024-01-24 18:57 + * @Description + */ + +@TableName(value="se_audits", autoResultMap = true) +@Data +@Builder +@ToString +@NoArgsConstructor +@AllArgsConstructor +@Schema(name = "鎬昏处瀹℃牳璁板綍瀹炰綋") +public class SeAudits implements BaseEntity { + public static final long serialVersionUID = 202401251043001L; + + /** + * 涓婚敭 + */ + @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 generalId; + + /** + * 瀹℃牳鐘舵��;1-鏈鏍革紝2-鍚屾剰锛�3-椹冲洖 + */ + @Schema(description = "瀹℃牳鐘舵��", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @NotNull(message = "瀹℃牳鐘舵�佷笉鑳戒负绌�") + private Byte auditStatus; + + /** + * 瀹℃牳鎰忚 + */ + @Schema(description = "瀹℃牳鎰忚", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Length(max = 200, message = "瀹℃牳鎰忚鏈�澶�200瀛�") + private String auditOpinion; + + /** + * 鎿嶄綔浜虹紪鍙� + */ + @Schema(description = "鎿嶄綔浜篒D", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @NotNull(message = "鎿嶄綔浜篒D涓嶈兘涓虹┖") + @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/pojoSe/SeGeneral.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeGeneral.java new file mode 100644 index 0000000..9301699 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeGeneral.java @@ -0,0 +1,92 @@ +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.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.*; + +import java.util.Date; + +/** + * @author ZhuBaoMin + * @date 2024-01-24 18:57 + * @LastEditTime 2024-01-24 18:57 + * @Description + */ + +@TableName(value="se_general", autoResultMap = true) +@Data +@Builder +@ToString +@NoArgsConstructor +@AllArgsConstructor +@Schema(name = "鎬昏处瀹炰綋") +public class SeGeneral implements BaseEntity { + public static final long serialVersionUID = 202401241912001L; + + /** + * 涓婚敭 + */ + @JSONField(serializeUsing= ObjectWriterImplToString.class) + @TableId(type = IdType.INPUT) + @Schema(description = "瀹炰綋id", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + private Long id; + + /** + * 鏀堕摱鍛業D + */ + @Schema(description = "鏀堕摱鍛業D", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @NotNull(message = "鏀堕摱鍛業D涓嶈兘涓虹┖") + private Long cashierId; + + /** + * 鏀堕摱鍛樺鍚� + */ + @Schema(description = "鏀堕摱鍛樺鍚�", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @NotBlank(message = "鏀堕摱鍛樺鍚嶄笉鑳戒负绌�") + private String cashierName; + + /** + * 瀹炴敹閲戦 + */ + @Schema(description = "瀹炴敹閲戦", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @NotNull(message = "瀹炴敹閲戦涓嶈兘涓虹┖") + private Double tradeAmount; + + /** + * 璧犻�侀噾棰� + */ + @Schema(description = "璧犻�侀噾棰�", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @NotNull(message = "璧犻�侀噾棰濅笉鑳戒负绌�") + private Double gift; + + /** + * 鎬婚 + */ + @Schema(description = "鎬婚", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @NotNull(message = "鎬婚涓嶈兘涓虹┖") + private Double totalAmount; + + /** + * 浜ゆ槗鏃ユ湡 + */ + @Schema(description = "浜ゆ槗鏃ユ湡", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @NotNull(message = "浜ゆ槗鏃ユ湡涓嶈兘涓虹┖") + private Date operateDate; + + /** + * 瀹℃牳鐘舵��;1-鏈鏍革紝2-鍚屾剰锛�3-椹冲洖 + */ + @Schema(description = "瀹℃牳鐘舵��", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Max(message = "瀹℃牳鐘舵�佹渶澶т负3", value = 3) + @Min(message = "瀹℃牳鐘舵�佹渶灏忎负1",value = 1) + private Byte auditStatus; +} \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoGeneral.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoGeneral.java index a144e18..b9fd28b 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoGeneral.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoGeneral.java @@ -4,8 +4,6 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import java.util.Date; - /** * @author ZhuBaoMin * @date 2024-01-24 17:00 @@ -18,8 +16,14 @@ public class VoGeneral implements BaseEntity { private static final long serialVersionUID = 202401241706001L; + @Schema(title = "鎬昏处ID") + private String generalId; + + @Schema(title = "鏀堕摱鍛業D") + private String cashierId; + @Schema(title = "鏀堕摱鍛樺鍚�") - private String clientNum; + private String cashierName; @Schema(title = "瀹炴敹閲戦") private Float tradeAmount; @@ -30,7 +34,10 @@ @Schema(title = "鎬婚") private Float totalAmount; - @Schema(title = "鏃ユ湡") - private Date operateDate; + @Schema(title = "浜ゆ槗鏃ユ湡") + private String operateDate; + + @Schema(title = "瀹℃牳鐘舵��") + private String auditStatus; } 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 d0a9b56..00deab6 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml @@ -245,14 +245,18 @@ <!--鏍规嵁鐢ㄦ埛缂栧彿鑾峰彇鐢ㄦ埛淇℃伅--> <select id="getUserInfoById" resultType="java.util.Map"> SELECT - id AS userId, - name AS userName - FROM ba_user + us.id AS userId, + us.name AS userName, + us.phone, + IFNULL(us.blockId, 0) AS blockId, + IFNULL(blo.name, 0) AS blockName + FROM ba_user us + LEFT JOIN ba_block blo ON us.blockId = blo.id <where> - AND disabled = 0 - AND deleted = 0 + AND us.disabled = 0 + AND us.deleted = 0 <if test = "userId != null and userId > 0"> - AND ba_user.id = ${userId} + AND us.id = ${userId} </if> </where> </select> diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeAuditsMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeAuditsMapper.xml new file mode 100644 index 0000000..81f9938 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeAuditsMapper.xml @@ -0,0 +1,115 @@ +<?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.SeAuditsMapper"> + <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoSe.SeAudits"> + <!--@mbg.generated--> + <!--@Table se_audits--> + <id column="id" jdbcType="BIGINT" property="id" /> + <result column="general_id" jdbcType="BIGINT" property="generalId" /> + <result column="audit_status" jdbcType="TINYINT" property="auditStatus" /> + <result column="audit_opinion" jdbcType="VARCHAR" property="auditOpinion" /> + <result column="operator" jdbcType="BIGINT" property="operator" /> + <result column="operate_dt" jdbcType="TIMESTAMP" property="operateDt" /> + </resultMap> + <sql id="Base_Column_List"> + <!--@mbg.generated--> + id, general_id, audit_status, audit_opinion, `operator`, operate_dt + </sql> + <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> + <!--@mbg.generated--> + select + <include refid="Base_Column_List" /> + from se_audits + where id = #{id,jdbcType=BIGINT} + </select> + <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> + <!--@mbg.generated--> + delete from se_audits + where id = #{id,jdbcType=BIGINT} + </delete> + <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSe.SeAudits"> + <!--@mbg.generated--> + insert into se_audits (id, general_id, audit_status, + audit_opinion, `operator`, operate_dt + ) + values (#{id,jdbcType=BIGINT}, #{generalId,jdbcType=BIGINT}, #{auditStatus,jdbcType=TINYINT}, + #{auditOpinion,jdbcType=VARCHAR}, #{operator,jdbcType=BIGINT}, #{operateDt,jdbcType=TIMESTAMP} + ) + </insert> + <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeAudits"> + <!--@mbg.generated--> + insert into se_audits + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="id != null"> + id, + </if> + <if test="generalId != null"> + general_id, + </if> + <if test="auditStatus != null"> + audit_status, + </if> + <if test="auditOpinion != null"> + audit_opinion, + </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="generalId != null"> + #{generalId,jdbcType=BIGINT}, + </if> + <if test="auditStatus != null"> + #{auditStatus,jdbcType=TINYINT}, + </if> + <if test="auditOpinion != null"> + #{auditOpinion,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.SeAudits"> + <!--@mbg.generated--> + update se_audits + <set> + <if test="generalId != null"> + general_id = #{generalId,jdbcType=BIGINT}, + </if> + <if test="auditStatus != null"> + audit_status = #{auditStatus,jdbcType=TINYINT}, + </if> + <if test="auditOpinion != null"> + audit_opinion = #{auditOpinion,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.SeAudits"> + <!--@mbg.generated--> + update se_audits + set general_id = #{generalId,jdbcType=BIGINT}, + audit_status = #{auditStatus,jdbcType=TINYINT}, + audit_opinion = #{auditOpinion,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-global/src/main/resources/mapper/SeCardOperateMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml index e274a1a..903a820 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml @@ -361,6 +361,10 @@ <if test = "operateTimeStart != null and operateTimeStop != null"> AND ope.operate_dt BETWEEN #{operateTimeStart} AND #{operateTimeStop} </if> + + <if test = "cashierId != null and cashierId > 0"> + AND user.id = ${cashierId} + </if> </where> ORDER BY ope.operate_dt <if test="pageCurr != null and pageSize != null"> diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeGeneralMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeGeneralMapper.xml new file mode 100644 index 0000000..5dbd371 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeGeneralMapper.xml @@ -0,0 +1,289 @@ +<?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.SeGeneralMapper"> + <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoSe.SeGeneral"> + <!--@mbg.generated--> + <!--@Table se_general--> + <id column="id" jdbcType="BIGINT" property="id" /> + <result column="cashier_id" jdbcType="BIGINT" property="cashierId" /> + <result column="cashier_name" jdbcType="VARCHAR" property="cashierName" /> + <result column="trade_amount" jdbcType="FLOAT" property="tradeAmount" /> + <result column="gift" jdbcType="FLOAT" property="gift" /> + <result column="total_amount" jdbcType="FLOAT" property="totalAmount" /> + <result column="operate_date" jdbcType="TIMESTAMP" property="operateDate" /> + <result column="audit_status" jdbcType="TINYINT" property="auditStatus" /> + </resultMap> + <sql id="Base_Column_List"> + <!--@mbg.generated--> + id, cashier_id, cashier_name, trade_amount, gift, total_amount, operate_date, audit_status + </sql> + <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> + <!--@mbg.generated--> + select + <include refid="Base_Column_List" /> + from se_general + where id = #{id,jdbcType=BIGINT} + </select> + <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> + <!--@mbg.generated--> + delete from se_general + where id = #{id,jdbcType=BIGINT} + </delete> + <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSe.SeGeneral"> + <!--@mbg.generated--> + insert into se_general (id, cashier_id, cashier_name, + trade_amount, gift, total_amount, + operate_date, audit_status) + values (#{id,jdbcType=BIGINT}, #{cashierId,jdbcType=BIGINT}, #{cashierName,jdbcType=VARCHAR}, + #{tradeAmount,jdbcType=FLOAT}, #{gift,jdbcType=FLOAT}, #{totalAmount,jdbcType=FLOAT}, + #{operateDate,jdbcType=TIMESTAMP}, #{auditStatus,jdbcType=TINYINT}) + </insert> + <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeGeneral"> + <!--@mbg.generated--> + insert into se_general + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="id != null"> + id, + </if> + <if test="cashierId != null"> + cashier_id, + </if> + <if test="cashierName != null"> + cashier_name, + </if> + <if test="tradeAmount != null"> + trade_amount, + </if> + <if test="gift != null"> + gift, + </if> + <if test="totalAmount != null"> + total_amount, + </if> + <if test="operateDate != null"> + operate_date, + </if> + <if test="auditStatus != null"> + audit_status, + </if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="id != null"> + #{id,jdbcType=BIGINT}, + </if> + <if test="cashierId != null"> + #{cashierId,jdbcType=BIGINT}, + </if> + <if test="cashierName != null"> + #{cashierName,jdbcType=VARCHAR}, + </if> + <if test="tradeAmount != null"> + #{tradeAmount,jdbcType=FLOAT}, + </if> + <if test="gift != null"> + #{gift,jdbcType=FLOAT}, + </if> + <if test="totalAmount != null"> + #{totalAmount,jdbcType=FLOAT}, + </if> + <if test="operateDate != null"> + #{operateDate,jdbcType=TIMESTAMP}, + </if> + <if test="auditStatus != null"> + #{auditStatus,jdbcType=TINYINT}, + </if> + </trim> + </insert> + <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeGeneral"> + <!--@mbg.generated--> + update se_general + <set> + <if test="cashierId != null"> + cashier_id = #{cashierId,jdbcType=BIGINT}, + </if> + <if test="cashierName != null"> + cashier_name = #{cashierName,jdbcType=VARCHAR}, + </if> + <if test="tradeAmount != null"> + trade_amount = #{tradeAmount,jdbcType=FLOAT}, + </if> + <if test="gift != null"> + gift = #{gift,jdbcType=FLOAT}, + </if> + <if test="totalAmount != null"> + total_amount = #{totalAmount,jdbcType=FLOAT}, + </if> + <if test="operateDate != null"> + operate_date = #{operateDate,jdbcType=TIMESTAMP}, + </if> + <if test="auditStatus != null"> + audit_status = #{auditStatus,jdbcType=TINYINT}, + </if> + </set> + where id = #{id,jdbcType=BIGINT} + </update> + <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoSe.SeGeneral"> + <!--@mbg.generated--> + update se_general + set cashier_id = #{cashierId,jdbcType=BIGINT}, + cashier_name = #{cashierName,jdbcType=VARCHAR}, + trade_amount = #{tradeAmount,jdbcType=FLOAT}, + gift = #{gift,jdbcType=FLOAT}, + total_amount = #{totalAmount,jdbcType=FLOAT}, + operate_date = #{operateDate,jdbcType=TIMESTAMP}, + audit_status = #{auditStatus,jdbcType=TINYINT} + where id = #{id,jdbcType=BIGINT} + </update> + + <!--鑾峰彇鏈敓鎴愭�昏处鐨勪氦鏄撴棩鏈熷垪琛紙褰撳ぉ鐨勪氦鏄撹褰曚笉鐢熸垚鎬昏处锛�--> + <select id="getDatesOfNotInGenerals" resultType="java.util.HashMap"> + SELECT + DISTINCT Date(ope.operate_dt) AS operateDate + FROM se_card_operate ope + WHERE Date(ope.operate_dt) NOT IN(SELECT operate_date FROM se_general) AND Date(ope.operate_dt) != CURDATE() + </select> + + <!--鏍规嵁浜ゆ槗鏃ユ湡鑾峰彇鎬昏处璁板綍鍒楄〃锛堝緟鐢熸垚鐨勶級 --> + <select id="getGeneralByOperateDate" resultType="com.dy.pipIrrGlobal.pojoSe.SeGeneral"> + SELECT + us.id AS cashierId, + us.`name` AS cashierName, + IFNULL(SUM(ope.trade_amount),0) AS tradeAmount, + IFNULL(SUM(ope.gift),0) AS gift, + IFNULL((SUM(ope.trade_amount) + SUM(ope.gift)),0) AS totalAmount, + Date(ope.operate_dt) AS operateDate, + 1 AS auditStatus + FROM se_card_operate ope + INNER JOIN ba_user us ON ope.operator = us.id + WHERE Date(ope.operate_dt) = #{operateDate} + GROUP BY ope.operator, Date(ope.operate_dt) + </select> + + <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鎬昏处璁板綍鏁�--> + <select id="getRecordCount" parameterType="java.util.Map" resultType="java.lang.Long"> + SELECT + COUNT(*) AS recordCount + FROM se_general + <where> + <if test = "cashierName != null and cashierName !=''"> + AND cashier_name like CONCAT('%',#{cashierName},'%') + </if> + + <if test = "auditStatus != null and auditStatus > 0"> + AND audit_status = ${auditStatus} + </if> + + <if test = "operateDateStart != null and operateDateStop != null"> + AND Date(operate_date) BETWEEN #{operateDateStart} AND #{operateDateStop} + </if> + </where> + </select> + + <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鎬昏处璁板綍--> + <select id="getGenerals" resultType="com.dy.pipIrrGlobal.voSe.VoGeneral"> + SELECT + CAST(id AS char) AS generalId, + CAST(cashier_id AS char) AS cashierId, + cashier_name AS cashierName, + trade_amount AS tradeAmount, + gift, + total_amount AS totalAmount, + Date(operate_date) AS operateDate, + (CASE + WHEN audit_status = 1 THEN "鏈鏍�" + WHEN audit_status = 2 THEN "鍚屾剰" + WHEN audit_status = 3 THEN "椹冲洖" + END) AS auditStatus + FROM se_general + <where> + <if test = "cashierName != null and cashierName !=''"> + AND cashier_name like CONCAT('%',#{cashierName},'%') + </if> + + <if test = "auditStatus != null and auditStatus > 0"> + AND audit_status = ${auditStatus} + </if> + + <if test = "operateDateStart != null and operateDateStop != null"> + AND Date(operate_date) BETWEEN #{operateDateStart} AND #{operateDateStop} + </if> + </where> + ORDER BY Date(operate_date) DESC + <if test="pageCurr != null and pageSize != null"> + LIMIT ${pageCurr}, ${pageSize} + </if> + </select> + + <!--鑾峰彇鎸囧畾鏃ユ湡銆佹寚瀹氭敹閾跺憳銆佹寚瀹氭敮浠樻柟寮忓疄鏀堕噾棰濆悎璁�--> + <select id="getPaymentSums" resultType="java.lang.Float"> + SELECT + SUM(ope.trade_amount) AS tradeAmount + FROM se_card_operate ope + <where> + <if test = "tradeDate != null and tradeDate !=''"> + AND Date(ope.operate_dt) = #{tradeDate} + </if> + + <if test = "paymentId != null and paymentId >0"> + AND ope.payment_id = ${paymentId} + </if> + + <if test = "cashierId != null and cashierId >0"> + AND ope.operator = ${cashierId} + </if> + </where> + GROUP BY ope.payment_id, Date(ope.operate_dt) + </select> + + <!--鏍瑰熀鎸囧畾鏃ユ湡銆佹寚瀹氭敹閾跺憳鑾峰彇绗旀暟鍚堣銆佸疄鏀堕噾棰濆悎璁°�佽禒閫侀噾棰濆悎璁�--> + <select id="getTransactionStatisticsSums" resultType="java.util.Map"> + SELECT + SUM(count) AS totalCount, + SUM(received) AS totalReceived, + SUM(gift) AS totalGift + FROM v_transactionstatistics2 + <where> + <if test = "tradeDate != null and tradeDate !=''"> + AND tradeDate = #{tradeDate} + </if> + + <if test = "cashierId != null and cashierId >0"> + AND cashierId = ${cashierId} + </if> + </where> + </select> + + <!-- 璐㈠姟瀵硅处瀹℃牳椤碉紝鏀堕摱鍛�+鏃ユ湡鍒嗙粍锛屾帓闄や氦鏄撶被鍨嬪垎缁勶紝璁板綍鏁�--> + <select id="getToAuditRecordCount" parameterType="java.util.Map" resultType="java.lang.Long"> + SELECT + COUNT(*) AS recordCount + FROM v_transactionstatistics2 + <where> + <if test = "cashierId != null and cashierId > 0"> + AND cashierId = ${cashierId} + </if> + + <if test = "tradeDate != null"> + AND tradeDate = #{tradeDate} + </if> + </where> + </select> + + <!--璐㈠姟瀵硅处瀹℃牳椤碉紝鏀堕摱鍛�+鏃ユ湡鍒嗙粍锛屾帓闄や氦鏄撶被鍨嬪垎缁�--> + <select id="getToAudit" resultType="com.dy.pipIrrGlobal.voSe.VoTransactionStatistics"> + SELECT * FROM v_transactionstatistics2 + <where> + <if test = "cashierId != null and cashierId > 0"> + AND cashierId = ${cashierId} + </if> + + <if test = "tradeDate != null"> + AND tradeDate = #{tradeDate} + </if> + </where> + ORDER BY tradeDate + <if test="pageCurr != null and pageSize != null"> + LIMIT ${pageCurr}, ${pageSize} + </if> + </select> +</mapper> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/result/SystemResultCode.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/result/SystemResultCode.java index 94bbe67..b757745 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/result/SystemResultCode.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/result/SystemResultCode.java @@ -22,7 +22,12 @@ NO_ROLES(10004, "娌℃湁绗﹀悎鏉′欢鐨勮鑹茶褰�"), PLEASE_INPUT_ROLE_ID(10005, "瑙掕壊缂栧彿涓嶈兘涓虹┖"), DELETE_ROLE_FAIL(10006, "鍒犻櫎瑙掕壊澶辫触"), - USER_NOT_EXIST(10007, "鍒犻櫎鐨勭敤鎴蜂笉瀛樺湪"); + USER_NOT_EXIST(10007, "鍒犻櫎鐨勭敤鎴蜂笉瀛樺湪"), + + /** + * 鐢ㄦ埛 + */ + THE_USER_NOT_EXIST(20001, "鐢ㄦ埛涓嶅瓨鍦�"); private final Integer code; private final String message; 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 e552d73..9d58bd9 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 @@ -495,6 +495,9 @@ public BaseResponse<QueryResultVo<VoUserInfo>> getUserInfos(@PathVariable("userId") Long userId) { try { VoUserInfo res = this.sv.getUserInfos(userId); + if(res == null) { + return BaseResponseUtils.buildException(SystemResultCode.THE_USER_NOT_EXIST.getMessage()); + } System.out.println(" :" + res); return BaseResponseUtils.buildSuccess(res); } catch (Exception 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 afe4e62..1c2ebd3 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 @@ -226,10 +226,14 @@ VoUserInfo voUserInfo = new VoUserInfo(); 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.setUserName(map.get("userName").toString()); + if(map.size() == 0) { + return null; } + voUserInfo.setUserId(String.valueOf(userId)); + voUserInfo.setUserName(map.get("userName").toString()); + voUserInfo.setPhone(map.get("phone").toString()); + voUserInfo.setBlockId(map.get("blockId").toString()); + voUserInfo.setBlockName(map.get("blockName").toString()); /** * 娣诲姞瑙掕壊缂栧彿鍒楄〃銆佽鑹插悕绉板垪琛ㄣ�佹潈闄愬垪琛� @@ -262,6 +266,7 @@ voUserInfo.setRoleNames(list_roleNames); voUserInfo.setPermissions(array_permission); + return voUserInfo; } } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideSv.java index ed8e8be..66ac3e0 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideSv.java @@ -115,7 +115,8 @@ * @return 淇敼璁板綍鏉℃暟 */ public Integer updateByPrimaryKey(PrDivide po) { - return prDivideMapper.updateByPrimaryKey(po); + //return prDivideMapper.updateByPrimaryKey(po); + return prDivideMapper.updateByPrimaryKeySelective(po); } /** 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 index b412230..d3cad79 100644 --- 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 @@ -738,6 +738,11 @@ return BaseResponseUtils.buildSuccess(true) ; } + /** + * 鑾峰彇鍏呭�艰褰� + * @param vo + * @return + */ @Operation(summary = "鑾峰彇鍏呭�艰褰�", description = "杩斿洖鍏呭�艰褰�") @ApiResponses(value = { @ApiResponse( @@ -787,6 +792,11 @@ } + /** + * 鑾峰彇浜ゆ槗姹囨�昏褰� + * @param vo + * @return + */ @Operation(summary = "鑾峰緱浜ゆ槗姹囨�昏褰�", description = "杩斿洖浜ゆ槗姹囨�昏褰�") @ApiResponses(value = { @ApiResponse( diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/qo/QoTransaction.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/qo/QoTransaction.java index 9e83b62..fbea65b 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/qo/QoTransaction.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/qo/QoTransaction.java @@ -30,4 +30,7 @@ @Schema(description = "浜ゆ槗鏌ヨ鎴鏃堕棿") public String operateTimeStop; + + @Schema(description = "鏀堕摱鍛業D") + public Long cashierId; } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralCtrl.java new file mode 100644 index 0000000..dabaf7f --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralCtrl.java @@ -0,0 +1,189 @@ +package com.dy.pipIrrSell.general; + +import com.dy.common.aop.SsoAop; +import com.dy.common.webUtil.BaseResponse; +import com.dy.common.webUtil.BaseResponseUtils; +import com.dy.common.webUtil.QueryResultVo; +import com.dy.common.webUtil.ResultCodeMsg; +import com.dy.pipIrrGlobal.pojoBa.BaClient; +import com.dy.pipIrrGlobal.pojoSe.SeAudits; +import com.dy.pipIrrGlobal.pojoSe.SeGeneral; +import com.dy.pipIrrGlobal.voSe.VoGeneral; +import com.dy.pipIrrSell.general.dto.DtoGeneral; +import com.dy.pipIrrSell.general.qo.QoGeneral; +import com.dy.pipIrrSell.general.qo.QoToAudit; +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.*; + +import java.util.*; + +/** + * @author ZhuBaoMin + * @date 2024-01-24 19:01 + * @LastEditTime 2024-01-24 19:01 + * @Description + */ + +@Slf4j +@Tag(name = "鎬昏处绠$悊", description = "鎬昏处绠$悊") +@RestController +@RequestMapping(path="general") +@RequiredArgsConstructor +public class GeneralCtrl { + private final GeneralSv generalSv; + + /** + * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鎬昏处璁板綍 + * 鏌ヨ鍓嶅厛鐢熸垚鏈敓鎴愮殑鎬昏处璁板綍 + * @param vo + * @return + */ + @Operation(summary = "鑾峰彇鎬昏处璁板綍", description = "鑾峰彇鎬昏处璁板綍") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "杩斿洖涓�椤靛啘鎴锋暟鎹紙BaseResponse.content:QueryResultVo[{}]锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = BaClient.class))} + ) + }) + @GetMapping(path = "get_generals") + @SsoAop() + public BaseResponse<QueryResultVo<List<VoGeneral>>> getOperates(QoGeneral vo){ + try { + add_general(); + QueryResultVo<List<VoGeneral>> res = generalSv.getGenerals(vo); + return BaseResponseUtils.buildSuccess(res); + } catch (Exception e) { + log.error("鏌ヨ浜ゆ槗璁板綍寮傚父", e); + return BaseResponseUtils.buildException(e.getMessage()) ; + } + } + + /** + * 鐢熸垚鎬昏处 + * 鑾峰彇鏈敓鎴愭�昏处鐨勪氦鏄撴棩鏈熷垪琛紙褰撳ぉ鐨勪氦鏄撹褰曚笉鐢熸垚鎬昏处锛� + * 灏嗘寚瀹氭棩鏈熺殑浜ゆ槗璁板綍姹囨�诲埌鎬昏处琛� + * @return + */ + public void add_general(){ + // 鑾峰彇鏈敓鎴愭�昏处鐨勪氦鏄撴棩鏈熷垪琛紙褰撳ぉ鐨勪氦鏄撹褰曚笉鐢熸垚鎬昏处锛� + List<Map<String, Object>> list_operateDate = Optional.ofNullable(generalSv.getDatesOfNotInGenerals()).orElse(new ArrayList<>()); + if(list_operateDate.size() > 0) { + for(int i = 0; i < list_operateDate.size(); i++) { + String operateDate = list_operateDate.get(i).get("operateDate").toString(); + // 鏍规嵁浜ゆ槗鏃ユ湡鑾峰彇鎬昏处璁板綍鍒楄〃锛堝緟鐢熸垚鐨勶級 + List<SeGeneral> list_general = Optional.ofNullable(generalSv.getGeneralByOperateDate(operateDate)).orElse(new ArrayList<>()); + if(list_general.size() > 0) { + for(int j = 0; j < list_general.size(); j++) { + SeGeneral general = list_general.get(j); + generalSv.addGeneral(general); + } + } + + } + } + } + + /** + * 瀹℃牳鎬昏处 + * 1. 淇敼鎬昏处瀹℃牳鐘舵�� + * 2. 娣诲姞鎬昏处瀹℃牳璁板綍 + * @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 = "audit", consumes = MediaType.APPLICATION_JSON_VALUE) + @Transactional(rollbackFor = Exception.class) + @SsoAop() + public BaseResponse<Boolean> audit(@RequestBody @Valid DtoGeneral po, BindingResult bindingResult){ + if(bindingResult != null && bindingResult.hasErrors()){ + return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + Long generalId = po.getGeneralId(); + Byte auditStatus = po.getAuditStatus(); + String auditOpinion = po.getAuditOpinion(); + Long operator = po.getOperator(); + Date auditTime = new Date(); + + if(generalId == null) { + return BaseResponseUtils.buildFail(SellResultCode.GENERAL_ID_CANNOT_BE_NULL.getMessage()); + } + + /** + * 鍒ゆ柇鎬昏处鏄惁瀛樺湪 + */ + if(generalSv.getGeneralById(generalId) == null) { + return BaseResponseUtils.buildFail(SellResultCode.GENERAL_NOT_EXIST.getMessage()); + } + + /** + * 淇敼鎬昏处瀹℃牳鐘舵�� + */ + SeGeneral seGeneral = new SeGeneral(); + seGeneral.setId(generalId); + seGeneral.setAuditStatus(auditStatus); + Integer rec_updateGeneral = Optional.ofNullable(generalSv.updateGeneral(seGeneral)).orElse(0); + if(rec_updateGeneral == 0) { + return BaseResponseUtils.buildFail(SellResultCode.GENERAL_AUDIT_FAIL.getMessage()); + } + + /** + * 娣诲姞鎬昏处瀹℃牳璁板綍 + */ + SeAudits seAudits = new SeAudits(); + seAudits.setGeneralId(generalId); + seAudits.setAuditStatus(auditStatus); + seAudits.setAuditOpinion(auditOpinion); + seAudits.setOperator(operator); + seAudits.setOperateDt(auditTime); + Integer rec_addAucits = Optional.ofNullable(generalSv.addAudits(seAudits)).orElse(0); + if(rec_addAucits == 0) { + return BaseResponseUtils.buildFail(SellResultCode.AUDITS_ADD_FAIL.getMessage()); + } + + return BaseResponseUtils.buildSuccess() ; + } + + @Operation(summary = "鑾峰緱寰呭鏍镐氦鏄撴眹鎬昏褰�", description = "杩斿洖寰呭鏍镐氦鏄撴眹鎬昏褰�") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "杩斿洖涓�椤靛啘鎴锋暟鎹紙BaseResponse.content:QueryResultVo[{}]锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = BaClient.class))} + ) + }) + @GetMapping(path = "getToAudit") + @SsoAop() + public BaseResponse<Map> getToAudit(QoToAudit vo){ + try { + Map res = generalSv.getToAudit(vo); + return BaseResponseUtils.buildSuccess(res); + } catch (Exception e) { + log.error("鏌ヨ浜ゆ槗姹囨�昏褰曞紓甯�", e); + return BaseResponseUtils.buildException(e.getMessage()) ; + } + } +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralSv.java new file mode 100644 index 0000000..8f9832c --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralSv.java @@ -0,0 +1,189 @@ +package com.dy.pipIrrSell.general; + +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; +import com.dy.common.webUtil.QueryResultVo; +import com.dy.pipIrrGlobal.daoSe.SeAuditsMapper; +import com.dy.pipIrrGlobal.daoSe.SeCardOperateMapper; +import com.dy.pipIrrGlobal.daoSe.SeGeneralMapper; +import com.dy.pipIrrGlobal.pojoSe.SeAudits; +import com.dy.pipIrrGlobal.pojoSe.SeGeneral; +import com.dy.pipIrrGlobal.voSe.VoGeneral; +import com.dy.pipIrrGlobal.voSe.VoTransactionStatistics; +import com.dy.pipIrrSell.general.qo.QoGeneral; +import com.dy.pipIrrSell.general.qo.QoToAudit; +import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.common.utils.PojoUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.*; + +/** + * @author ZhuBaoMin + * @date 2024-01-24 19:02 + * @LastEditTime 2024-01-24 19:02 + * @Description + */ + +@Slf4j +@Service +public class GeneralSv { + @Autowired + private SeGeneralMapper seGeneralMapper; + + @Autowired + private SeAuditsMapper seAuditsMapper; + + @Autowired + private SeCardOperateMapper seCardOperateMapper; + + /** + * 鑾峰彇鏈敓鎴愭�昏处鐨勪氦鏄撴棩鏈熷垪琛紙褰撳ぉ鐨勪氦鏄撹褰曚笉鐢熸垚鎬昏处锛� + * @return + */ + public List<Map<String, Object>> getDatesOfNotInGenerals() { + return seGeneralMapper.getDatesOfNotInGenerals(); + } + + /** + * 娣诲姞鎬昏处 + * @param po 鎬昏处瀵硅薄 + * @return + */ + public Integer addGeneral(SeGeneral po) { + return seGeneralMapper.insert(po); + } + + /** + * 鏍规嵁浜ゆ槗鏃ユ湡鑾峰彇鎬昏处璁板綍鍒楄〃锛堝緟鐢熸垚鐨勶級 + * @param operateDate 浜ゆ槗鏃ユ湡 + * @return 鍙栨�昏处璁板綍鍒楄〃 + */ + public List<SeGeneral> getGeneralByOperateDate(String operateDate) { + return seGeneralMapper.getGeneralByOperateDate(operateDate); + } + + /** + * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鎬昏处璁板綍 + * @param queryVo + * @return + */ + public QueryResultVo<List<VoGeneral>> getGenerals(QoGeneral queryVo) { + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); + + Long itemTotal = seGeneralMapper.getRecordCount(params); + + QueryResultVo<List<VoGeneral>> 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 = seGeneralMapper.getGenerals(params); + return rsVo ; + } + + /** + * 淇敼鎬昏处瀹℃牳鎰忚 + * @param po + * @return + */ + public Integer updateGeneral(SeGeneral po) { + return seGeneralMapper.updateByPrimaryKeySelective(po); + } + + /** + * 鏍规嵁缂栧彿鏌ヨ鎬昏处 + * @param id + * @return + */ + public SeGeneral getGeneralById(Long id) { + return seGeneralMapper.selectByPrimaryKey(id); + } + + /** + * t娣诲姞鎬昏处瀹℃牳璁板綍 + * @param po + * @return + */ + public Integer addAudits(SeAudits po) { + return seAuditsMapper.insert(po); + } + + /** + * 璐㈠姟瀵硅处瀹℃牳椤碉紝鏀堕摱鍛�+鏃ユ湡鍒嗙粍锛屾帓闄や氦鏄撶被鍨嬪垎缁� + * @param vo + * @return + */ + public Map getToAudit(QoToAudit vo) { + /** + * 鍙栧嚭鎸囧畾鏃ユ湡涓夌鏀粯鏂瑰紡锛堢幇閲戙�佹壂鐮併�佽浆璐︼級瀹炴敹閲戦 + */ + JSONArray array_paymentSums = new JSONArray(); + String tradeDate = vo.getTradeDate(); + Long cashierId = vo.cashierId; + + Float receivedCash = Optional.ofNullable(seGeneralMapper.getPaymentSums(tradeDate, cashierId, 1L)).orElse(0f); + Float receivedQRCode = Optional.ofNullable(seGeneralMapper.getPaymentSums(tradeDate, cashierId,2L)).orElse(0f); + Float receivedTransfer = Optional.ofNullable(seGeneralMapper.getPaymentSums(tradeDate, cashierId, 3L)).orElse(0f); + JSONObject job = new JSONObject(); + job.put("tradeDate", tradeDate); + job.put("receivedCash", receivedCash); + job.put("receivedQRCode", receivedQRCode); + job.put("receivedTransfer", receivedTransfer); + array_paymentSums.add(job); + + // 鐢熸垚鏌ヨ鍙傛暟 + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(vo) ; + + //鑾峰彇绗旀暟鍚堣銆佸疄鏀堕噾棰濆悎璁°�佽禒閫侀噾棰濆悎璁� + Integer totalCount = 0; + Float totalReceived = 0f; + Float totalGift = 0f; + Map map_sum = Optional.ofNullable(seGeneralMapper.getTransactionStatisticsSums(params)).orElse(new HashMap()); + if(map_sum.size() > 0) { + totalCount = Integer.parseInt(map_sum.get("totalCount").toString()); + totalReceived = Float.parseFloat(map_sum.get("totalReceived").toString()); + totalGift = Float.parseFloat(map_sum.get("totalGift").toString()); + } + + // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟 + Long itemTotal = seGeneralMapper.getToAuditRecordCount(params); + + Integer pageSize = vo.getPageSize(); + // 璁$畻鎬婚〉鏁� + Integer pageTotal ; + pageTotal = (int)Math.ceil((itemTotal==null?0.0D:itemTotal.doubleValue())/pageSize); + + // 鏍规嵁褰撳墠椤电爜鍙婃瘡椤垫暟閲忚绠楀亸绉婚噺 + Integer pageCurr = (Integer.parseInt(params.get("pageCurr").toString()) - 1) * Integer.parseInt(params.get("pageSize").toString()); + params.put("pageCurr", pageCurr); + + List<VoTransactionStatistics> list = seGeneralMapper.getToAudit(params); + Map map_record = new HashMap(); + map_record.put("itemTotal", itemTotal); + map_record.put("pageCurr", vo.pageCurr); + map_record.put("pageSize", pageSize); + map_record.put("pageTotal", pageTotal); + map_record.put("list", list); + + Map map_result = new HashMap(); + map_result.put("totalCount", totalCount); + map_result.put("totalReceived", totalReceived); + map_result.put("totalGift", totalGift); + map_result.put("records", map_record); + map_result.put("paymentSums", array_paymentSums); + + return map_result; + } +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/dto/DtoGeneral.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/dto/DtoGeneral.java new file mode 100644 index 0000000..92985c7 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/dto/DtoGeneral.java @@ -0,0 +1,54 @@ +package com.dy.pipIrrSell.general.dto; + +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; + +/** + * @author ZhuBaoMin + * @date 2024-01-25 10:19 + * @LastEditTime 2024-01-25 10:19 + * @Description + */ + +@Data +@Builder +@ToString +@NoArgsConstructor +@AllArgsConstructor +@Schema(name = "鎬昏处瀹℃牳浼犲叆瀵硅薄") +public class DtoGeneral { + public static final long serialVersionUID = 202401251020001L; + + /** + * 鎬昏处ID + */ + @Schema(description = "鎬昏处ID", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @NotNull(message = "鎬昏处ID涓嶈兘涓虹┖") + @Positive(message = "鎬昏处缂栧彿蹇呴』涓哄ぇ浜�0鐨勬暣鏁�") + private Long generalId; + + /** + * 瀹℃牳鐘舵�� + */ + @Schema(description = "瀹℃牳鐘舵��", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @NotNull(message = "瀹℃牳鐘舵�佷笉鑳戒负绌�") + private Byte auditStatus; + + /** + * 瀹℃牳鎰忚 + */ + @Schema(description = "瀹℃牳鎰忚", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Length(max = 200, message = "瀹℃牳鎰忚鏈�澶�200瀛�") + private String auditOpinion; + + /** + * 鎿嶄綔浜虹紪鍙� + */ + @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @NotNull(message = "鎿嶄綔浜虹紪鍙蜂笉鑳戒负绌�") + @Positive(message = "鎿嶄綔浜虹紪鍙峰繀椤讳负澶т簬0鐨勬暣鏁�") + private Long operator; +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/qo/QoGeneral.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/qo/QoGeneral.java new file mode 100644 index 0000000..fde1f9a --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/qo/QoGeneral.java @@ -0,0 +1,34 @@ +package com.dy.pipIrrSell.general.qo; + +import com.dy.common.webUtil.QueryConditionVo; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +/** + * @author ZhuBaoMin + * @date 2024-01-24 20:25 + * @LastEditTime 2024-01-24 20:25 + * @Description + */ + +@Data +@EqualsAndHashCode(callSuper = false) +@ToString(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder +@Schema(name = "鎬昏处鏌ヨ鏉′欢") +public class QoGeneral extends QueryConditionVo { + @Schema(description = "鏀堕摱鍛樺鍚�") + public String cashierName; + + @Schema(description = "浜ゆ槗鏌ヨ璧峰鏃ユ湡") + public String operateDateStart; + + @Schema(description = "浜ゆ槗鏌ヨ鎴鏃ユ湡") + public String operateDateStop; + + @Schema(description = "瀹℃牳鐘舵��") + private Byte auditStatus; + +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/qo/QoToAudit.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/qo/QoToAudit.java new file mode 100644 index 0000000..809a5ee --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/qo/QoToAudit.java @@ -0,0 +1,27 @@ +package com.dy.pipIrrSell.general.qo; + +import com.dy.common.webUtil.QueryConditionVo; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +/** + * @author ZhuBaoMin + * @date 2024-01-25 20:13 + * @LastEditTime 2024-01-25 20:13 + * @Description + */ + +@Data +@EqualsAndHashCode(callSuper = false) +@ToString(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder +@Schema(name = "寰呭鏍镐氦鏄撴眹鎬绘煡璇㈡潯浠�") +public class QoToAudit extends QueryConditionVo { + @Schema(description = "浜ゆ槗鏃堕棿") + public String tradeDate; + + @Schema(description = "鏀堕摱鍛業D") + public Long cashierId; +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java index 6b4a1f6..ecb786e 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java @@ -61,7 +61,15 @@ /** * 琛ユ墸 */ - REFUND_FAIL_WRITE_REFUND_ERROR(70001, "琛ユ墸澶辫触-琛ユ墸璁板綍鍐欏叆寮傚父"); + REFUND_FAIL_WRITE_REFUND_ERROR(70001, "琛ユ墸澶辫触-琛ユ墸璁板綍鍐欏叆寮傚父"), + + /** + * 鎬昏处 + */ + GENERAL_ID_CANNOT_BE_NULL(80001, "鎬昏处缂栧彿涓嶈兘涓虹┖"), + GENERAL_NOT_EXIST(80001, "鎬昏处涓嶅瓨鍦�"), + GENERAL_AUDIT_FAIL(80001, "鎬昏处瀹℃牳澶辫触"), + AUDITS_ADD_FAIL(80001, "鎬昏处瀹℃牳璁板綍娣诲姞澶辫触"); private final Integer code; private final String message; -- Gitblit v1.8.0