|
@@ -0,0 +1,175 @@
|
|
|
|
+package com.dragon.tj.portal.service.impl;
|
|
|
|
+
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
+import com.dragon.tj.portal.auth.model.LoginUser;
|
|
|
|
+import com.dragon.tj.portal.common.base.R;
|
|
|
|
+import com.dragon.tj.portal.entity.AppInfo;
|
|
|
|
+import com.dragon.tj.portal.entity.InstallInfo;
|
|
|
|
+import com.dragon.tj.portal.entity.PageParam;
|
|
|
|
+import com.dragon.tj.portal.mapper.app.AppInfoMapper;
|
|
|
|
+import com.dragon.tj.portal.mapper.app.InstallInfoMapper;
|
|
|
|
+import com.dragon.tj.portal.service.AppService;
|
|
|
|
+import com.dragon.tj.portal.service.SysDictService;
|
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
+
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
|
+import java.util.HashMap;
|
|
|
|
+import java.util.List;
|
|
|
|
+import java.util.Map;
|
|
|
|
+
|
|
|
|
+@Service
|
|
|
|
+public class AppServiceImpl implements AppService {
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private AppInfoMapper appInfoMapper;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private InstallInfoMapper installInfoMapper;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private SysDictService sysDictService;
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ * CRUD
|
|
|
|
+ * */
|
|
|
|
+ @Override
|
|
|
|
+ public int add(AppInfo appInfo, LoginUser loginUser) {
|
|
|
|
+ appInfo.setCreateUser(loginUser.getUsername());
|
|
|
|
+
|
|
|
|
+ return appInfoMapper.insert(appInfo);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public int delete(Long id) {
|
|
|
|
+ AppInfo appInfo = new AppInfo();
|
|
|
|
+ appInfo.setId(id);
|
|
|
|
+ appInfo.setDelFlag(1);
|
|
|
|
+
|
|
|
|
+ return appInfoMapper.updateById(appInfo);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public int update(AppInfo appInfo) {
|
|
|
|
+ return appInfoMapper.updateById(appInfo);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public AppInfo detail(Long id) {
|
|
|
|
+ return appInfoMapper.selectById(id);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ * 获取类型
|
|
|
|
+ * */
|
|
|
|
+ @Override
|
|
|
|
+ public R getType() {
|
|
|
|
+ return sysDictService.getDict("app_type");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ * 搜索App
|
|
|
|
+ * */
|
|
|
|
+ @Override
|
|
|
|
+ public Page<AppInfo> search(PageParam<AppInfo> appInfoPage) {
|
|
|
|
+
|
|
|
|
+ AppInfo appInfo = appInfoPage.getParams();
|
|
|
|
+ Page<AppInfo> rowPage = new Page(appInfoPage.getPage(), appInfoPage.getSize());
|
|
|
|
+
|
|
|
|
+ LambdaQueryWrapper<AppInfo> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
+
|
|
|
|
+ //应用名称
|
|
|
|
+ queryWrapper.like(StringUtils.isNotEmpty(appInfo.getSystemName()), AppInfo::getSystemName, appInfo.getSystemName());
|
|
|
|
+ //应用事权单位名称
|
|
|
|
+ queryWrapper.like(StringUtils.isNotEmpty(appInfo.getDeptName()), AppInfo::getDeptName, appInfo.getDeptName());
|
|
|
|
+ //应用类型
|
|
|
|
+ queryWrapper.eq(appInfo.getAppType() != null,AppInfo::getAppType, appInfo.getAppType());
|
|
|
|
+ queryWrapper.eq(appInfo.getDelFlag() != null,AppInfo::getDelFlag, appInfo.getDelFlag());
|
|
|
|
+
|
|
|
|
+ queryWrapper.orderByDesc(AppInfo::getStar);
|
|
|
|
+
|
|
|
|
+ return appInfoMapper.selectPage(rowPage, queryWrapper);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ * 安装应用
|
|
|
|
+ * */
|
|
|
|
+ @Override
|
|
|
|
+ public int install(Integer appId, String userIdcard) {
|
|
|
|
+
|
|
|
|
+ //是否已安装
|
|
|
|
+ QueryWrapper<InstallInfo> wrapper = new QueryWrapper<>();
|
|
|
|
+ wrapper.eq("app_id", appId);
|
|
|
|
+ wrapper.eq("user_idcard", userIdcard);
|
|
|
|
+ InstallInfo installed = installInfoMapper.selectOne(wrapper);
|
|
|
|
+
|
|
|
|
+ if (installed == null) {
|
|
|
|
+ InstallInfo installInfo = new InstallInfo();
|
|
|
|
+ installInfo.setAppId(appId);
|
|
|
|
+ installInfo.setUserIdcard(userIdcard);
|
|
|
|
+
|
|
|
|
+ return installInfoMapper.insert(installInfo);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ installed.setDelFlag(0);
|
|
|
|
+ installed.setUpdateTime(LocalDateTime.now());
|
|
|
|
+
|
|
|
|
+ return installInfoMapper.updateById(installed);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ * 卸载
|
|
|
|
+ * */
|
|
|
|
+ @Override
|
|
|
|
+ public int uninstall(Integer appId, String idCard) {
|
|
|
|
+ InstallInfo installInfo = new InstallInfo();
|
|
|
|
+ installInfo.setDelFlag(1);
|
|
|
|
+ installInfo.setUpdateTime(LocalDateTime.now());
|
|
|
|
+ QueryWrapper<InstallInfo> wrapper = new QueryWrapper<>();
|
|
|
|
+ wrapper.eq("app_id", appId);
|
|
|
|
+ wrapper.eq("user_idcard", idCard);
|
|
|
|
+
|
|
|
|
+ return installInfoMapper.update(installInfo, wrapper);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ * 已安装应用
|
|
|
|
+ * */
|
|
|
|
+ @Override
|
|
|
|
+ public IPage<AppInfo> installApp(PageParam<AppInfo> page, LoginUser loginUser) {
|
|
|
|
+ AppInfo params = page.getParams();
|
|
|
|
+ IPage<AppInfo> iPage = new Page<>(page.getPage(), page.getSize());
|
|
|
|
+
|
|
|
|
+ Map map = new HashMap();
|
|
|
|
+
|
|
|
|
+ map.put("delFlag", params.getDelFlag());
|
|
|
|
+ map.put("idcard", loginUser.getIdCard());
|
|
|
|
+
|
|
|
|
+ return appInfoMapper.getInstalledApp(iPage,map);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ * 应用统计
|
|
|
|
+ * */
|
|
|
|
+ @Override
|
|
|
|
+ public void updateAppStat() {
|
|
|
|
+ //获取app安装次数
|
|
|
|
+ List<Map<String,Long>> apps = installInfoMapper.getAppInstallCount();
|
|
|
|
+ //更新star
|
|
|
|
+ apps.forEach(app ->{
|
|
|
|
+ AppInfo appInfo = new AppInfo();
|
|
|
|
+ appInfo.setId(app.get("appId"));
|
|
|
|
+ appInfo.setStar(app.get("count"));
|
|
|
|
+ appInfoMapper.updateById(appInfo);
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|