Administrator
2023-12-28 51dab03d03a4f3f671a64c3660c42e5241357c9b
2023-12-28 朱宝民 根据水卡编号获取操作记录,重构农户查询,返回23个字段
6个文件已修改
190 ■■■■ 已修改文件
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoClient.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/ClientCardCtrl.java 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/ClientCardSv.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java
@@ -64,4 +64,18 @@
     * @return
     */
    List<VoCardInfo> getCardInfoByClientId(@Param("clientId") Long clientId);
    /**
     * 根据水卡编号获取操作记录列表
     * @param cardNum 水卡编号
     * @return 水卡操作记录列表
     */
    List<Map<String, Object>> getOperateRecordsByCardNum(@Param("cardNum") Long cardNum);
    /**
     * 根据水卡编号获取余额
     * @param cardNum 水卡编号
     * @return 余额
     */
    Float getMoneyByCardNum(@Param("cardNum") Long cardNum);
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoClient.java
@@ -23,6 +23,36 @@
    @Schema(title = "ID")
    private Long id;
    @Schema(title = "县ID")
    private String countyId;
    @Schema(title = "县名称")
    private String countryName;
    @Schema(title = "镇ID")
    private String townId;
    @Schema(title = "镇名称")
    private String townName;
    @Schema(title = "村ID")
    private String villageId;
    @Schema(title = "村名称")
    private String villageName;
    @Schema(title = "片区ID")
    private String blockId;
    @Schema(title = "片区名称")
    private String bolckName;
    @Schema(title = "分水房ID")
    private String divideId;
    @Schema(title = "分水房名称")
    private String divideName;
    @Schema(title = "用户类型ID")
    private String waterTypeId;
    @Schema(title = "用户类型名称")
    private String waterTypeName;
    @Schema(title = "农户ID")
    private String clientId;
@@ -36,7 +66,10 @@
    private String phone;
    @Schema(title = "身份证号")
    private String idCard;
    private String idcard;
    @Schema(title = "种植面积")
    private Double area;
    @Schema(title = "卡片数量")
    private Integer cardCount;
@@ -44,10 +77,11 @@
    @Schema(title = "地址")
    private String address;
    @Schema(title = "备注")
    private String remarks;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Schema(title = "注册时间")
    private Date operateDt;
}
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
@@ -272,4 +272,14 @@
    FROM se_client_card
    WHERE clientId = ${clientId}
  </select>
  <!--根据水卡编号获取操作记录列表-->
  <select id="getOperateRecordsByCardNum" resultType="java.util.HashMap">
    SELECT * FROM v_operate WHERE cardNum = ${cardNum}
  </select>
  <!--根据水卡编号获取余额-->
  <select id="getMoneyByCardNum" resultType="java.lang.Float">
    SELECT money FROM se_client_card WHERE cardNum = ${cardNum}
  </select>
</mapper>
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
@@ -304,22 +304,26 @@
  <!--根据指定条件获取农户记录数-->
  <select id="getRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
    SELECT
    COUNT(*) AS recordCount
        COUNT(*) AS recordCount
    FROM se_client cli
    , (SELECT @i:=0) AS itable
    <where>
      AND disabled = 0
      AND deleted = 0
      AND cli.disabled = 0
      AND cli.deleted = 0
      <if test = "name != null and name !=''">
        AND name like CONCAT('%',#{name},'%')
        AND cli.name like CONCAT('%',#{name},'%')
      </if>
      <if test = "num != null and num !=''">
        AND clientNum like CONCAT('%',#{num},'%')
      <if test = "clientNum != null and clientNum !=''">
        AND cli.clientNum like CONCAT('%',#{clientNum},'%')
      </if>
      <if test = "phone != null and phone !=''">
        AND phone like CONCAT('%',#{phone},'%')
        AND cli.phone like CONCAT('%',#{phone},'%')
      </if>
      <if test = "address != null and address !=''">
        AND cli.address like CONCAT('%',#{address},'%')
      </if>
    </where>
@@ -329,37 +333,57 @@
  <!--根据指定条件获取农户数据-->
  <select id="getClients" resultType="com.dy.pipIrrGlobal.voSe.VoClient">
    SELECT
    (@i:=@i+1) AS id,
    CAST(id AS char) AS clientId,
    name,
    clientNum,
    phone,
    idCard,
    (SELECT COUNT(*) FROM se_client_card WHERE clientNum = cli.clientNum) AS cardCount,
    address,
    operateDt
        (@i:=@i+1) AS id,
        CAST(cli.countyId AS char) AS countyId,
        dis_con.name AS countryName,
        CAST(cli.townId AS char) AS townId,
        dis_town.name AS townName,
        CAST(cli.villageId AS char) AS villageId,
        dis_village.name AS villageName,
        CAST(cli.blockId AS char) AS blockId,
        blo.name AS bolckName,
        CAST(cli.divideId AS char) AS divideId,
        divi.name AS divideName,
        CAST(cli.typeId AS char) AS waterTypeId,
        wat.typeName AS waterTypeName,
        CAST(cli.id AS char) AS clientId,
        cli.name,
        cli.clientNum,
        cli.phone,
        cli.idCard,
        cli.area,
        (SELECT COUNT(*) FROM se_client_card WHERE clientId = cli.id) AS cardCount,
        cli.address,
        cli.remarks,
        cli.operateDt
    FROM se_client cli
    LEFT JOIN ba_district dis_con ON cli.countyId = dis_con.id
    LEFT JOIN ba_district dis_town ON cli.townId = dis_town.id
    LEFT JOIN ba_district dis_village ON cli.villageId = dis_village.id
    LEFT JOIN ba_block blo ON cli.blockId = blo.id
    LEFT JOIN pr_divide divi ON cli.divideId = divi.id
    LEFT JOIN se_water_type wat ON cli.typeId = wat.id
    , (SELECT @i:=0) AS itable
    <where>
      AND disabled = 0
      AND deleted = 0
      AND cli.disabled = 0
      AND cli.deleted = 0
      <if test = "name != null and name !=''">
        AND name like CONCAT('%',#{name},'%')
        AND cli.name like CONCAT('%',#{name},'%')
      </if>
      <if test = "clientNum != null and clientNum !=''">
        AND clientNum like CONCAT('%',#{clientNum},'%')
        AND cli.clientNum like CONCAT('%',#{clientNum},'%')
      </if>
      <if test = "phone != null and phone !=''">
        AND phone like CONCAT('%',#{phone},'%')
        AND cli.phone like CONCAT('%',#{phone},'%')
      </if>
      <if test = "address != null and address !=''">
        AND address like CONCAT('%',#{address},'%')
        AND cli.address like CONCAT('%',#{address},'%')
      </if>
    </where>
    ORDER BY operateDt DESC
    ORDER BY cli.operateDt DESC
    <if test="pageCurr != null and pageSize != null">
      LIMIT ${pageCurr}, ${pageSize}
    </if>
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/ClientCardCtrl.java
@@ -16,12 +16,10 @@
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
 * @author ZhuBaoMin
@@ -38,6 +36,11 @@
public class ClientCardCtrl {
    private final ClientCardSv clientCardSv;
    /**
     * 获取指定用户名下全部水卡
     * @param clientId
     * @return
     */
    @Operation(summary = "获得全部水卡", description = "返回全部水卡数据")
    @ApiResponses(value = {
            @ApiResponse(
@@ -58,4 +61,30 @@
            return BaseResponseUtils.buildException(e.getMessage()) ;
        }
    }
    /**
     * 根据水卡编号获取操作记录及余额
     * @param cardNum 水卡编号
     * @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 = "/getoperaterecords")
    @SsoAop()
    public BaseResponse<List<Map<String, Object>>> getOperateRecordsAndMoney(@RequestParam("cardNum") Long cardNum){
        try {
            Map map = clientCardSv.getOperateRecordsAndMoney(cardNum);
            return BaseResponseUtils.buildSuccess(map);
        } catch (Exception e) {
            log.error("查询操作记录异常", e);
            return BaseResponseUtils.buildException(e.getMessage()) ;
        }
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/ClientCardSv.java
@@ -7,10 +7,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.*;
/**
 * @author ZhuBaoMin
@@ -83,4 +80,18 @@
            return new ArrayList<>();
        }
    }
    /**
     * 根据水卡编号获取操作记录及余额
     * @param cardNum
     * @return
     */
    public Map getOperateRecordsAndMoney(Long cardNum) {
        List<Map<String, Object>> list = Optional.ofNullable(seClientCardMapper.getOperateRecordsByCardNum(cardNum)).orElse(new ArrayList<>());
        Float mondy = Optional.ofNullable(seClientCardMapper.getMoneyByCardNum(cardNum)).orElse(0f);
        Map map = new HashMap();
        map.put("mondy", mondy);
        map.put("list", list);
        return map;
    }
}