Explorar o código

把app安全包软件升级书写完毕(上传部分除外)

itcast hai 1 ano
pai
achega
c7b7d089dc

+ 43 - 2
src/main/java/com/om/controller/admin/AppController.java

@@ -1,9 +1,14 @@
 package com.om.controller.admin;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.om.entity.po.App;
+import com.om.entity.vo.AppVO;
+import com.om.entity.vo.DignosisPageVO;
+import com.om.service.IAppService;
+import com.om.utils.Result;
+import org.springframework.web.bind.annotation.*;
 
-import org.springframework.web.bind.annotation.RestController;
+import javax.annotation.Resource;
 
 /**
  * <p>
@@ -17,4 +22,40 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/app")
 public class AppController {
 
+    @Resource
+    IAppService appService;
+
+    @PostMapping("/add")
+    Result add(@RequestBody AppVO app){
+
+        return appService.add(app);
+    }
+
+    @PostMapping("/delete")
+    Result delete(@RequestBody AppVO app){
+
+        return appService.delete(app);
+    }
+
+    @PostMapping("/downloadFile")
+    Result downloadFile(@RequestBody AppVO app){
+
+        return appService.downloadFile(app);
+    }
+
+    @PostMapping("/getPageList")
+    Result getPageList(@RequestBody DignosisPageVO dignosisPageVO){
+
+        return appService.getPageList(dignosisPageVO);
+    }
+
+    @PostMapping("/edit")
+    Result edit(@RequestBody AppVO app){
+
+        return appService.edit(app);
+    }
+
+
+
+
 }

+ 3 - 0
src/main/java/com/om/entity/po/App.java

@@ -41,6 +41,9 @@ public class App implements Serializable {
     @ApiModelProperty(value = "上传人")
     private String admin;
 
+    @ApiModelProperty(value = "客户端编号")
+    private String clientNums;
+
     @ApiModelProperty(value = "发布时间")
     private LocalDateTime releaseTime;
 

+ 22 - 0
src/main/java/com/om/entity/vo/AppVO.java

@@ -0,0 +1,22 @@
+package com.om.entity.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.web.multipart.MultipartFile;
+
+@Data
+@NoArgsConstructor
+public class AppVO {
+    @ApiModelProperty(value = "客户端id")
+    int id;
+    @ApiModelProperty(value = "客户端编号")
+    String clientNums;
+    @ApiModelProperty(value = "描述")
+    String description;
+    @ApiModelProperty(value = "文件")
+     MultipartFile file;
+    @ApiModelProperty(value = "是否强制升级")
+     Integer isupdate;
+
+}

+ 12 - 0
src/main/java/com/om/service/IAppService.java

@@ -2,6 +2,9 @@ package com.om.service;
 
 import com.om.entity.po.App;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.om.entity.vo.AppVO;
+import com.om.entity.vo.DignosisPageVO;
+import com.om.utils.Result;
 
 /**
  * <p>
@@ -13,4 +16,13 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IAppService extends IService<App> {
 
+    Result add(AppVO app);
+
+    Result delete(AppVO app);
+
+    Result downloadFile(AppVO app);
+
+    Result getPageList(DignosisPageVO dignosisPageVO);
+
+    Result edit(AppVO app);
 }

+ 94 - 0
src/main/java/com/om/service/impl/AppServiceImpl.java

@@ -1,11 +1,26 @@
 package com.om.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.om.entity.po.App;
+import com.om.entity.po.AppVersionDescribe;
+import com.om.entity.po.User;
+import com.om.entity.vo.AppVO;
+import com.om.entity.vo.DignosisPageVO;
 import com.om.mapper.AppMapper;
 import com.om.service.IAppService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.om.service.IAppVersionDescribeService;
+import com.om.service.IUserService;
+import com.om.utils.CommonUtil;
+import com.om.utils.Result;
+import com.om.utils.UserContext;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+
 /**
  * <p>
  *  服务实现类
@@ -17,4 +32,83 @@ import org.springframework.stereotype.Service;
 @Service
 public class AppServiceImpl extends ServiceImpl<AppMapper, App> implements IAppService {
 
+    @Resource
+    IUserService userService;
+    @Resource
+    IAppVersionDescribeService describeService;
+    @Override
+    public Result add(AppVO app) {
+        if (StringUtils.isEmpty(app.getClientNums())){
+            return Result.error();
+        }
+        //保存app表
+        App appSave = new App();
+        appSave.setClientNums(app.getClientNums());
+        appSave.setVersionNum(CommonUtil.appVersion(null));
+        User user = userService.getById(UserContext.getUserId());
+        appSave.setAdmin(user.getNickName());
+        this.save(appSave);
+        //获取保存表的id
+        LambdaQueryWrapper<App> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(App::getAdmin,user.getNickName());
+        queryWrapper.eq(App::getClientNums,app.getClientNums());
+        App newApp = getOne(queryWrapper);
+        Integer id = newApp.getId();
+
+        //保存到另一个表
+        AppVersionDescribe describe = new AppVersionDescribe();
+        describe.setAppId(id);
+        describe.setDescription(app.getDescription());
+        describeService.save(describe);
+
+
+        return Result.ok();
+    }
+
+    @Override
+    public Result delete(AppVO app) {
+        //删除当前表
+        int appId = app.getId();
+        this.removeById(appId);
+        //删除描述表
+        LambdaQueryWrapper<AppVersionDescribe> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(AppVersionDescribe::getAppId,appId);
+        describeService.remove(queryWrapper);
+        return Result.ok();
+    }
+
+    @Override
+    public Result downloadFile(AppVO app) {
+        return null;
+    }
+
+    @Override
+    public Result getPageList(DignosisPageVO dignosisPageVO) {
+
+        Page<App> page = this.lambdaQuery()
+                .like(StringUtils.isNotBlank(dignosisPageVO.getQuery()),App::getAdmin,dignosisPageVO.getQuery())
+                .page(new Page<>(dignosisPageVO.getPageIndex(),dignosisPageVO.getPageSize()));
+
+
+        return Result.ok(page);
+    }
+
+    @Override
+    public Result edit(AppVO app) {
+
+        int appId = app.getId();
+        App newApp = this.getById(appId);
+        newApp.setClientNums(app.getClientNums());
+        this.update(newApp,null);
+
+        //此处运用单表删除
+
+        LambdaQueryWrapper<AppVersionDescribe> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(AppVersionDescribe::getAppId,appId);
+        AppVersionDescribe one = describeService.getOne(queryWrapper);
+        one.setDescription(app.getDescription());
+        describeService.update(one,null);
+
+        return Result.ok();
+    }
 }

+ 39 - 0
src/main/java/com/om/utils/CommonUtil.java

@@ -1,9 +1,48 @@
 package com.om.utils;
 
+import org.apache.commons.lang.StringUtils;
+
+import java.time.LocalDate;
+import java.time.ZoneId;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 public class CommonUtil {
 
+    public static String appVersion(String version){
+        String f = "APP_Y_X_V";
+        // 获取当前日期
+        LocalDate currentDate = LocalDate.now();
+
+        // 将日期转换为时间戳(毫秒)
+        long currentTimestamp = currentDate.atStartOfDay(ZoneId.systemDefault()).toInstant().toEpochMilli();
+
+        String time = "-"+currentTimestamp;
+
+        Integer t = 1;
+        Integer z = 0;
+        Integer w = 0;
+
+        if (StringUtils.isBlank(version)){
+
+            return f+t+"."+z+"."+w+time;
+        }
+        String substring = version.substring(9, 14);
+        String [] s = substring.split(".");
+        int a = Integer.parseInt(s[0]);
+        int b = Integer.parseInt(s[1]);
+        int c = Integer.parseInt(s[2]);
+        c = c+1;
+        b = b+c/10;
+        a = b/10;
+        c = c%10;
+
+        return f+a+"."+b+"."+c+time;
+
+
+
+
+    }
+
 
 }