增加Redis
parent
37d40ed0ea
commit
35cb63c315
|
@ -16,7 +16,10 @@
|
|||
</description>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-data-redis</artifactId>
|
||||
</dependency>
|
||||
<!-- Spring框架基本的核心工具 -->
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
|
|
|
@ -0,0 +1,268 @@
|
|||
package com.ruoyi.common.core.redis;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.redis.core.BoundSetOperations;
|
||||
import org.springframework.data.redis.core.HashOperations;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.data.redis.core.ValueOperations;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* spring redis 工具类
|
||||
*
|
||||
* @author ruoyi
|
||||
**/
|
||||
@SuppressWarnings(value = { "unchecked", "rawtypes" })
|
||||
@Component
|
||||
public class RedisCache
|
||||
{
|
||||
@Autowired
|
||||
public RedisTemplate redisTemplate;
|
||||
|
||||
/**
|
||||
* 缓存基本的对象,Integer、String、实体类等
|
||||
*
|
||||
* @param key 缓存的键值
|
||||
* @param value 缓存的值
|
||||
*/
|
||||
public <T> void setCacheObject(final String key, final T value)
|
||||
{
|
||||
redisTemplate.opsForValue().set(key, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* 缓存基本的对象,Integer、String、实体类等
|
||||
*
|
||||
* @param key 缓存的键值
|
||||
* @param value 缓存的值
|
||||
* @param timeout 时间
|
||||
* @param timeUnit 时间颗粒度
|
||||
*/
|
||||
public <T> void setCacheObject(final String key, final T value, final Integer timeout, final TimeUnit timeUnit)
|
||||
{
|
||||
redisTemplate.opsForValue().set(key, value, timeout, timeUnit);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置有效时间
|
||||
*
|
||||
* @param key Redis键
|
||||
* @param timeout 超时时间
|
||||
* @return true=设置成功;false=设置失败
|
||||
*/
|
||||
public boolean expire(final String key, final long timeout)
|
||||
{
|
||||
return expire(key, timeout, TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置有效时间
|
||||
*
|
||||
* @param key Redis键
|
||||
* @param timeout 超时时间
|
||||
* @param unit 时间单位
|
||||
* @return true=设置成功;false=设置失败
|
||||
*/
|
||||
public boolean expire(final String key, final long timeout, final TimeUnit unit)
|
||||
{
|
||||
return redisTemplate.expire(key, timeout, unit);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取有效时间
|
||||
*
|
||||
* @param key Redis键
|
||||
* @return 有效时间
|
||||
*/
|
||||
public long getExpire(final String key)
|
||||
{
|
||||
return redisTemplate.getExpire(key);
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断 key是否存在
|
||||
*
|
||||
* @param key 键
|
||||
* @return true 存在 false不存在
|
||||
*/
|
||||
public Boolean hasKey(String key)
|
||||
{
|
||||
return redisTemplate.hasKey(key);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得缓存的基本对象。
|
||||
*
|
||||
* @param key 缓存键值
|
||||
* @return 缓存键值对应的数据
|
||||
*/
|
||||
public <T> T getCacheObject(final String key)
|
||||
{
|
||||
ValueOperations<String, T> operation = redisTemplate.opsForValue();
|
||||
return operation.get(key);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除单个对象
|
||||
*
|
||||
* @param key
|
||||
*/
|
||||
public boolean deleteObject(final String key)
|
||||
{
|
||||
return redisTemplate.delete(key);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除集合对象
|
||||
*
|
||||
* @param collection 多个对象
|
||||
* @return
|
||||
*/
|
||||
public boolean deleteObject(final Collection collection)
|
||||
{
|
||||
return redisTemplate.delete(collection) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 缓存List数据
|
||||
*
|
||||
* @param key 缓存的键值
|
||||
* @param dataList 待缓存的List数据
|
||||
* @return 缓存的对象
|
||||
*/
|
||||
public <T> long setCacheList(final String key, final List<T> dataList)
|
||||
{
|
||||
Long count = redisTemplate.opsForList().rightPushAll(key, dataList);
|
||||
return count == null ? 0 : count;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得缓存的list对象
|
||||
*
|
||||
* @param key 缓存的键值
|
||||
* @return 缓存键值对应的数据
|
||||
*/
|
||||
public <T> List<T> getCacheList(final String key)
|
||||
{
|
||||
return redisTemplate.opsForList().range(key, 0, -1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 缓存Set
|
||||
*
|
||||
* @param key 缓存键值
|
||||
* @param dataSet 缓存的数据
|
||||
* @return 缓存数据的对象
|
||||
*/
|
||||
public <T> BoundSetOperations<String, T> setCacheSet(final String key, final Set<T> dataSet)
|
||||
{
|
||||
BoundSetOperations<String, T> setOperation = redisTemplate.boundSetOps(key);
|
||||
Iterator<T> it = dataSet.iterator();
|
||||
while (it.hasNext())
|
||||
{
|
||||
setOperation.add(it.next());
|
||||
}
|
||||
return setOperation;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得缓存的set
|
||||
*
|
||||
* @param key
|
||||
* @return
|
||||
*/
|
||||
public <T> Set<T> getCacheSet(final String key)
|
||||
{
|
||||
return redisTemplate.opsForSet().members(key);
|
||||
}
|
||||
|
||||
/**
|
||||
* 缓存Map
|
||||
*
|
||||
* @param key
|
||||
* @param dataMap
|
||||
*/
|
||||
public <T> void setCacheMap(final String key, final Map<String, T> dataMap)
|
||||
{
|
||||
if (dataMap != null) {
|
||||
redisTemplate.opsForHash().putAll(key, dataMap);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得缓存的Map
|
||||
*
|
||||
* @param key
|
||||
* @return
|
||||
*/
|
||||
public <T> Map<String, T> getCacheMap(final String key)
|
||||
{
|
||||
return redisTemplate.opsForHash().entries(key);
|
||||
}
|
||||
|
||||
/**
|
||||
* 往Hash中存入数据
|
||||
*
|
||||
* @param key Redis键
|
||||
* @param hKey Hash键
|
||||
* @param value 值
|
||||
*/
|
||||
public <T> void setCacheMapValue(final String key, final String hKey, final T value)
|
||||
{
|
||||
redisTemplate.opsForHash().put(key, hKey, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取Hash中的数据
|
||||
*
|
||||
* @param key Redis键
|
||||
* @param hKey Hash键
|
||||
* @return Hash中的对象
|
||||
*/
|
||||
public <T> T getCacheMapValue(final String key, final String hKey)
|
||||
{
|
||||
HashOperations<String, String, T> opsForHash = redisTemplate.opsForHash();
|
||||
return opsForHash.get(key, hKey);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取多个Hash中的数据
|
||||
*
|
||||
* @param key Redis键
|
||||
* @param hKeys Hash键集合
|
||||
* @return Hash对象集合
|
||||
*/
|
||||
public <T> List<T> getMultiCacheMapValue(final String key, final Collection<Object> hKeys)
|
||||
{
|
||||
return redisTemplate.opsForHash().multiGet(key, hKeys);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除Hash中的某条数据
|
||||
*
|
||||
* @param key Redis键
|
||||
* @param hKey Hash键
|
||||
* @return 是否成功
|
||||
*/
|
||||
public boolean deleteCacheMapValue(final String key, final String hKey)
|
||||
{
|
||||
return redisTemplate.opsForHash().delete(key, hKey) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得缓存的基本对象列表
|
||||
*
|
||||
* @param pattern 字符串前缀
|
||||
* @return 对象列表
|
||||
*/
|
||||
public Collection<String> keys(final String pattern)
|
||||
{
|
||||
return redisTemplate.keys(pattern);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,93 @@
|
|||
package com.yanzhu.xd.system.domain;
|
||||
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 省市县对象 sys_native
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-10-26
|
||||
*/
|
||||
public class SysNative extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** */
|
||||
private Long id;
|
||||
|
||||
/** */
|
||||
@Excel(name = "")
|
||||
private String address;
|
||||
|
||||
/** */
|
||||
@Excel(name = "")
|
||||
private String provinces;
|
||||
|
||||
/** */
|
||||
@Excel(name = "")
|
||||
private String citiy;
|
||||
|
||||
/** */
|
||||
@Excel(name = "")
|
||||
private String areas;
|
||||
|
||||
public void setId(Long id)
|
||||
{
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Long getId()
|
||||
{
|
||||
return id;
|
||||
}
|
||||
public void setAddress(String address)
|
||||
{
|
||||
this.address = address;
|
||||
}
|
||||
|
||||
public String getAddress()
|
||||
{
|
||||
return address;
|
||||
}
|
||||
public void setProvinces(String provinces)
|
||||
{
|
||||
this.provinces = provinces;
|
||||
}
|
||||
|
||||
public String getProvinces()
|
||||
{
|
||||
return provinces;
|
||||
}
|
||||
public void setCitiy(String citiy)
|
||||
{
|
||||
this.citiy = citiy;
|
||||
}
|
||||
|
||||
public String getCitiy()
|
||||
{
|
||||
return citiy;
|
||||
}
|
||||
public void setAreas(String areas)
|
||||
{
|
||||
this.areas = areas;
|
||||
}
|
||||
|
||||
public String getAreas()
|
||||
{
|
||||
return areas;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("id", getId())
|
||||
.append("address", getAddress())
|
||||
.append("provinces", getProvinces())
|
||||
.append("citiy", getCitiy())
|
||||
.append("areas", getAreas())
|
||||
.toString();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,61 @@
|
|||
package com.yanzhu.xd.system.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import com.yanzhu.xd.system.domain.SysNative;
|
||||
|
||||
/**
|
||||
* 省市县Mapper接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-10-26
|
||||
*/
|
||||
public interface SysNativeMapper
|
||||
{
|
||||
/**
|
||||
* 查询省市县
|
||||
*
|
||||
* @param id 省市县ID
|
||||
* @return 省市县
|
||||
*/
|
||||
public SysNative selectSysNativeById(Long id);
|
||||
|
||||
/**
|
||||
* 查询省市县列表
|
||||
*
|
||||
* @param sysNative 省市县
|
||||
* @return 省市县集合
|
||||
*/
|
||||
public List<SysNative> selectSysNativeList(SysNative sysNative);
|
||||
|
||||
/**
|
||||
* 新增省市县
|
||||
*
|
||||
* @param sysNative 省市县
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertSysNative(SysNative sysNative);
|
||||
|
||||
/**
|
||||
* 修改省市县
|
||||
*
|
||||
* @param sysNative 省市县
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateSysNative(SysNative sysNative);
|
||||
|
||||
/**
|
||||
* 删除省市县
|
||||
*
|
||||
* @param id 省市县ID
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteSysNativeById(Long id);
|
||||
|
||||
/**
|
||||
* 批量删除省市县
|
||||
*
|
||||
* @param ids 需要删除的数据ID
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteSysNativeByIds(String[] ids);
|
||||
}
|
|
@ -0,0 +1,61 @@
|
|||
package com.yanzhu.xd.system.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.yanzhu.xd.system.domain.SysNative;
|
||||
|
||||
/**
|
||||
* 省市县Service接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-10-26
|
||||
*/
|
||||
public interface ISysNativeService
|
||||
{
|
||||
/**
|
||||
* 查询省市县
|
||||
*
|
||||
* @param id 省市县ID
|
||||
* @return 省市县
|
||||
*/
|
||||
public SysNative selectSysNativeById(Long id);
|
||||
|
||||
/**
|
||||
* 查询省市县列表
|
||||
*
|
||||
* @param sysNative 省市县
|
||||
* @return 省市县集合
|
||||
*/
|
||||
public List<SysNative> selectSysNativeList(SysNative sysNative);
|
||||
|
||||
/**
|
||||
* 新增省市县
|
||||
*
|
||||
* @param sysNative 省市县
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertSysNative(SysNative sysNative);
|
||||
|
||||
/**
|
||||
* 修改省市县
|
||||
*
|
||||
* @param sysNative 省市县
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateSysNative(SysNative sysNative);
|
||||
|
||||
/**
|
||||
* 批量删除省市县
|
||||
*
|
||||
* @param ids 需要删除的数据ID
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteSysNativeByIds(String ids);
|
||||
|
||||
/**
|
||||
* 删除省市县信息
|
||||
*
|
||||
* @param id 省市县ID
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteSysNativeById(Long id);
|
||||
}
|
|
@ -0,0 +1,94 @@
|
|||
package com.yanzhu.xd.system.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.yanzhu.xd.system.mapper.SysNativeMapper;
|
||||
import com.yanzhu.xd.system.domain.SysNative;
|
||||
import com.yanzhu.xd.system.service.ISysNativeService;
|
||||
import com.ruoyi.common.core.text.Convert;
|
||||
|
||||
/**
|
||||
* 省市县Service业务层处理
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-10-26
|
||||
*/
|
||||
@Service
|
||||
public class SysNativeServiceImpl implements ISysNativeService
|
||||
{
|
||||
@Autowired
|
||||
private SysNativeMapper sysNativeMapper;
|
||||
|
||||
/**
|
||||
* 查询省市县
|
||||
*
|
||||
* @param id 省市县ID
|
||||
* @return 省市县
|
||||
*/
|
||||
@Override
|
||||
public SysNative selectSysNativeById(Long id)
|
||||
{
|
||||
return sysNativeMapper.selectSysNativeById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询省市县列表
|
||||
*
|
||||
* @param sysNative 省市县
|
||||
* @return 省市县
|
||||
*/
|
||||
@Override
|
||||
public List<SysNative> selectSysNativeList(SysNative sysNative)
|
||||
{
|
||||
return sysNativeMapper.selectSysNativeList(sysNative);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增省市县
|
||||
*
|
||||
* @param sysNative 省市县
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int insertSysNative(SysNative sysNative)
|
||||
{
|
||||
return sysNativeMapper.insertSysNative(sysNative);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改省市县
|
||||
*
|
||||
* @param sysNative 省市县
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int updateSysNative(SysNative sysNative)
|
||||
{
|
||||
return sysNativeMapper.updateSysNative(sysNative);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除省市县对象
|
||||
*
|
||||
* @param ids 需要删除的数据ID
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteSysNativeByIds(String ids)
|
||||
{
|
||||
return sysNativeMapper.deleteSysNativeByIds(Convert.toStrArray(ids));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除省市县信息
|
||||
*
|
||||
* @param id 省市县ID
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteSysNativeById(Long id)
|
||||
{
|
||||
return sysNativeMapper.deleteSysNativeById(id);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package com.yanzhu.xd.system.task;
|
||||
|
||||
import com.yanzhu.xd.system.service.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component("attendanceJgwTask")
|
||||
public class AttendanceJgwTask {
|
||||
|
||||
@Autowired
|
||||
private ISysNativeService sysNativeService;
|
||||
|
||||
@Autowired
|
||||
ISurProjectAttendanceUserService attendanceUserService;
|
||||
|
||||
@Autowired
|
||||
ISurProjectAttendanceCfgService attendanceCfgService;
|
||||
|
||||
@Autowired
|
||||
ISurProjectAttendanceDataService attendanceDataService;
|
||||
|
||||
@Autowired
|
||||
ISurProjectAttendanceGroupService attendanceGroupService;
|
||||
|
||||
}
|
|
@ -0,0 +1,74 @@
|
|||
<?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.yanzhu.xd.system.mapper.SysNativeMapper">
|
||||
|
||||
<resultMap type="SysNative" id="SysNativeResult">
|
||||
<result property="id" column="id" />
|
||||
<result property="address" column="address" />
|
||||
<result property="provinces" column="provinces" />
|
||||
<result property="citiy" column="citiy" />
|
||||
<result property="areas" column="areas" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectSysNativeVo">
|
||||
select id, address, provinces, citiy, areas from sys_native
|
||||
</sql>
|
||||
|
||||
<select id="selectSysNativeList" parameterType="SysNative" resultMap="SysNativeResult">
|
||||
<include refid="selectSysNativeVo"/>
|
||||
<where>
|
||||
<if test="address != null and address != ''"> and address = #{address}</if>
|
||||
<if test="provinces != null and provinces != ''"> and provinces = #{provinces}</if>
|
||||
<if test="citiy != null and citiy != ''"> and citiy = #{citiy}</if>
|
||||
<if test="areas != null and areas != ''"> and areas = #{areas}</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectSysNativeById" parameterType="Long" resultMap="SysNativeResult">
|
||||
<include refid="selectSysNativeVo"/>
|
||||
where id = #{id}
|
||||
</select>
|
||||
|
||||
<insert id="insertSysNative" parameterType="SysNative">
|
||||
insert into sys_native
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="id != null">id,</if>
|
||||
<if test="address != null">address,</if>
|
||||
<if test="provinces != null">provinces,</if>
|
||||
<if test="citiy != null">citiy,</if>
|
||||
<if test="areas != null">areas,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="id != null">#{id},</if>
|
||||
<if test="address != null">#{address},</if>
|
||||
<if test="provinces != null">#{provinces},</if>
|
||||
<if test="citiy != null">#{citiy},</if>
|
||||
<if test="areas != null">#{areas},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<update id="updateSysNative" parameterType="SysNative">
|
||||
update sys_native
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="address != null">address = #{address},</if>
|
||||
<if test="provinces != null">provinces = #{provinces},</if>
|
||||
<if test="citiy != null">citiy = #{citiy},</if>
|
||||
<if test="areas != null">areas = #{areas},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
<delete id="deleteSysNativeById" parameterType="Long">
|
||||
delete from sys_native where id = #{id}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteSysNativeByIds" parameterType="String">
|
||||
delete from sys_native where id in
|
||||
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
</mapper>
|
Loading…
Reference in New Issue