Forráskód Böngészése

软件应用管理,3.13.22:06

Jessica Wong 1 éve
szülő
commit
e19affa4cd

+ 25 - 3
.idea/workspace.xml

@@ -5,7 +5,28 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="46b159bd-08ca-42f0-b80f-41d4944a8a29" name="Changes" comment="增加master缺失文件,3.11">
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/om/controller/admin/ManualController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/om/controller/admin/ManualController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/om/controller/admin/AppsClientsController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/om/controller/admin/AppsController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/om/controller/admin/AppsDescController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/om/entity/po/Apps.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/om/entity/po/AppsClients.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/om/entity/po/AppsDesc.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/om/entity/vo/AppsAddVO.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/om/entity/vo/AppsVO.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/om/mapper/AppsClientsMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/om/mapper/AppsDescMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/om/mapper/AppsMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/om/service/IAppsClientsService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/om/service/IAppsDescService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/om/service/IAppsService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/om/service/impl/AppsClientsServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/om/service/impl/AppsDescServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/om/service/impl/AppsServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/AppsClientsMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/AppsDescMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/AppsMapper.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/om/service/impl/DiagClientsServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/om/service/impl/DiagClientsServiceImpl.java" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -66,10 +87,10 @@
     "SHARE_PROJECT_CONFIGURATION_FILES": "true",
     "Spring Boot.OperationApplication.executor": "Run",
     "WebServerToolWindowFactoryState": "false",
-    "git-widget-placeholder": "permission-wxy",
+    "git-widget-placeholder": "master",
     "ignore.virus.scanning.warn.message": "true",
     "kotlin-language-version-configured": "true",
-    "last_opened_file_path": "C:/Users/wxy/IdeasProjects/outsourcing/OperationSystem/pom.xml",
+    "last_opened_file_path": "C:/Users/wxy/IdeasProjects/outsourcing/OperationSystem/src/main/resources/mapper",
     "node.js.detected.package.eslint": "true",
     "node.js.detected.package.tslint": "true",
     "node.js.selected.package.eslint": "(autodetect)",
@@ -213,6 +234,7 @@
       <workItem from="1709599670703" duration="7522000" />
       <workItem from="1710143546149" duration="258000" />
       <workItem from="1710143821704" duration="561000" />
+      <workItem from="1710335409948" duration="1570000" />
     </task>
     <task id="LOCAL-00001" summary="管理员登录">
       <option name="closed" value="true" />

+ 18 - 0
src/main/java/com/om/controller/admin/AppsClientsController.java

@@ -0,0 +1,18 @@
+package com.om.controller.admin;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 应用与客户关联表 前端控制器
+ * </p>
+ *
+ * @author henry-ong
+ * @since 2024-03-12
+ */
+@RestController
+@RequestMapping("/apps-clients")
+public class AppsClientsController {
+
+}

+ 97 - 0
src/main/java/com/om/controller/admin/AppsController.java

@@ -0,0 +1,97 @@
+package com.om.controller.admin;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.om.entity.po.Apps;
+import com.om.entity.po.AppsClients;
+import com.om.entity.po.AppsDesc;
+import com.om.entity.vo.AppsAddVO;
+import com.om.service.IAppsClientsService;
+import com.om.service.IAppsDescService;
+import com.om.service.IAppsService;
+import com.om.utils.Result;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+/**
+ * <p>
+ * 软件应用表 前端控制器
+ * </p>
+ *
+ * @author henry-ong
+ * @since 2024-03-12
+ */
+@RestController
+@RequestMapping("/apps")
+public class AppsController {
+    private final IAppsService appsService;
+    private final IAppsDescService appsDescService;
+    private final IAppsClientsService appsClientsService;
+
+    @ApiOperation("根据ID删除应用软件接口")
+    @DeleteMapping("/delete/{id}")
+    public Result<Object> delete(@PathVariable(name = "id") Integer id) {
+        return Result.succ(appsService.removeById(id));
+    }
+
+    public AppsController(IAppsService appsService, IAppsDescService appsDescService, IAppsClientsService appsClientsService) {
+        this.appsService = appsService;
+        this.appsDescService = appsDescService;
+        this.appsClientsService = appsClientsService;
+    }
+
+    @ApiOperation("分页查询维修手册接口")
+    @GetMapping("/page")
+    public Result<Object> findPage(@RequestParam Integer pageNum,
+                                   @RequestParam Integer pageSize,
+                                   @RequestParam(defaultValue = "") String code,
+                                   @RequestParam(defaultValue = "") String title) {
+        return Result.succ(appsService.findApps(new Page<>(pageNum, pageSize), code, title));
+    }
+
+    @ApiOperation("新增多语言版本App接口")
+    @PostMapping("/savemore")
+    @Transactional
+    public Result<Object> saveMore(@RequestBody AppsAddVO appsAddVO) {
+        Collection<AppsClients> ac = new ArrayList<>();
+        Collection<AppsDesc> ad = new ArrayList<>();
+        Apps apps = new Apps();
+        apps.setCreateTime(appsAddVO.getCreateTime());
+        apps.setFileName(appsAddVO.getFileName());
+        apps.setVersion(appsAddVO.getVersion());
+        apps.setFileSize(appsAddVO.getFileSize());
+        apps.setSavePath(appsAddVO.getSavePath());
+        apps.setUpdateTime(appsAddVO.getUpdateTime());
+        apps.setUploadBy(appsAddVO.getUploadBy());
+        apps.setUType(appsAddVO.getUType());
+        apps.setStatus(appsAddVO.getStatus());
+        if (appsService.save(apps)) {
+            String[] clients = appsAddVO.getNumbers();
+            for (String client : clients) {
+                AppsClients appsClients = new AppsClients();
+                appsClients.setClientNum(client);
+                appsClients.setAppId(apps.getId());
+                ac.add(appsClients);
+            }
+            if(appsClientsService.saveBatch(ac)) {
+                String[] languages = appsAddVO.getLanguages();
+                String[] descriptions = appsAddVO.getDescriptions();
+                for (int i = 0; i < languages.length; i++) {
+                    AppsDesc appsDesc = new AppsDesc();
+                    appsDesc.setLanguage(languages[i]);
+                    appsDesc.setDescription(descriptions[i]);
+                    appsDesc.setAppId(apps.getId());
+                    ad.add(appsDesc);
+                }
+                return Result.succ(appsDescService.saveBatch(ad));
+            } else {
+                return Result.fail("客户端管理插入失败!");
+            }
+        } else {
+            return Result.fail("软件版本插入失败!");
+        }
+    }
+}

+ 18 - 0
src/main/java/com/om/controller/admin/AppsDescController.java

@@ -0,0 +1,18 @@
+package com.om.controller.admin;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 应用描述表 前端控制器
+ * </p>
+ *
+ * @author henry-ong
+ * @since 2024-03-12
+ */
+@RestController
+@RequestMapping("/apps-desc")
+public class AppsDescController {
+
+}

+ 73 - 0
src/main/java/com/om/entity/po/Apps.java

@@ -0,0 +1,73 @@
+package com.om.entity.po;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 软件应用表
+ * </p>
+ *
+ * @author henry-ong
+ * @since 2024-03-12
+ */
+@TableName("apps")
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel(value = "Apps对象", description = "软件应用表")
+public class Apps implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("appid")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty("版本号")
+    private String version;
+
+    @ApiModelProperty("文件名")
+    @TableField(value = "fileName")
+    private String fileName;
+
+    @ApiModelProperty("文件大小")
+    @TableField(value = "fileSize")
+    private String fileSize;
+
+    @ApiModelProperty("文件链接")
+    @TableField(value = "savePath")
+    private String savePath;
+
+    @ApiModelProperty("上传时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(value = "createTime")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty("最近修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(value = "updateTime")
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty("上传人")
+    @TableField(value = "uploadBy")
+    private String uploadBy;
+
+    @ApiModelProperty("状态,0-表示下架,1表示正常")
+    private String status;
+
+    @ApiModelProperty("类型,0-表示普通升级,1表示强制升级")
+    @TableField(value = "uType")
+    private String uType;
+}

+ 40 - 0
src/main/java/com/om/entity/po/AppsClients.java

@@ -0,0 +1,40 @@
+package com.om.entity.po;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 应用与客户关联表
+ * </p>
+ *
+ * @author henry-ong
+ * @since 2024-03-12
+ */
+@AllArgsConstructor
+@NoArgsConstructor
+@Data
+@TableName("apps_clients")
+@ApiModel(value = "AppsClients对象", description = "应用与客户关联表")
+public class AppsClients implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+      @ApiModelProperty("app_client_id")
+        @TableId(value = "id", type = IdType.AUTO)
+      private Integer id;
+
+      @ApiModelProperty("App ID")
+      private Integer appId;
+
+      @ApiModelProperty("客户端编码")
+      private String clientNum;
+}

+ 43 - 0
src/main/java/com/om/entity/po/AppsDesc.java

@@ -0,0 +1,43 @@
+package com.om.entity.po;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 应用描述表
+ * </p>
+ *
+ * @author henry-ong
+ * @since 2024-03-12
+ */
+@AllArgsConstructor
+@NoArgsConstructor
+@Data
+@TableName("apps_desc")
+@ApiModel(value = "AppsDesc对象", description = "应用描述表")
+public class AppsDesc implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+      @ApiModelProperty("app_version_describe_id")
+        @TableId(value = "id", type = IdType.AUTO)
+      private Integer id;
+
+      @ApiModelProperty("App ID")
+      private Integer appId;
+
+      @ApiModelProperty("语言")
+      private String language;
+
+      @ApiModelProperty("描述")
+      private String description;
+}

+ 69 - 0
src/main/java/com/om/entity/vo/AppsAddVO.java

@@ -0,0 +1,69 @@
+package com.om.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 软件应用表
+ * </p>
+ *
+ * @author henry-ong
+ * @since 2024-03-12
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class AppsAddVO implements Serializable {
+      @ApiModelProperty("版本号")
+      private String version;
+
+      @ApiModelProperty("文件名")
+      @TableField(value="fileName")
+      private String fileName;
+
+      @ApiModelProperty("文件大小")
+      @TableField(value="fileSize")
+      private String fileSize;
+
+      @ApiModelProperty("文件链接")
+      @TableField(value="savePath")
+      private String savePath;
+
+      @ApiModelProperty("上传时间")
+      @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+      @TableField(value="createTime")
+      private LocalDateTime createTime;
+
+      @ApiModelProperty("最近修改时间")
+      @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+      @TableField(value="updateTime")
+      private LocalDateTime updateTime;
+
+      @ApiModelProperty("上传人")
+      @TableField(value="uploadBy")
+      private String uploadBy;
+
+      @ApiModelProperty("状态,0-表示下架,1表示正常")
+      private String status;
+
+      @ApiModelProperty("类型,0-表示普通升级,1表示强制升级")
+      @TableField(value="uType")
+      private String uType;
+
+      @ApiModelProperty("语言")
+      private String[] languages;
+
+      @ApiModelProperty("描述")
+      private String[] descriptions;
+
+      @ApiModelProperty("客户端编号")
+      private String[] numbers;
+}

+ 66 - 0
src/main/java/com/om/entity/vo/AppsVO.java

@@ -0,0 +1,66 @@
+package com.om.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 软件应用表
+ * </p>
+ *
+ * @author henry-ong
+ * @since 2024-03-12
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class AppsVO implements Serializable {
+      private static final long serialVersionUID = 1L;
+
+      @ApiModelProperty("appid")
+      @TableId(value = "id", type = IdType.AUTO)
+      private Integer id;
+
+      @ApiModelProperty("版本号")
+      private String version;
+
+      @ApiModelProperty("文件名")
+      private String fileName;
+
+      @ApiModelProperty("文件大小")
+      private String fileSize;
+
+      @ApiModelProperty("文件链接")
+      private String savePath;
+
+      @ApiModelProperty("上传时间")
+      @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+      private LocalDateTime createTime;
+
+      @ApiModelProperty("最近修改时间")
+      @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+      private LocalDateTime updateTime;
+
+      @ApiModelProperty("上传人")
+      private String uploadBy;
+
+      @ApiModelProperty("状态,0-表示下架,1表示正常")
+      private String status;
+
+      @ApiModelProperty("类型,0-表示普通升级,1表示强制升级")
+      private String uType;
+
+      @ApiModelProperty("客户端名")
+      private String name;
+
+      @ApiModelProperty("客户端编号")
+      private String number;
+}

+ 16 - 0
src/main/java/com/om/mapper/AppsClientsMapper.java

@@ -0,0 +1,16 @@
+package com.om.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.om.entity.po.AppsClients;
+
+/**
+ * <p>
+ * 应用与客户关联表 Mapper 接口
+ * </p>
+ *
+ * @author henry-ong
+ * @since 2024-03-12
+ */
+public interface AppsClientsMapper extends BaseMapper<AppsClients> {
+
+}

+ 16 - 0
src/main/java/com/om/mapper/AppsDescMapper.java

@@ -0,0 +1,16 @@
+package com.om.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.om.entity.po.AppsDesc;
+
+/**
+ * <p>
+ * 应用描述表 Mapper 接口
+ * </p>
+ *
+ * @author henry-ong
+ * @since 2024-03-12
+ */
+public interface AppsDescMapper extends BaseMapper<AppsDesc> {
+
+}

+ 18 - 0
src/main/java/com/om/mapper/AppsMapper.java

@@ -0,0 +1,18 @@
+package com.om.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.om.entity.po.Apps;
+
+/**
+ * <p>
+ * 软件应用表 Mapper 接口
+ * </p>
+ *
+ * @author henry-ong
+ * @since 2024-03-12
+ */
+public interface AppsMapper extends BaseMapper<Apps> {
+
+    Page<Apps> findApps(Page<Apps> objectPage, String code, String title);
+}

+ 16 - 0
src/main/java/com/om/service/IAppsClientsService.java

@@ -0,0 +1,16 @@
+package com.om.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.om.entity.po.AppsClients;
+
+/**
+ * <p>
+ * 应用与客户关联表 服务类
+ * </p>
+ *
+ * @author henry-ong
+ * @since 2024-03-12
+ */
+public interface IAppsClientsService extends IService<AppsClients> {
+
+}

+ 16 - 0
src/main/java/com/om/service/IAppsDescService.java

@@ -0,0 +1,16 @@
+package com.om.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.om.entity.po.AppsDesc;
+
+/**
+ * <p>
+ * 应用描述表 服务类
+ * </p>
+ *
+ * @author henry-ong
+ * @since 2024-03-12
+ */
+public interface IAppsDescService extends IService<AppsDesc> {
+
+}

+ 18 - 0
src/main/java/com/om/service/IAppsService.java

@@ -0,0 +1,18 @@
+package com.om.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.om.entity.po.Apps;
+
+/**
+ * <p>
+ * 软件应用表 服务类
+ * </p>
+ *
+ * @author henry-ong
+ * @since 2024-03-12
+ */
+public interface IAppsService extends IService<Apps> {
+
+    Page<Apps> findApps(Page<Apps> objectPage, String code, String title);
+}

+ 20 - 0
src/main/java/com/om/service/impl/AppsClientsServiceImpl.java

@@ -0,0 +1,20 @@
+package com.om.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.om.entity.po.AppsClients;
+import com.om.mapper.AppsClientsMapper;
+import com.om.service.IAppsClientsService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 应用与客户关联表 服务实现类
+ * </p>
+ *
+ * @author henry-ong
+ * @since 2024-03-12
+ */
+@Service
+public class AppsClientsServiceImpl extends ServiceImpl<AppsClientsMapper, AppsClients> implements IAppsClientsService {
+
+}

+ 20 - 0
src/main/java/com/om/service/impl/AppsDescServiceImpl.java

@@ -0,0 +1,20 @@
+package com.om.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.om.entity.po.AppsDesc;
+import com.om.mapper.AppsDescMapper;
+import com.om.service.IAppsDescService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 应用描述表 服务实现类
+ * </p>
+ *
+ * @author henry-ong
+ * @since 2024-03-12
+ */
+@Service
+public class AppsDescServiceImpl extends ServiceImpl<AppsDescMapper, AppsDesc> implements IAppsDescService {
+
+}

+ 30 - 0
src/main/java/com/om/service/impl/AppsServiceImpl.java

@@ -0,0 +1,30 @@
+package com.om.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.om.entity.po.Apps;
+import com.om.mapper.AppsMapper;
+import com.om.service.IAppsService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 软件应用表 服务实现类
+ * </p>
+ *
+ * @author henry-ong
+ * @since 2024-03-12
+ */
+@Service
+public class AppsServiceImpl extends ServiceImpl<AppsMapper, Apps> implements IAppsService {
+    private final AppsMapper appsMapper;
+
+    public AppsServiceImpl(AppsMapper appsMapper) {
+        this.appsMapper = appsMapper;
+    }
+
+    @Override
+    public Page<Apps> findApps(Page<Apps> objectPage, String code, String title) {
+        return appsMapper.findApps(objectPage, code, title);
+    }
+}

+ 5 - 0
src/main/resources/mapper/AppsClientsMapper.xml

@@ -0,0 +1,5 @@
+<?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.om.mapper.AppsClientsMapper">
+
+</mapper>

+ 5 - 0
src/main/resources/mapper/AppsDescMapper.xml

@@ -0,0 +1,5 @@
+<?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.om.mapper.AppsDescMapper">
+
+</mapper>

+ 11 - 0
src/main/resources/mapper/AppsMapper.xml

@@ -0,0 +1,11 @@
+<?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.om.mapper.AppsMapper">
+    <select id="findApps" resultType="com.om.entity.vo.AppsVO">
+        select a.*, c.name, c.number from apps as a, apps_clients as ac, client as c
+        where a.id=ac.app_id and ac.client_num=c.number
+        <if test="code != null and code != ''">
+            and a.uploadBy like concat('%',#{code},'%')
+        </if>
+    </select>
+</mapper>