commit
d2572ea49d
19 changed files with 598 additions and 6 deletions
@ -0,0 +1,43 @@ |
||||
package com.ccic.safeliab.entity; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableLogic; |
||||
import com.fasterxml.jackson.annotation.JsonFormat; |
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize; |
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; |
||||
import lombok.Data; |
||||
import org.springframework.format.annotation.DateTimeFormat; |
||||
|
||||
import java.util.Date; |
||||
|
||||
@Data |
||||
public class BaseEntity { |
||||
@JsonSerialize( |
||||
using = ToStringSerializer.class |
||||
) |
||||
private Long createdBy; |
||||
@DateTimeFormat( |
||||
pattern = "yyyy-MM-dd HH:mm:ss" |
||||
) |
||||
@JsonFormat( |
||||
pattern = "yyyy-MM-dd HH:mm:ss" |
||||
) |
||||
private Date createAt; |
||||
@JsonSerialize( |
||||
using = ToStringSerializer.class |
||||
) |
||||
private Long updateBy; |
||||
@DateTimeFormat( |
||||
pattern = "yyyy-MM-dd HH:mm:ss" |
||||
) |
||||
@JsonFormat( |
||||
pattern = "yyyy-MM-dd HH:mm:ss" |
||||
) |
||||
private Date updateAt; |
||||
private Integer status; |
||||
@TableLogic |
||||
private Integer isDeleted; |
||||
|
||||
public BaseEntity() { |
||||
} |
||||
|
||||
} |
@ -0,0 +1,80 @@ |
||||
/** |
||||
* Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). |
||||
* <p> |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* <p> |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* <p> |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
package com.ccic.safeliab.entity; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType; |
||||
import com.baomidou.mybatisplus.annotation.TableId; |
||||
import com.baomidou.mybatisplus.annotation.TableLogic; |
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
import com.fasterxml.jackson.annotation.JsonFormat; |
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize; |
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; |
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
|
||||
/** |
||||
* 实体类 |
||||
* |
||||
* @author Chill |
||||
*/ |
||||
@Data |
||||
@TableName("ex_dict") |
||||
public class ExDict extends BaseEntity implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
/** |
||||
* 主键 |
||||
*/ |
||||
// @TableId(value = "id", type = IdType.INPUT)
|
||||
@TableId(value = "id", type = IdType.ID_WORKER) |
||||
@JsonFormat(shape = JsonFormat.Shape.STRING) |
||||
private Long id; |
||||
|
||||
/** |
||||
* 父主键 |
||||
*/ |
||||
@JsonSerialize(using = ToStringSerializer.class) |
||||
private Long parentId; |
||||
|
||||
/** |
||||
* 字典码 |
||||
*/ |
||||
private String code; |
||||
|
||||
/** |
||||
* 字典值 |
||||
*/ |
||||
private Integer dictKey; |
||||
|
||||
/** |
||||
* 字典名称 |
||||
*/ |
||||
private String dictValue; |
||||
|
||||
/** |
||||
* 排序 |
||||
*/ |
||||
private Integer sort; |
||||
|
||||
/** |
||||
* 字典备注 |
||||
*/ |
||||
private String remark; |
||||
|
||||
|
||||
} |
@ -0,0 +1,77 @@ |
||||
package com.ccic.safeliab.entity; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.*; |
||||
import com.fasterxml.jackson.annotation.JsonFormat; |
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
import lombok.experimental.Accessors; |
||||
|
||||
import java.io.Serializable; |
||||
import java.util.Date; |
||||
|
||||
/** |
||||
* <p> |
||||
* 演示 |
||||
* </p> |
||||
* |
||||
* @author testjava |
||||
* @since 2022-11-05 |
||||
*/ |
||||
@Data |
||||
@EqualsAndHashCode(callSuper = false) |
||||
@Accessors(chain = true) |
||||
@TableName("ins_demo") |
||||
public class InsDemo implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
@TableId(value = "id", type = IdType.NONE) |
||||
@JsonFormat(shape = JsonFormat.Shape.STRING) |
||||
private Long id; |
||||
|
||||
/** |
||||
* 编码 |
||||
*/ |
||||
private String code; |
||||
|
||||
/** |
||||
* 名称 |
||||
*/ |
||||
private String name; |
||||
|
||||
/** |
||||
* 創建人ID |
||||
*/ |
||||
@JsonFormat(shape = JsonFormat.Shape.STRING) |
||||
@TableField(fill = FieldFill.INSERT) |
||||
private Long createUser; |
||||
|
||||
/** |
||||
* 修改人ID |
||||
*/ |
||||
@JsonFormat(shape = JsonFormat.Shape.STRING) |
||||
@TableField(fill = FieldFill.INSERT) |
||||
private Long updateUser; |
||||
|
||||
/** |
||||
* 创建时间 |
||||
*/ |
||||
@TableField(fill = FieldFill.INSERT) |
||||
private Date createTime; |
||||
|
||||
/** |
||||
* 修改时间 |
||||
*/ |
||||
@TableField(fill = FieldFill.INSERT_UPDATE) |
||||
private Date updateTime; |
||||
|
||||
/** |
||||
* 状态 |
||||
*/ |
||||
private int status; |
||||
|
||||
/** |
||||
* 删除标识 |
||||
*/ |
||||
private int isDeleted; |
||||
} |
@ -0,0 +1,41 @@ |
||||
/** |
||||
* Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). |
||||
* <p> |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* <p> |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* <p> |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
package com.ccic.safeliab.dao; |
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import com.ccic.safeliab.entity.ExDict; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* Mapper 接口 |
||||
* |
||||
* @author Chill |
||||
*/ |
||||
@Mapper |
||||
public interface DictMapper extends BaseMapper<ExDict> { |
||||
|
||||
|
||||
/** |
||||
* 获取字典表 |
||||
* |
||||
* @param code 字典编号 |
||||
* @return |
||||
*/ |
||||
List<ExDict> getList(String code); |
||||
|
||||
} |
@ -0,0 +1,37 @@ |
||||
/** |
||||
* Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). |
||||
* <p> |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* <p> |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* <p> |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
package com.ccic.safeliab.service; |
||||
|
||||
import com.ccic.safeliab.entity.ExDict; |
||||
import com.ccic.safeliab.support.BaseService; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 服务类 |
||||
* |
||||
* @author edwong |
||||
*/ |
||||
public interface DictService extends BaseService<ExDict> { |
||||
|
||||
/** |
||||
* 获取字典表 |
||||
* |
||||
* @param code 字典编号 |
||||
* @return |
||||
*/ |
||||
List<ExDict> getList(String code); |
||||
} |
@ -0,0 +1,41 @@ |
||||
/** |
||||
* Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). |
||||
* <p> |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* <p> |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* <p> |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
package com.ccic.safeliab.service; |
||||
|
||||
import cn.hutool.crypto.SecureUtil; |
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||
import com.ccic.safeliab.dao.DictMapper; |
||||
import com.ccic.safeliab.entity.ExDict; |
||||
import com.ccic.safeliab.support.BaseServiceImpl; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 服务实现类 |
||||
* |
||||
* @author edwong |
||||
*/ |
||||
@Service |
||||
public class DictServiceImpl extends BaseServiceImpl<DictMapper, ExDict> implements DictService { |
||||
|
||||
|
||||
@Override |
||||
public List<ExDict> getList(String code) { |
||||
return baseMapper.getList(code); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,33 @@ |
||||
/** |
||||
* Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). |
||||
* <p> |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* <p> |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* <p> |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
package com.ccic.safeliab.service; |
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||
import com.ccic.safeliab.entity.Customer; |
||||
import com.ccic.safeliab.vo.CustomerVO; |
||||
|
||||
import java.util.Map; |
||||
|
||||
|
||||
/** |
||||
* 服务类 |
||||
* |
||||
* @author edwong |
||||
*/ |
||||
public interface StatisticsService { |
||||
|
||||
Page<Customer> findPage(CustomerVO customer); |
||||
} |
@ -0,0 +1,67 @@ |
||||
/** |
||||
* Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). |
||||
* <p> |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* <p> |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* <p> |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
package com.ccic.safeliab.service; |
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||
import com.ccic.safeliab.entity.Customer; |
||||
import com.ccic.safeliab.entity.Device; |
||||
import com.ccic.safeliab.entity.User; |
||||
import com.ccic.safeliab.support.Condition; |
||||
import com.ccic.safeliab.util.CcicUtill; |
||||
import com.ccic.safeliab.vo.CustomerVO; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.stereotype.Service; |
||||
import org.springframework.util.StringUtils; |
||||
|
||||
import java.util.Map; |
||||
|
||||
|
||||
/** |
||||
* 服务实现类 |
||||
* |
||||
* @author edwong |
||||
*/ |
||||
@Service |
||||
public class StatisticsServiceImpl implements StatisticsService { |
||||
|
||||
@Autowired |
||||
private ICustomerService customerService; |
||||
|
||||
@Override |
||||
public Page<Customer> findPage(CustomerVO customer) { |
||||
Page<Customer> page = new Page(customer.getPage(), customer.getNum()); |
||||
QueryWrapper<Customer> wrapper = Condition.getQueryWrapper(customer); |
||||
if (!StringUtils.isEmpty(customer.getKeyword())) { |
||||
// 客户名称与编号过滤
|
||||
wrapper.lambda().like(Customer::getCustomerName, customer.getKeyword()) |
||||
.or() |
||||
.like(Customer::getCustomerNo, customer.getKeyword()); |
||||
} |
||||
if (!StringUtils.isEmpty(customer.getTypePid())) { |
||||
// 归属机构
|
||||
wrapper.lambda().eq(Customer::getTypePid, customer.getTypePid()); |
||||
} |
||||
if (!StringUtils.isEmpty(customer.getTypePid())) { |
||||
// 管理分类
|
||||
wrapper.lambda().eq(Customer::getTypePid, customer.getTypePid()); |
||||
} |
||||
wrapper.orderByDesc("changed_at"); |
||||
customerService.page(page,wrapper); |
||||
|
||||
return page; |
||||
} |
||||
} |
@ -0,0 +1,9 @@ |
||||
package com.ccic.safeliab.support; |
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService; |
||||
|
||||
import java.util.List; |
||||
|
||||
public interface BaseService<T> extends IService<T> { |
||||
boolean deleteLogic(List<Long> ids); |
||||
} |
@ -0,0 +1,50 @@ |
||||
package com.ccic.safeliab.support; |
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||
import com.ccic.safeliab.entity.BaseEntity; |
||||
import com.ccic.safeliab.entity.Customer; |
||||
import org.springframework.validation.annotation.Validated; |
||||
|
||||
import java.util.Date; |
||||
import java.util.List; |
||||
|
||||
@Validated |
||||
public class BaseServiceImpl<M extends BaseMapper<T>, T extends BaseEntity> extends ServiceImpl<M, T> implements BaseService<T> { |
||||
public BaseServiceImpl() { |
||||
} |
||||
|
||||
public boolean save(T entity) { |
||||
Customer user = new Customer(); |
||||
user.setCustomerId(Long.parseLong("3009473735814009")); |
||||
if (user != null) { |
||||
entity.setCreatedBy(user.getCustomerId()); |
||||
entity.setUpdateBy(user.getCustomerId()); |
||||
} |
||||
|
||||
Date now = new Date(); |
||||
entity.setCreateAt(now); |
||||
entity.setUpdateAt(now); |
||||
if (entity.getStatus() == null) { |
||||
entity.setStatus(1); |
||||
} |
||||
|
||||
entity.setIsDeleted(0); |
||||
return super.save(entity); |
||||
} |
||||
|
||||
public boolean updateById(T entity) { |
||||
Customer user = new Customer(); |
||||
if (user != null) { |
||||
entity.setUpdateBy(user.getCustomerId()); |
||||
} |
||||
|
||||
entity.setUpdateAt(new Date()); |
||||
return super.updateById(entity); |
||||
} |
||||
|
||||
public boolean deleteLogic(List<Long> ids) { |
||||
return super.removeByIds(ids); |
||||
} |
||||
} |
@ -0,0 +1,14 @@ |
||||
package com.ccic.safeliab.vo; |
||||
|
||||
import com.ccic.safeliab.entity.Customer; |
||||
import lombok.Data; |
||||
|
||||
@Data |
||||
public class CustomerVO extends Customer { |
||||
|
||||
private String keyword; |
||||
|
||||
private Integer page; |
||||
|
||||
private Integer num; |
||||
} |
@ -0,0 +1,50 @@ |
||||
/** |
||||
* Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). |
||||
* <p> |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* <p> |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* <p> |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
package com.ccic.safeliab.web; |
||||
|
||||
import com.ccic.safeliab.util.R; |
||||
import com.ccic.safeliab.entity.ExDict; |
||||
import com.ccic.safeliab.service.DictService; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.web.bind.annotation.*; |
||||
import java.util.List; |
||||
|
||||
|
||||
/** |
||||
* 控制器 |
||||
* |
||||
* @author Chill |
||||
*/ |
||||
@RestController |
||||
@RequestMapping("/ex/dict") |
||||
public class DictController { |
||||
|
||||
@Autowired |
||||
private DictService dictService; |
||||
|
||||
/** |
||||
* 获取字典 |
||||
* |
||||
* @return |
||||
*/ |
||||
@GetMapping("/dictionary") |
||||
public R dictionary(String code) { |
||||
List<ExDict> tree = dictService.getList(code); |
||||
return R.ok().data(tree); |
||||
} |
||||
|
||||
|
||||
} |
@ -0,0 +1,23 @@ |
||||
package com.ccic.safeliab.web; |
||||
|
||||
import com.ccic.safeliab.service.StatisticsService; |
||||
import com.ccic.safeliab.util.R; |
||||
import com.ccic.safeliab.vo.CustomerVO; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.web.bind.annotation.*; |
||||
|
||||
|
||||
@RestController |
||||
@RequestMapping("/ex/statistics") |
||||
public class StatisticsController { |
||||
|
||||
@Autowired |
||||
private StatisticsService statisticsService; |
||||
|
||||
@PostMapping("/page") |
||||
public R page(@RequestBody CustomerVO customer) { |
||||
return R.ok().dataPage(statisticsService.findPage(customer)); |
||||
} |
||||
|
||||
|
||||
} |
@ -0,0 +1,21 @@ |
||||
<?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.ccic.safeliab.dao.DictMapper"> |
||||
|
||||
<!-- 通用查询映射结果 --> |
||||
<resultMap id="dictResultMap" type="com.ccic.safeliab.entity.ExDict"> |
||||
<id column="id" property="id"/> |
||||
<result column="parent_id" property="parentId"/> |
||||
<result column="code" property="code"/> |
||||
<result column="dict_key" property="dictKey"/> |
||||
<result column="dict_value" property="dictValue"/> |
||||
<result column="sort" property="sort"/> |
||||
<result column="remark" property="remark"/> |
||||
<result column="is_deleted" property="isDeleted"/> |
||||
</resultMap> |
||||
|
||||
<select id="getList" resultMap="dictResultMap"> |
||||
select code, dict_key, dict_value, sort, remark from ex_dict where code = #{param1} and dict_key >= 0 and parent_id != 0 and is_deleted = 0 |
||||
</select> |
||||
|
||||
</mapper> |
Loading…
Reference in new issue