فهرست منبع

账户查询接口

bing 1 سال پیش
والد
کامیت
a47f6104a6

+ 18 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/service/impl/PtAccountServiceImpl.java

@@ -1,5 +1,6 @@
 package org.dromara.backstage.basics.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import org.dromara.backstage.basics.domain.PtOperator;
 import org.dromara.backstage.basics.mapper.PtOperatorMapper;
 import org.dromara.common.core.exception.ServiceException;
@@ -87,6 +88,23 @@ public class PtAccountServiceImpl implements IPtAccountService {
         return lqw;
     }
 
+    private QueryWrapper<PtAccount> buildQueryWrapper(PtAccountBo bo, String tableAlias) {
+        QueryWrapper<PtAccount> lqw = new QueryWrapper<>();
+        String columnPrefix = "";
+        if(StringUtils.isNotBlank(tableAlias)){
+            columnPrefix = tableAlias + ".";
+        }
+        lqw.like(StringUtils.isNotBlank(bo.getAccountName()), columnPrefix+"account_name", bo.getAccountName());
+        lqw.eq(StringUtils.isNotBlank(bo.getAccountCode()), columnPrefix+"account_code", bo.getAccountCode());
+        lqw.eq(StringUtils.isNotBlank(bo.getQueryPwd()), columnPrefix+"query_pwd", bo.getQueryPwd());
+        lqw.eq(StringUtils.isNotBlank(bo.getTelephone()), columnPrefix+"telephone", bo.getTelephone());
+        lqw.eq(StringUtils.isNotBlank(bo.getBankNumber()), columnPrefix+"bank_number", bo.getBankNumber());
+        lqw.eq(StringUtils.isNotBlank(bo.getStatus()), columnPrefix+"status", bo.getStatus());
+        lqw.like(StringUtils.isNotBlank(bo.getAdminName()), columnPrefix+"admin_name", bo.getAdminName());
+        lqw.eq(StringUtils.isNotBlank(bo.getIdNumber()), columnPrefix+"id_number", bo.getIdNumber());
+        return lqw;
+    }
+
     /**
      * 新增结算账户
      *

+ 7 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/payment/controller/PtUserAccountController.java

@@ -13,6 +13,7 @@ import org.dromara.backstage.cardCenter.domain.vo.PtCardVo;
 import org.dromara.backstage.cardCenter.service.IPtCardService;
 import org.dromara.backstage.payment.domain.bo.PtBagBo;
 import org.dromara.backstage.payment.domain.vo.PtBagVo;
+import org.dromara.backstage.payment.domain.vo.PtUserAccount4SelectVo;
 import org.dromara.backstage.payment.domain.vo.PtUserAccountInfoVo;
 import org.dromara.backstage.payment.service.IPtBagService;
 import org.dromara.common.core.utils.StreamUtils;
@@ -62,6 +63,12 @@ public class PtUserAccountController extends BaseController {
         return ptUserAccountService.queryPageList(bo, pageQuery);
     }
 
+    @SaCheckPermission("payment:ptUserAccount:list")
+    @GetMapping("/list4Select")
+    public TableDataInfo<PtUserAccount4SelectVo> list4Select(PtUserAccountBo bo, PageQuery pageQuery) {
+        return ptUserAccountService.queryPageList4Select(bo, pageQuery);
+    }
+
     /**
      * 导出一卡通账户列表
      */

+ 240 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/payment/domain/vo/PtUserAccount4SelectVo.java

@@ -0,0 +1,240 @@
+package org.dromara.backstage.payment.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.backstage.payment.domain.PtUserAccount;
+import org.dromara.common.excel.annotation.ExcelDictFormat;
+import org.dromara.common.excel.convert.ExcelDictConvert;
+import org.dromara.common.sensitive.annotation.Sensitive;
+import org.dromara.common.sensitive.core.SensitiveStrategy;
+import org.dromara.common.translation.annotation.Translation;
+import org.dromara.common.translation.constant.TransConstant;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 一卡通账户视图对象 t_pt_userAccount
+ *
+ * @author LionLi
+ * @date 2024-08-05
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = PtUserAccount.class)
+public class PtUserAccount4SelectVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 账户Id,主键
+     */
+    @ExcelProperty(value = "账户Id,主键")
+    private Long userId;
+
+    /**
+     * 岗位Id
+     */
+    @ExcelProperty(value = "岗位Id")
+    private Long postId;
+
+    /**
+     * 部门Id
+     */
+    @ExcelProperty(value = "部门Id")
+    private Long deptId;
+
+    /**
+     * 账户名/登录账号
+     */
+    @ExcelProperty(value = "账户名/登录账号")
+    private String userName;
+
+    /**
+     * 登录密码
+     */
+    @ExcelProperty(value = "登录密码")
+    private String password;
+
+    /**
+     * 账户编号/工号
+     */
+    @ExcelProperty(value = "账户编号/工号")
+    private String userNumb;
+
+    /**
+     * 账户姓名
+     */
+    @ExcelProperty(value = "账户姓名")
+    private String realName;
+
+    /**
+     * 账户性别,见sys_user_sex字典类型
+     */
+    @ExcelProperty(value = "账户性别,见sys_user_sex字典类型")
+    private String sex;
+
+    /**
+     * 账户类型(0=内部账户 1=老师 2=学生 3=家长  4=其他人员)
+     */
+    @ExcelProperty(value = "账户类型", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(readConverterExp = "0==内部账户,1==老师,2==学生,3==家长,4==其他人员")
+    private String category;
+
+    /**
+     * 账户邮箱
+     */
+    @ExcelProperty(value = "账户邮箱")
+    private String email;
+
+    /**
+     * 通信地址
+     */
+    @ExcelProperty(value = "通信地址")
+    private String address;
+
+    /**
+     * 手机号码
+     */
+    @Sensitive(strategy= SensitiveStrategy.PHONE)
+    @ExcelProperty(value = "手机号码")
+    private String phone;
+
+    /**
+     * 头像地址
+     */
+    @ExcelProperty(value = "头像地址")
+    private Long avatar;
+
+    /**
+     * 身份证号
+     */
+    @ExcelProperty(value = "身份证号")
+    private String idNumber;
+
+    /**
+     * 一卡通账户状态(0-未开户  1-已开户  -1已销户)
+     */
+    @ExcelProperty(value = "一卡通账户状态", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(readConverterExp = "0=-未开户,1=-已开户,-=1已销户")
+    private String accountStatus;
+
+    /**
+     * 账户是否被冻结,见sys_yes_no字典类型
+     */
+    @ExcelProperty(value = "账户是否被冻结,见sys_yes_no字典类型")
+    private String freezeStatus;
+
+    /**
+     * 消费密码
+     */
+    @ExcelProperty(value = "消费密码")
+    private String consumePwd;
+
+    /**
+     * 账户流水号
+     */
+    @ExcelProperty(value = "账户流水号")
+    private Long userNo;
+
+    /**
+     * 账户卡片类型
+     */
+    @ExcelProperty(value = "账户卡片类型")
+    private Long cardType;
+
+    /**
+     * 账户有效期
+     */
+    @ExcelProperty(value = "账户有效期")
+    private Date lifespan;
+
+    /**
+     * 64位2进制数据,某位的数据1代表具备某个属性
+     */
+    @ExcelProperty(value = "64位2进制数据,某位的数据1代表具备某个属性")
+    private Long userAttr;
+
+    /**
+     * 人脸照片地址
+     */
+    @ExcelProperty(value = "人脸照片地址")
+    private String photo;
+
+    /**
+     * 人员编制,对应 ZXXBZLB 字典类型
+     */
+    @ExcelProperty(value = "人员编制,对应 ZXXBZLB 字典类型")
+    private String formation;
+
+    /**
+     * 是否隐藏,见sys_yes_no字典类型,内置的系统账号是需要隐藏的
+     */
+    @ExcelProperty(value = "是否隐藏,见sys_yes_no字典类型,内置的系统账号是需要隐藏的")
+    private String hidden;
+
+    /**
+     * 唯一身份标识,第三方统一身份认证ID
+     */
+    @ExcelProperty(value = "唯一身份标识,第三方统一身份认证ID")
+    private String otherId;
+
+    /**
+     * 第三方人员状态
+     */
+    @ExcelProperty(value = "第三方人员状态")
+    private String userState;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+    /**
+     * 最后登录IP
+     */
+    @ExcelProperty(value = "最后登录IP")
+    private String loginIp;
+
+    /**
+     * 最后登录时间
+     */
+    @ExcelProperty(value = "最后登录时间")
+    private Date loginDate;
+
+    /**
+     * 账户状态,见sys_normal_disable字典类型
+     */
+    @ExcelProperty(value = "账户状态,见sys_normal_disable字典类型")
+    private String status;
+
+    /**
+     * 部门名
+     */
+//    @Translation(type = TransConstant.DEPT_ID_TO_NAME, mapper = "deptId")
+    private String deptName;
+
+    /**
+     * 卡类名
+     */
+//    @Translation(type = TransConstant.CARD_TYPE_ID_TO_NAME, mapper = "cardType")
+    private String cardTypeName;
+
+    /**
+     * 账户余额
+     */
+//    @Translation(type = TransConstant.USER_ID_TO_BALANCE, mapper = "userId")
+    private String accountBalance;
+
+    /**
+     * 账户发卡信息
+     */
+//    @Translation(type = TransConstant.USER_ID_TO_CARD_INFO, mapper = "userId")
+    private String accountCard;
+}

+ 8 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/payment/mapper/PtUserAccountMapper.java

@@ -1,6 +1,12 @@
 package org.dromara.backstage.payment.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Param;
+import org.dromara.backstage.basics.domain.PtOperator;
+import org.dromara.backstage.basics.domain.vo.PtOperatorVo;
 import org.dromara.backstage.payment.domain.PtUserAccount;
+import org.dromara.backstage.payment.domain.vo.PtUserAccount4SelectVo;
 import org.dromara.backstage.payment.domain.vo.PtUserAccountVo;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 
@@ -12,4 +18,6 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
  */
 public interface PtUserAccountMapper extends BaseMapperPlus<PtUserAccount, PtUserAccountVo> {
 
+    Page<PtUserAccount4SelectVo> customPageList(@Param("page") Page<PtUserAccount> page, @Param("ew") Wrapper<PtUserAccount> wrapper);
+
 }

+ 2 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/payment/service/IPtUserAccountService.java

@@ -1,5 +1,6 @@
 package org.dromara.backstage.payment.service;
 
+import org.dromara.backstage.payment.domain.vo.PtUserAccount4SelectVo;
 import org.dromara.backstage.payment.domain.vo.PtUserAccountVo;
 import org.dromara.backstage.payment.domain.bo.PtUserAccountBo;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -32,6 +33,7 @@ public interface IPtUserAccountService {
      * @return 一卡通账户分页列表
      */
     TableDataInfo<PtUserAccountVo> queryPageList(PtUserAccountBo bo, PageQuery pageQuery);
+    TableDataInfo<PtUserAccount4SelectVo> queryPageList4Select(PtUserAccountBo bo, PageQuery pageQuery);
 
     /**
      * 查询符合条件的一卡通账户列表

+ 28 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/payment/service/impl/PtUserAccountServiceImpl.java

@@ -1,8 +1,10 @@
 package org.dromara.backstage.payment.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import lombok.extern.slf4j.Slf4j;
 import org.dromara.backstage.cardCenter.service.IPtCardService;
+import org.dromara.backstage.payment.domain.vo.PtUserAccount4SelectVo;
 import org.dromara.backstage.payment.service.IPtBagService;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
@@ -67,6 +69,16 @@ public class PtUserAccountServiceImpl implements IPtUserAccountService {
         return TableDataInfo.build(result);
     }
 
+
+    @Override
+    public TableDataInfo<PtUserAccount4SelectVo> queryPageList4Select(PtUserAccountBo bo, PageQuery pageQuery) {
+        // 方法1. 使用子查询,使得where 后 只有一个表(效率会低点) 方法2. 使用queryWrapper 自己指定字段,字段名带表别名
+        QueryWrapper<PtUserAccount> wrapper = buildQueryWrapper(bo, "u");
+        wrapper.orderByAsc("u.dept_id").orderByAsc("u.real_name");
+        Page<PtUserAccount4SelectVo> result = baseMapper.customPageList(pageQuery.build(), wrapper);
+        return TableDataInfo.build(result);
+    }
+
     /**
      * 查询符合条件的一卡通账户列表
      *
@@ -115,6 +127,22 @@ public class PtUserAccountServiceImpl implements IPtUserAccountService {
         return lqw;
     }
 
+    private QueryWrapper<PtUserAccount> buildQueryWrapper(PtUserAccountBo bo,String tableAlias) {
+        QueryWrapper<PtUserAccount> wrapper = new QueryWrapper<>();
+        String columnPrefix = "";
+        if(StringUtils.isNotBlank(tableAlias)){
+            columnPrefix = tableAlias + ".";
+        }
+        wrapper.eq(bo.getPostId() != null, columnPrefix+"post_id", bo.getPostId());
+        wrapper.eq(bo.getDeptId() != null, columnPrefix+"dept_id", bo.getDeptId());
+        wrapper.eq(StringUtils.isNotBlank(bo.getUserNumb()), columnPrefix+"user_numb", bo.getUserNumb());
+        wrapper.like(StringUtils.isNotBlank(bo.getRealName()), columnPrefix+"real_name", bo.getRealName());
+        wrapper.eq(StringUtils.isNotBlank(bo.getAccountStatus()), columnPrefix+"account_status", bo.getAccountStatus());
+        wrapper.eq(StringUtils.isNotBlank(bo.getFreezeStatus()), columnPrefix+"freeze_status", bo.getFreezeStatus());
+        wrapper.eq(StringUtils.isNotBlank(bo.getStatus()), columnPrefix+"status", bo.getStatus());
+        return wrapper;
+    }
+
     /**
      * 新增一卡通账户
      *

+ 5 - 0
ruoyi-modules/ruoyi-backstage/src/main/resources/mapper/payment/PtUserAccountMapper.xml

@@ -45,4 +45,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <result property="updateTime"    column="update_time"    />
             <result property="userType"    column="user_type"    />
     </resultMap>
+
+    <select id="customPageList" resultType="org.dromara.backstage.payment.domain.vo.PtUserAccount4SelectVo">
+        select u.*,a.dept_name deptName from t_pt_userAccount u left join t_sys_dept a
+        on u.dept_id = a.dept_id and u.del_flag = '0' and a.del_flag = '0' ${ew.customSqlSegment}
+    </select>
 </mapper>