Browse Source

重构国际化,系统模块设备信息相关接口开发

master
caojianbin 8 months ago
parent
commit
477e663589
  1. 20
      ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/api/UserFirmApi.java
  2. 110
      ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/controller/UserController.java
  3. 19
      ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/controller/UserDeviceBindAppController.java
  4. 41
      ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/entity/api/dto/UpdateDeviceDisable.java
  5. 16
      ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/mapper/UserDeviceBindAppMapper.java
  6. 33
      ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/mapper/UserMapper.java
  7. 15
      ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/service/UserDeviceBindAppService.java
  8. 20
      ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/service/impl/UserDeviceBindServiceAppImpl.java
  9. 54
      ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/utils/UploadFileUtil.java
  10. 25
      ecell-internationalize/ecell-internationalize-system/src/main/resources/com/ecell/internationalize/system/mapper/UserDeviceBindAppMapper.xml
  11. 85
      ecell-internationalize/ecell-internationalize-system/src/main/resources/com/ecell/internationalize/system/mapper/UserMapper.xml

20
ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/api/UserFirmApi.java

@ -0,0 +1,20 @@
package com.ecell.internationalize.system.api;
import com.ecell.internationalize.common.system.entity.SysUser;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
@FeignClient(name = "ecell-internationalize-security",path="/sys_user",contextId ="ecell-internationalize-security01")
public interface UserFirmApi {
/**
* 根据用户名查询
* @Author: liy
* @Date: 2022/7/18 16:34
*/
@GetMapping("user/queryByUserName")
SysUser queryByUserName(@RequestParam("userName") String userName);
}

110
ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/controller/UserController.java

@ -0,0 +1,110 @@
package com.ecell.internationalize.system.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ecell.internationalize.common.core.utils.locale.LocaleUtil;
import com.ecell.internationalize.common.core.web.domain.AjaxResult;
import com.ecell.internationalize.common.system.annotation.SystemLog;
import com.ecell.internationalize.common.system.constant.FieldConstant;
import com.ecell.internationalize.common.system.entity.User;
import com.ecell.internationalize.system.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.Map;
/**
* <p>
* 用户表 前端控制器
* </p>
* @author liy
* @since 2022-07-07
*/
@Api(value="用户信息",tags={"用户信息接口"})
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
/**
* 用户信息条件分页查询
* @Author liy
* @Date 2022/7/7 16:38
* @param map 分页条件查询体
* @Return IPage
*/
@ApiOperation("条件分页查询用户信息")
@PostMapping("/page/queryList")
public AjaxResult queryList(@RequestBody Map<String,Object> map){
return AjaxResult.success(LocaleUtil.getMessage(FieldConstant.MESSAGES_SUCCESS),userService.queryList(map));
}
/**
* 用户操作条件分页查询
* @Author liy
* @Date 2022/7/8 16:38
* @param map 分页条件查询体
* @Return IPage
*/
@ApiOperation("条件分页查询用户操作")
@PostMapping("/page/operatorList")
public AjaxResult queryOperatorList(@RequestBody Map<String,Object> map){
return AjaxResult.success(LocaleUtil.getMessage(FieldConstant.MESSAGES_SUCCESS),userService.queryOperatorList(map));
}
/**
* 用户操作修改密码
* @Author liy
* @Date 2022/7/8 16:38
* @param user 用户
* @Return AjaxResult
*/
@ApiOperation("用户操作修改密码")
@SystemLog(msg =FieldConstant.USER_OPERATOR,operation = FieldConstant.UPDATE_OPERATOR)
@PostMapping("operator/update")
public AjaxResult updateUser(@RequestBody @Valid User user){
return AjaxResult.success(LocaleUtil.getMessage(FieldConstant.MESSAGES_SUCCESS),userService.updateById(user));
}
/**
* 用户操作启用/停用账号
* @Author liy
* @Date 2022/7/8 16:38
* @param user 用户
* @Return AjaxResult
*/
@ApiOperation("用户操作启用/停用账号")
@SystemLog(msg =FieldConstant.USER_OPERATOR,operation = FieldConstant.USER_CHANGE_ACCOUNT)
@PostMapping("operator/changeStatus")
public AjaxResult changeStatus(@RequestBody @ApiParam(value="传整个对象,修改其中status字段,(0:启用,1:停用)",required=true) User user){
return AjaxResult.success(LocaleUtil.getMessage(FieldConstant.MESSAGES_SUCCESS),userService.updateById(user));
}
/**
* 用户操作删除
* @Author liy
* @Date 2022/7/8 16:38
* @param user 用户
* @Return AjaxResult
*/
@ApiOperation("用户操作删除")
@SystemLog(msg =FieldConstant.USER_OPERATOR,operation = FieldConstant.DELETE_OPERATOR)
@PostMapping("operator/del")
public AjaxResult del(@RequestBody User user){
LambdaQueryWrapper<User> lambdaQueryWrapper=new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(User::getUserId,user.getUserId());
return AjaxResult.success(LocaleUtil.getMessage(FieldConstant.MESSAGES_SUCCESS),userService.getBaseMapper().delete(lambdaQueryWrapper));
}
/**
* 渠道查询条件
* @Author liy
* @Date 2022/7/8 16:38
* @Return AjaxResult
*/
@ApiOperation("渠道查询")
@GetMapping("operator/queryChannel")
public AjaxResult queryChannel(){
return AjaxResult.success(LocaleUtil.getMessage(FieldConstant.MESSAGES_SUCCESS),userService.queryChannel());
}
}

19
ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/controller/UserDeviceBindAppController.java

@ -0,0 +1,19 @@
package com.ecell.internationalize.system.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 用户设备绑定表 前端控制器
* </p>
* @author liy
* @since 2022-07-07
*/
@RestController
@RequestMapping("/user_device_bind_app")
public class UserDeviceBindAppController {
}

41
ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/entity/api/dto/UpdateDeviceDisable.java

@ -0,0 +1,41 @@
package com.ecell.internationalize.system.entity.api.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <p>
* 上课禁用(免打扰设置)
* </p>
*
* @author ${author}
* @since 2022-09-13
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class UpdateDeviceDisable implements Serializable {
private static final long serialVersionUID=1L;
@ApiModelProperty(example = "主键Id")
private String id;
@ApiModelProperty(example = "开始响铃时间")
private String alarmStartTime;
@ApiModelProperty(example = "重复星期数为'0', '1'组成的 7 位长度字符串, 表示周一至周日是否有效 eg: '0000011' 周六日有效, '1110000' 为周一二三有效")
private String alarmWeek;
@ApiModelProperty(example = "设备imei")
private String imei;
@ApiModelProperty(example = "结束响铃时间")
private String alarmEndTime;
}

16
ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/mapper/UserDeviceBindAppMapper.java

@ -0,0 +1,16 @@
package com.ecell.internationalize.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ecell.internationalize.common.system.entity.UserDeviceBindApp;
/**
* <p>
* 用户设备绑定 Mapper 接口
* </p>
*
* @author liy
* @since 2022-07-07
*/
public interface UserDeviceBindAppMapper extends BaseMapper<UserDeviceBindApp> {
}

33
ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/mapper/UserMapper.java

@ -0,0 +1,33 @@
package com.ecell.internationalize.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ecell.internationalize.common.system.entity.User;
import com.ecell.internationalize.common.system.entity.VersionRatioHistory;
import com.ecell.internationalize.system.entity.dto.RegisterDto;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* <p>
* 用户 Mapper 接口
* </p>
*
* @author liy
* @since 2022-07-07
*/
public interface UserMapper extends BaseMapper<User> {
Page<User> getList(@Param("page") Page<User> page, @Param("map") Map<String, Object> map);
List<String> queryChannel();
int activeCount(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
List<VersionRatioHistory> monthActiveCount(@Param("currentDate") String currentDate, @Param("preMonthDate") String preMonthDate);
List<RegisterDto> monthRegisterCount(@Param("currentDate") String currentDate, @Param("preMonthDate") String preMonthDate);
}

15
ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/service/UserDeviceBindAppService.java

@ -0,0 +1,15 @@
package com.ecell.internationalize.system.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ecell.internationalize.common.system.entity.UserDeviceBindApp;
/**
* <p>
* 用户设备绑定 服务类
* </p>
* @author liy
* @since 2022-07-07
*/
public interface UserDeviceBindAppService extends IService<UserDeviceBindApp> {
}

20
ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/service/impl/UserDeviceBindServiceAppImpl.java

@ -0,0 +1,20 @@
package com.ecell.internationalize.system.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ecell.internationalize.common.system.entity.UserDeviceBindApp;
import com.ecell.internationalize.system.mapper.UserDeviceBindAppMapper;
import com.ecell.internationalize.system.service.UserDeviceBindAppService;
import org.springframework.stereotype.Service;
/**
* <p>
* 用户设备绑定 服务实现类
* </p>
*
* @author liy
* @since 2022-07-07
*/
@Service
public class UserDeviceBindServiceAppImpl extends ServiceImpl<UserDeviceBindAppMapper, UserDeviceBindApp> implements UserDeviceBindAppService {
}

54
ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/utils/UploadFileUtil.java

@ -0,0 +1,54 @@
package com.ecell.internationalize.system.utils;
import com.ecell.internationalize.common.system.constant.FieldConstant;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
/**
* @Title: UploadFileUtil
* @Author: liy
* @Date: 2022/7/13 17:35
* @Description:
* @Version:1.0
*/
public class UploadFileUtil {
public static String upload(MultipartFile file) throws IOException {
//获取文件名+后缀
String fileName = file.getOriginalFilename();
File targetFile = null;
if (null != fileName && !"".equals(fileName)) {
//获取后缀
String fileF = fileName.substring(fileName.lastIndexOf("."));
// if (!(FieldConstant.JPG.equals(fileF) || FieldConstant.PNG.equals(fileF))) {
// return AjaxResult.error(I18nUtil.getMessage(FieldConstant.UPLOAD_FAIL));
// }
String curTime = new SimpleDateFormat(FieldConstant.DATE_FORMAT).format(new Date());
//新的文件名
fileName = curTime + FieldConstant.CONN_CHAR + new Random().nextInt(1000) + fileF;
//File只会找到项目最外层地址;
File directory = new File(FieldConstant.PATH);
String reportPath = directory.getCanonicalPath();
//获取根目录
File path = new File(reportPath);
//获取文件夹路径
File file1 = new File(path.getAbsolutePath(), FieldConstant.STATIC_IMAGE);
//如果文件夹不存在则创建
if (!file1.exists() && !file1.isDirectory()) {
file1.mkdirs();
}
//将图片存入文件夹
targetFile = new File(file1, fileName);
}
try {
assert targetFile != null;
file.transferTo(targetFile);
} catch (IOException e) {
e.printStackTrace();
}
return fileName;
}
}

25
ecell-internationalize/ecell-internationalize-system/src/main/resources/com/ecell/internationalize/system/mapper/UserDeviceBindAppMapper.xml

@ -0,0 +1,25 @@
<?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.ecell.internationalize.system.mapper.UserDeviceBindAppMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.ecell.internationalize.common.system.entity.UserDeviceBindApp">
<id column="id" property="id" />
<result column="user_id" property="userId" />
<result column="i_mei" property="imei" />
<result column="identity" property="identity" />
<result column="relation" property="relation" />
<result column="relation_image_id" property="relationImageId" />
<result column="create_user" property="createUser" />
<result column="create_time" property="createTime" />
<result column="update_user" property="updateUser" />
<result column="update_time" property="updateTime" />
<result column="bind_status" property="bindStatus" />
<result column="approve_status" property="approveStatus" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, user_id, i_mei, identity, relation, relation_image_id, create_user, create_time, update_user, update_time,bind_status,approve_status
</sql>
</mapper>

85
ecell-internationalize/ecell-internationalize-system/src/main/resources/com/ecell/internationalize/system/mapper/UserMapper.xml

@ -0,0 +1,85 @@
<?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.ecell.internationalize.system.mapper.UserMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.ecell.internationalize.common.system.entity.User">
<id column="user_id" property="userId" />
<result column="access_token" property="accessToken" />
<result column="access_token_time" property="accessTokenTime" />
<result column="password" property="password" />
<result column="name" property="name" />
<result column="status" property="status" />
<result column="sex" property="sex" />
<result column="phone" property="phone" />
<result column="monitor_watch_phone" property="monitorWatchPhone" />
<result column="image" property="image" />
<result column="chat_flag" property="chatFlag" />
<result column="group_id" property="groupId" />
<result column="unread_msg_total" property="unreadMsgTotal" />
<result column="del_msg_time" property="delMsgTime" />
<result column="del_location_time" property="delLocationTime" />
<result column="del_cost_time" property="delCostTime" />
<result column="country" property="country" />
<result column="country_code" property="countryCode" />
<result column="last_use_time" property="lastUseTime" />
<result column="register_time" property="registerTime" />
<result column="last_login_time" property="lastLoginTime" />
<result column="mobile_type" property="mobileType" />
<result column="channel" property="channel" />
<result column="create_user" property="createUser" />
<result column="create_time" property="createTime" />
<result column="update_user" property="updateUser" />
<result column="update_time" property="updateTime" />
<result column="imei" property="imei" />
<result column="user_email" property="userEmail" />
<result column="user_agent" property="userAgent" />
<result column="user_last_time" property="userLastTime" />
<result column="version" property="version" />
<result column="channel_name" property="channelName" />
<result column="relation" property="relation" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
user_id, user_email,user_agent,access_token, access_token_time, password, name, status, sex, phone, monitor_watch_phone, image, chat_flag, group_id, unread_msg_total, del_msg_time, del_location_time, del_cost_time, country, country_code, last_use_time, register_time, last_login_time, mobile_type, channel, create_user, create_time, update_user, update_time
</sql>
<select id="getList" resultMap="BaseResultMap">
select A.user_id,A.name,A.status,A.sex,A.phone,A.image,A.last_login_time,A.channel,A.create_time,A.user_email,A.user_agent,
B.imei,B.relation,C.channel_name,C.version,C.create_time as user_last_time from user A left join user_device_bind_app B ON A.user_id=B.user_id left join version_ratio C ON A.user_id=C.user_id
where 1=1
<if test="map.phone!=null and map.phone!=''">
and A.user_email=#{map.phone}
</if>
<if test="map.imei!=null and map.imei!=''">
and B.imei=#{map.imei}
</if>
<if test="map.channel!=null and map.channel!=''">
and C.channel_name=#{map.channel}
</if>
<if test="map.status!=null and map.status!=''">
and A.status=#{map.status}
</if>
order by A.create_time DESC
</select>
<select id="queryChannel" resultType="java.lang.String">
select DISTINCT channel_name from version_ratio
</select>
<select id="activeCount" resultType="java.lang.Integer">
select count(1) from version_ratio where 1=1
and create_time &gt;=#{startTime}
and create_time &lt;=#{endTime}
</select>
<select id="monthActiveCount" resultType="com.ecell.internationalize.common.system.entity.VersionRatioHistory">
select * from version_ratio_history where 1=1
and history_time &lt;#{currentDate}
and history_time &gt;=#{preMonthDate}
</select>
<select id="monthRegisterCount" resultType="com.ecell.internationalize.system.entity.dto.RegisterDto">
select count(1) as total,convert(create_time,date) as date FROM user
where 1=1
and create_time &lt;#{currentDate}
and create_time &gt;=#{preMonthDate}
GROUP BY create_time
</select>
</mapper>
Loading…
Cancel
Save