短信历史记录查询

171 阅读1分钟

SysMessageHistoryListMapper

public interface SysMessageHistoryListMapper extends BaseMapper<SysMessageHistoryList> {
@Select("select * from (  select B.ID,B.REALNAME,A.CREATE_TIME,A.ORG_ID,A.FORM_TYPE_NAME,A.ACCEPT_USER_ID,A.CONTENT,A.SEND_TYPE from phone_receipt_message A join sys_user b on a.ACCEPT_USER_ID = b.id )${ew.customSqlSegment}")
    IPage<SysMessageHistoryList> allUnitsLastProject(Page<SysMessageHistoryList> page, @Param(Constants.WRAPPER) Wrapper<SysMessageHistoryList> queryWrapper);

SysMessageHistoryListController

@Slf4j
@RestController
@RequestMapping("/message/sysMessageHistoryList")
public class SysMessageHistoryListController {
    @Autowired
    private SysMessageHistoryListMapper sysMessageHistoryListMapper;
    @GetMapping(value = "/List")
    public Result SysMessageHistoryListDataQuery(SysMessageHistoryList sysMessageHistoryList,
                                            @RequestParam(name = "pageNo", required = true) Integer pageNo,
                                            @RequestParam(name = "pageSize", required = true) Integer pageSize,
                                            @RequestParam(name = "keyword", required = false) String keyword,
                                                 HttpServletRequest req
    ) {
//        定义一个分页的功能
        Result<IPage<SysMessageHistoryList>> result = new Result<>();
//        定义获取数据库的表
        QueryWrapper<SysMessageHistoryList> queryWrapper = QueryGenerator.initQueryWrapper(sysMessageHistoryList, req.getParameterMap());
//        将参数orgId去查询数据库中的数据  并进行升序查询
        String orgId=sysMessageHistoryList.getOrgId();
        queryWrapper.eq("org_id",orgId).orderByDesc("create_time");
      // 模糊查询  发送内容
        String content=sysMessageHistoryList.getContent();
            queryWrapper.like("content",keyword);
        //   筛选日期 参数 beginDate  finishDate
        if(req.getParameterMap().get("beginDate") !=null){
            String beginDate = req.getParameterMap().get("beginDate")[0];
            String finishDate = req.getParameterMap().get("finishDate")[0];
            if (!StringUtils.isEmpty(beginDate) || StringUtils.isEmpty(finishDate)) {
                DateTime beginOfDay = DateUtil.beginOfDay(DateUtil.parse(beginDate));
                DateTime endOfDay = DateUtil.endOfDay(DateUtil.parse(finishDate));
                queryWrapper.ge("create_time", beginOfDay).le("create_time", endOfDay);
            }
        }
//        定义一个查询到表的列表的pageList
        IPage<SysMessageHistoryList> pageList = null;
//        定义并将传入的page数据赋值
        Page<SysMessageHistoryList> page = new Page<SysMessageHistoryList>(pageNo, pageSize);
//        将根据参数搜索到的数据赋值给pageList
        //allUnitsLastProject 去查询关联后的表里的数据
        pageList =sysMessageHistoryListMapper.allUnitsLastProject(page, queryWrapper);
        System.out.println(pageList);
//        返回pagelist数据给前端
        result.setResult(pageList);
        return result;
    }
}

/**
 * @Description: 短信历史记录查询
 * @author: jeecg-boot
 * @date: 2023/6/16
 * @version: V1.0
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("phone_receipt_message")

public class SysMessageHistoryList {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(type = IdType.ASSIGN_UUID)
    private String id;
    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String createBy;
    @ApiModelProperty(value = "创建时间")
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * 更新人
     */
    @ApiModelProperty(value = "更新人")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    /**
     * 更新日期
     */
    @ApiModelProperty(value = "更新日期")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /**
     * 所属部门
     */
    private String sysOrgCode;
    /**
     * 单位Id
     */
    private String orgId;


    /**
     * 单据类型
     */
    private  String formTypeName;

    /**
     * 接受人
     */
    private  String acceptUserName;

    /**
     * 接受人ID
     */
    private  String acceptUserId;

    /**
     * 发送内容
     */
    private  String content;

    /**
     * 单据ID
     */
    private  String formId;

    /**
     * 单据明细ID
     */
    private  String detailId;

    /**
     * 单据类型CODE
     */
    private  String formTypeCode;

    /**
     * 发送类型
     */
    private  String sendType;

    /**
     * 接受手机号
     */
    private  String phone;
    /**
     * 真实姓名 sys_user里的字段
     */
    private  String realname;
}

SysMessageHistoryList.vue

<template>
  <a-card :bordered="false">
    <!-- 查询区域 -->
    <div class="table-page-search-wrapper">
      <a-form layout="inline" @keyup.enter.native="searchQuery">

        <a-row :gutter="24">
          <a-col :md="6" :sm="8">
              <a-form-item label="日期筛选">
                <a-range-picker v-model="dateValue"  allowClear format="YYYY-MM-DD" @change="onDateChange" />
              </a-form-item>
          </a-col>
          <a-col :md="4" :sm="8">
            <a-form-item label="单据类型">
              <a-input placeholder="请输入单据类型" v-model.trim="queryParam.formTypeName"></a-input>
            </a-form-item>
          </a-col>
<!--          发送内容做了模糊查询,其他都是完整匹配-->
          <a-col :md="6" :sm="8">
            <a-form-item label="发送内容">
              <a-input placeholder="请输入发送内容" v-model.trim="content"></a-input>
            </a-form-item>
          </a-col>
            <a-col :md="4" :sm="8">
              <a-form-item label="接收人">
                <a-input placeholder="请输入接收人" v-model.trim="queryParam.realname"></a-input>
              </a-form-item>
            </a-col>
          <a-col :md="4" :sm="8">
            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
              <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
            </span>
          </a-col>

        </a-row>
      </a-form>
    </div>
    <a-spin :spinning='loading'>
    <!-- table区域-begin -->
    <a-table
      :columns="columns"
      :data-source="dataSource"
      :pagination="ipagination"
      @change="handleTableChange">
    <span slot="dictText" slot-scope="text, record">
      短信
    </span>
    </a-table>
    <!-- table区域-end -->
    </a-spin>>
    </a-card>
</template>

<script>
  import { getAction } from '@/api/manage'
  // 表头
  const columns = [
    {
      title: '#',
      dataIndex: '',
      key: 'rowIndex',
      width: 60,
      align: "center",
      customRender: function (t, r, index) {
        return parseInt(index) + 1;
      }
    },
    {
      title: '单据类型',
      align: "left",
      dataIndex: 'formTypeName',
      width: 150,
    },
    {
      title: '发送内容',
      align: "left",
      dataIndex: 'content',
      scopedSlots: {customRender: 'content'},
    },
    {
      title: '发送类型',
      align: "left",
      dataIndex: 'sendType',
      width: 120,
    },
    {
      title: '接收人',
      align: "left",
      width: 100,
      dataIndex: 'realname'
    },
    {
      title: '发送时间',
      align: "center",
      width: 180,
      dataIndex: 'createTime'
    },
    {
      title: '发送方式',
      dataIndex: 'dictText',
      align: "left",
      width: 100,
      scopedSlots: {customRender: 'dictText'},
    },

  ];
  const dataSource = [];
    export default {
        name: 'SysMessageHistoryList',
      data() {
        return {
          queryParam: {},
          dateValue:[],//日期value 没有传参意义 仅作为赋空参数
          content:'',//keyword传参值
          dataSource,
          columns,
          loading: false,
          /* 分页参数 */
          ipagination:{
            current: 1,
            pageSize: 50,
            pageSizeOptions: ['50', '100', '200'],
            showTotal: (total, range) => {
              return range[0] + "-" + range[1] + " 共" + total + "条"
            },
            showQuickJumper: true,
            showSizeChanger: true,
            total: 0
          }
        };
      },
      created() {
          this.getData()
      },
      methods: {
          onDateChange(date, dateString) {
            console.log(dateString[0])
            console.log(dateString[1])
            this.queryParam.beginDate = dateString[0]
            this.queryParam.finishDate = dateString[1]
          },
          getData(){
            let param = Object.assign('',this.queryParam);
            param.orgId =this.$store.state.app.orgId;
            param.pageNo = this.ipagination.current;
            param.pageSize = this.ipagination.pageSize;
            param.keyword=this.content;
            // console.log(param)
            this.loading = true;
                getAction('/message/sysMessageHistoryList/List', param).then((res) => {
                  // console.log('JeecgListMixin',res);
              if (res.success) {
                this.dataSource = res.result.records;
                this.ipagination.total = res.result.total;
              }
              if(res.code===510){
                this.$message.warning(res.message)
              }
              this.loading = false;
            })
          },
        handleTableChange(pagination, filters, sorter) {
          //分页、排序、筛选变化时触发
          this.ipagination = pagination;
          this.getData()
        },
        pageChange({type, currentPage, pageSize, $event}) {
          this.ipagination.current = currentPage
          this.ipagination.pageSize = pageSize
          this.getData()
        },
        searchReset() {
          this.queryParam = {}
          this.content=''
          this.dateValue=[]
          this.ipagination.current = 1
          this.ipagination.pageSize = 50
          this.getData()
        },
        searchQuery() {
          this.ipagination.current = 1
          this.getData()
        }
    }}
</script>

<style scoped>

</style>