Explorar el Código

Merge remote-tracking branch 'origin/dev' into dev

Mechrevo hace 2 años
padre
commit
c9cdfdca48
Se han modificado 28 ficheros con 1483 adiciones y 51 borrados
  1. 1 1
      sp-core/sp-base/src/main/java/com/pj/current/dto/PCLoginUserInfo.java
  2. 23 0
      sp-core/sp-base/src/main/java/com/pj/enummj/ReleaseStatus.java
  3. 68 0
      sp-service/level-one-server/src/main/java/com/pj/tb_agreement/TbAgreement.java
  4. 42 0
      sp-service/level-one-server/src/main/java/com/pj/tb_agreement/TbAgreementAppController.java
  5. 87 0
      sp-service/level-one-server/src/main/java/com/pj/tb_agreement/TbAgreementController.java
  6. 30 0
      sp-service/level-one-server/src/main/java/com/pj/tb_agreement/TbAgreementMapper.java
  7. 46 0
      sp-service/level-one-server/src/main/java/com/pj/tb_agreement/TbAgreementMapper.xml
  8. 51 0
      sp-service/level-one-server/src/main/java/com/pj/tb_agreement/TbAgreementService.java
  9. 30 0
      sp-service/level-one-server/src/main/java/com/pj/tb_agreement/TbAgreementUtil.java
  10. 112 0
      sp-service/level-one-server/src/main/java/com/pj/tb_banner/TbBanner.java
  11. 45 0
      sp-service/level-one-server/src/main/java/com/pj/tb_banner/TbBannerAppController.java
  12. 95 0
      sp-service/level-one-server/src/main/java/com/pj/tb_banner/TbBannerController.java
  13. 30 0
      sp-service/level-one-server/src/main/java/com/pj/tb_banner/TbBannerMapper.java
  14. 59 0
      sp-service/level-one-server/src/main/java/com/pj/tb_banner/TbBannerMapper.xml
  15. 55 0
      sp-service/level-one-server/src/main/java/com/pj/tb_banner/TbBannerService.java
  16. 30 0
      sp-service/level-one-server/src/main/java/com/pj/tb_banner/TbBannerUtil.java
  17. 36 0
      sp-service/level-one-server/src/main/java/com/pj/tb_banner/vo/TbBannerVo.java
  18. 139 0
      sp-service/level-one-server/src/main/java/com/pj/tb_port_news/TbPortNews.java
  19. 55 0
      sp-service/level-one-server/src/main/java/com/pj/tb_port_news/TbPortNewsAppController.java
  20. 108 0
      sp-service/level-one-server/src/main/java/com/pj/tb_port_news/TbPortNewsController.java
  21. 30 0
      sp-service/level-one-server/src/main/java/com/pj/tb_port_news/TbPortNewsMapper.java
  22. 65 0
      sp-service/level-one-server/src/main/java/com/pj/tb_port_news/TbPortNewsMapper.xml
  23. 153 0
      sp-service/level-one-server/src/main/java/com/pj/tb_port_news/TbPortNewsService.java
  24. 30 0
      sp-service/level-one-server/src/main/java/com/pj/tb_port_news/TbPortNewsUtil.java
  25. 61 0
      sp-service/level-one-server/src/main/java/com/pj/tb_port_news/vo/TbPortNewsVo.java
  26. 0 39
      sp-service/sp-admin/src/main/java/com/pj/project4sp/admin/SpLoginInfo.java
  27. 0 2
      sp-service/sp-admin/src/main/java/com/pj/project4sp/admin4login/SpAccAdminController.java
  28. 2 9
      sp-service/sp-admin/src/main/java/com/pj/project4sp/admin4login/SpAccAdminService.java

+ 1 - 1
sp-core/sp-base/src/main/java/com/pj/current/dto/PCLoginUserInfo.java

@@ -7,6 +7,6 @@ import java.io.Serializable;
 @Data
 @Accessors(chain = true)
 public class PCLoginUserInfo implements Serializable {
-    private Long loginId;
+    private String loginId;
     private String loginName;
 }

+ 23 - 0
sp-core/sp-base/src/main/java/com/pj/enummj/ReleaseStatus.java

@@ -0,0 +1,23 @@
+package com.pj.enummj;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @Author Mechrevo
+ * @Date 2023 07 26 10 11
+ **/
+@Getter
+@AllArgsConstructor
+public enum ReleaseStatus {
+
+    RELEASE_STATUS_PUBLISH(1,"发布"),
+    RELEASE_STATUS_WAIT(0,"待发布");
+
+    private Integer code;
+
+    private String msg;
+
+
+
+}

+ 68 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_agreement/TbAgreement.java

@@ -0,0 +1,68 @@
+package com.pj.tb_agreement;
+
+import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import lombok.EqualsAndHashCode;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * Model: tb_agreement -- 协议表
+ * @author qzy 
+ */
+@Data
+@Accessors(chain = true)
+@TableName(TbAgreement.TABLE_NAME)
+@EqualsAndHashCode(callSuper = false)
+public class TbAgreement extends Model<TbAgreement> implements Serializable {
+
+	// ---------- 模块常量 ----------
+	/**
+	 * 序列化版本id 
+	 */
+	private static final long serialVersionUID = 1L;	
+	/**
+	 * 此模块对应的表名 
+	 */
+	public static final String TABLE_NAME = "tb_agreement";	
+	/**
+	 * 此模块对应的权限码 
+	 */
+	public static final String PERMISSION_CODE = "tb-agreement";
+	public static final String PERMISSION_CODE_ADD = "tb-agreement-add";
+	public static final String PERMISSION_CODE_EDIT = "tb-agreement-edit";
+	public static final String PERMISSION_CODE_DEL = "tb-agreement-del";
+
+
+
+
+	// ---------- 表中字段 ----------
+	/**
+	 * 主键 
+	 */
+	@TableId(type = IdType.AUTO)
+	@JsonSerialize(using = ToStringSerializer.class)
+	private Long id;	
+
+	/**
+	 * 类型 
+	 */
+	private String type;	
+
+	/**
+	 * 内容 
+	 */
+	private String content;	
+
+
+
+
+
+	
+
+
+}

+ 42 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_agreement/TbAgreementAppController.java

@@ -0,0 +1,42 @@
+package com.pj.tb_agreement;
+
+
+import com.pj.utils.sg.AjaxJson;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Objects;
+
+/**
+* APP端服务协议
+*
+* @author loovi
+* @date
+*/
+@RestController
+@RequestMapping("/app/TbAgreement/")
+public class TbAgreementAppController {
+
+    @Autowired
+    TbAgreementService tbAgreementService;
+
+    /**
+    *APP端获取服务协议
+    *
+    * @author loovi
+    * @date
+    */
+    @RequestMapping("getById")
+    public AjaxJson getById( Long id){
+        // 根据id获取服务协议
+        TbAgreement tbAgreement = tbAgreementService.getById(id);
+        // 若无此服务协议,返回错误
+        if(Objects.isNull(tbAgreement)){
+            AjaxJson.getError("没有此协议");
+        }
+        // 返回获取的服务协议
+        return AjaxJson.getSuccessData(tbAgreement);
+    }
+}

+ 87 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_agreement/TbAgreementController.java

@@ -0,0 +1,87 @@
+package com.pj.tb_agreement;
+
+import java.util.List;
+import com.pj.utils.so.SoMap;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import com.pj.utils.sg.*;
+import com.pj.project4sp.SP;
+
+import com.pj.current.satoken.StpUserUtil;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+
+
+/**
+ * Controller: tb_agreement -- 协议表
+ * @author loovi
+ */
+@RestController
+@RequestMapping("/TbAgreement/")
+public class TbAgreementController {
+
+	/** 底层 Service 对象 */
+	@Autowired
+	TbAgreementService tbAgreementService;
+
+	/** 增 */  
+	@RequestMapping("add")
+	@SaCheckPermission(TbAgreement.PERMISSION_CODE_ADD)
+	public AjaxJson add(TbAgreement t){
+		tbAgreementService.add(t);
+		t = tbAgreementService.getById(SP.publicMapper.getPrimarykey());
+		return AjaxJson.getSuccessData(t);
+	}
+
+	/** 删 */  
+	@RequestMapping("delete")
+	@SaCheckPermission(TbAgreement.PERMISSION_CODE_DEL)
+	public AjaxJson delete(Long id){
+		 tbAgreementService.delete(id);
+		return AjaxJson.getSuccess();
+	}
+	
+	/** 删 - 根据id列表 */  
+	@RequestMapping("deleteByIds")
+	@SaCheckPermission(TbAgreement.PERMISSION_CODE_DEL)
+	public AjaxJson deleteByIds(){
+		List<Long> ids = SoMap.getRequestSoMap().getListByComma("ids", long.class); 
+		int line = SP.publicMapper.deleteByIds(TbAgreement.TABLE_NAME, ids);
+		return AjaxJson.getByLine(line);
+	}
+	
+	/** 改 */  
+	@RequestMapping("update")
+	@SaCheckPermission(TbAgreement.PERMISSION_CODE_EDIT)
+	public AjaxJson update(TbAgreement t){
+		tbAgreementService.update(t);
+		return AjaxJson.getSuccess();
+	}
+
+	/** 查 - 根据id */  
+	@RequestMapping("getById")
+		@SaCheckPermission(TbAgreement.PERMISSION_CODE)
+	public AjaxJson getById(Long id){
+		TbAgreement t = tbAgreementService.getById(id);
+		return AjaxJson.getSuccessData(t);
+	}
+
+	/** 查集合 - 根据条件(参数为空时代表忽略指定条件) */  
+	@RequestMapping("getList")
+		@SaCheckPermission(TbAgreement.PERMISSION_CODE)
+	public AjaxJson getList() { 
+		SoMap so = SoMap.getRequestSoMap();
+		List<TbAgreement> list = tbAgreementService.getList(so.startPage());
+		return AjaxJson.getPageData(so.getDataCount(), list);
+	}
+	
+	
+	
+	
+
+	
+	
+	
+
+}

+ 30 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_agreement/TbAgreementMapper.java

@@ -0,0 +1,30 @@
+package com.pj.tb_agreement;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Mapper;
+
+import com.pj.utils.so.*;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * Mapper: tb_agreement -- 协议表
+ * @author loovi
+ */
+
+@Mapper
+@Repository
+public interface TbAgreementMapper extends BaseMapper <TbAgreement> {
+
+
+
+	/**
+	 * 查集合 - 根据条件(参数为空时代表忽略指定条件)
+	 * @param so 参数集合 
+	 * @return 数据列表 
+	 */
+	List<TbAgreement> getList(SoMap so);
+
+
+}

+ 46 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_agreement/TbAgreementMapper.xml

@@ -0,0 +1,46 @@
+<?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.pj.tb_agreement.TbAgreementMapper">
+
+
+
+
+	<!-- ================================== 查询相关 ================================== -->
+	<!-- select id, type, content from tb_agreement  -->
+	
+	<!-- 通用映射:自动模式 -->
+	<resultMap id="model" autoMapping="true" type="com.pj.tb_agreement.TbAgreement"></resultMap>
+	
+	<!-- 公共查询sql片段 -->
+	<sql id="select_sql">
+		select * 
+		from tb_agreement 
+	</sql>
+
+	
+	<!-- 查集合 - 根据条件(参数为空时代表忽略指定条件) [G] -->
+	<select id="getList" resultMap="model">
+		<include refid="select_sql"></include>
+		<where>
+			<if test=' this.has("id") '> and id = #{id} </if>
+			<if test=' this.has("type") '> and type = #{type} </if>
+			<if test=' this.has("content") '> and content = #{content} </if>
+		</where>
+		order by
+		<choose>
+			<when test='sortType == 1'> id desc </when>
+			<when test='sortType == 2'> type desc </when>
+			<otherwise> id desc </otherwise>
+		</choose>
+	</select>
+	
+	
+	
+	
+	
+	
+	
+	
+	
+
+</mapper>

+ 51 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_agreement/TbAgreementService.java

@@ -0,0 +1,51 @@
+package com.pj.tb_agreement;
+
+import java.util.List;
+import com.pj.utils.so.SoMap;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
+import com.pj.utils.sg.*;
+
+/**
+ * Service: tb_agreement -- 协议表
+ * @author loovi
+ */
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class TbAgreementService extends ServiceImpl<TbAgreementMapper, TbAgreement> implements IService<TbAgreement>{
+
+	/** 底层 Mapper 对象 */
+	@Autowired
+	TbAgreementMapper tbAgreementMapper;
+
+	/** 增 */
+	void add(TbAgreement t){
+		save(t);
+	}
+
+	/** 删 */
+	void delete(Long id){
+		removeById(id);
+	}
+
+	/** 改 */
+	void update(TbAgreement t){
+		updateById(t);
+
+	}
+
+	/** 查 */
+	TbAgreement getById(Long id){
+		return super.getById(id);
+	}
+
+	/** 查集合 - 根据条件(参数为空时代表忽略指定条件) */  
+	List<TbAgreement> getList(SoMap so) { 
+		return tbAgreementMapper.getList(so);	
+	}
+	
+
+}

+ 30 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_agreement/TbAgreementUtil.java

@@ -0,0 +1,30 @@
+package com.pj.tb_agreement;
+
+import com.pj.tb_agreement.TbAgreementMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import com.pj.utils.sg.*;
+
+/**
+ * 工具类:tb_agreement -- 协议表
+ * @author loovi
+ *
+ */
+@Component
+public class TbAgreementUtil {
+
+	
+	/** 底层 Mapper 对象 */
+	public static TbAgreementMapper tbAgreementMapper;
+	@Autowired
+	private void setTbAgreementMapper(TbAgreementMapper tbAgreementMapper) {
+		TbAgreementUtil.tbAgreementMapper = tbAgreementMapper;
+	}
+	
+
+
+	
+	
+	
+}

+ 112 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_banner/TbBanner.java

@@ -0,0 +1,112 @@
+package com.pj.tb_banner;
+
+import java.io.Serializable;
+import java.util.*;
+import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import lombok.EqualsAndHashCode;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * Model: tb_banner -- 轮播图
+ * @author loovi
+ */
+@Data
+@Accessors(chain = true)
+@TableName(TbBanner.TABLE_NAME)
+@EqualsAndHashCode(callSuper = false)
+public class TbBanner extends Model<TbBanner> implements Serializable {
+
+	// ---------- 模块常量 ----------
+	/**
+	 * 序列化版本id 
+	 */
+	private static final long serialVersionUID = 1L;	
+	/**
+	 * 此模块对应的表名 
+	 */
+	public static final String TABLE_NAME = "tb_banner";	
+	/**
+	 * 此模块对应的权限码 
+	 */
+	public static final String PERMISSION_CODE = "tb-banner";
+	public static final String PERMISSION_CODE_ADD = "tb-banner-add";
+	public static final String PERMISSION_CODE_EDIT = "tb-banner-edit";
+	public static final String PERMISSION_CODE_DEL = "tb-banner-del";
+
+
+
+
+	// ---------- 表中字段 ----------
+	/**
+	 * 主键 
+	 */
+	@TableId(type = IdType.AUTO)
+	@JsonSerialize(using = ToStringSerializer.class)
+	private Long id;	
+
+	/**
+	 * 标题 
+	 */
+	private String title;	
+
+	/**
+	 * 轮播图片 
+	 */
+	private String image;	
+
+	/**
+	 * 跳转链接 
+	 */
+	private String url;	
+
+	/**
+	 * 状态(0=禁用,1=启用) 
+	 */
+	private int status;
+
+	/**
+	 * 创建者id 
+	 */
+	private String createBy;	
+
+	/**
+	 * 创建者名称 
+	 */
+	private String createName;	
+
+	/**
+	 * 创建时间 
+	 */
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	private Date createTime;	
+
+	/**
+	 * 更新者id 
+	 */
+	private String updateBy;	
+
+	/**
+	 * 更新者名称 
+	 */
+	private String updateName;	
+
+	/**
+	 * 更新时间 
+	 */
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	private Date updateTime;	
+
+
+
+
+
+	
+
+
+}

+ 45 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_banner/TbBannerAppController.java

@@ -0,0 +1,45 @@
+package com.pj.tb_banner;
+
+import cn.hutool.extra.cglib.CglibUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.pj.enummj.DeleteStatus;
+import com.pj.tb_banner.vo.TbBannerVo;
+import com.pj.utils.sg.AjaxJson;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+*APP取轮播图
+*
+* @author loovi
+* @date
+*/
+@RestController
+@RequestMapping("/app/TbBanner/")
+public class TbBannerAppController {
+
+    @Autowired
+    TbBannerService tbBannerService;
+
+    /**
+    *APP端获取轮播图
+    *
+    * @author loovi
+    * @date
+    */
+    @RequestMapping("getList")
+    public AjaxJson getList() {
+        // 构造获取可用的轮播图条件
+        QueryWrapper<TbBanner> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("status", DeleteStatus.DELETE_STATUS_ON.getCode());
+        // 获取轮播图列表
+        List<TbBanner> list = tbBannerService.list(queryWrapper);
+        // 将结果列表拷贝到轮播图vo列表中
+        List<TbBannerVo> resList = CglibUtil.copyList(list, TbBannerVo::new);
+        //返回列表
+        return AjaxJson.getSuccess("轮播图列表", resList);
+    }
+}

+ 95 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_banner/TbBannerController.java

@@ -0,0 +1,95 @@
+package com.pj.tb_banner;
+
+import java.util.List;
+import com.pj.utils.so.SoMap;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import com.pj.utils.sg.*;
+import com.pj.project4sp.SP;
+
+import com.pj.current.satoken.StpUserUtil;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+
+
+/**
+ * Controller: tb_banner -- 轮播图
+ * @author loovi
+ */
+@RestController
+@RequestMapping("/TbBanner/")
+public class TbBannerController {
+
+	/** 底层 Service 对象 */
+	@Autowired
+	TbBannerService tbBannerService;
+
+	/** 增 */  
+	@RequestMapping("add")
+	@SaCheckPermission(TbBanner.PERMISSION_CODE_ADD)
+	public AjaxJson add(TbBanner t){
+		tbBannerService.add(t);
+		t = tbBannerService.getById(SP.publicMapper.getPrimarykey());
+		return AjaxJson.getSuccessData(t);
+	}
+
+	/** 删 */  
+	@RequestMapping("delete")
+	@SaCheckPermission(TbBanner.PERMISSION_CODE_DEL)
+	public AjaxJson delete(Long id){
+		 tbBannerService.delete(id);
+		return AjaxJson.getSuccess();
+	}
+	
+	/** 删 - 根据id列表 */  
+	@RequestMapping("deleteByIds")
+	@SaCheckPermission(TbBanner.PERMISSION_CODE_DEL)
+	public AjaxJson deleteByIds(){
+		List<Long> ids = SoMap.getRequestSoMap().getListByComma("ids", long.class); 
+		int line = SP.publicMapper.deleteByIds(TbBanner.TABLE_NAME, ids);
+		return AjaxJson.getByLine(line);
+	}
+	
+	/** 改 */  
+	@RequestMapping("update")
+	@SaCheckPermission(TbBanner.PERMISSION_CODE_EDIT)
+	public AjaxJson update(TbBanner t){
+		tbBannerService.update(t);
+		return AjaxJson.getSuccess();
+	}
+
+	/** 查 - 根据id */  
+	@RequestMapping("getById")
+		@SaCheckPermission(TbBanner.PERMISSION_CODE)
+	public AjaxJson getById(Long id){
+		TbBanner t = tbBannerService.getById(id);
+		return AjaxJson.getSuccessData(t);
+	}
+
+	/** 查集合 - 根据条件(参数为空时代表忽略指定条件) */  
+	@RequestMapping("getList")
+		@SaCheckPermission(TbBanner.PERMISSION_CODE)
+	public AjaxJson getList() { 
+		SoMap so = SoMap.getRequestSoMap();
+		List<TbBanner> list = tbBannerService.getList(so.startPage());
+		return AjaxJson.getPageData(so.getDataCount(), list);
+	}
+	
+	
+	
+	/** 改 - 状态(0=禁用,1=启用) */  
+	@RequestMapping("updateStatus")
+	@SaCheckPermission(TbBanner.PERMISSION_CODE_EDIT)
+	public AjaxJson updateStatus(Long id, String value){
+		int line = SP.publicMapper.updateColumnById(TbBanner.TABLE_NAME, "status", value, id);
+		return AjaxJson.getByLine(line);
+	}
+	
+	
+
+	
+	
+	
+
+}

+ 30 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_banner/TbBannerMapper.java

@@ -0,0 +1,30 @@
+package com.pj.tb_banner;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Mapper;
+
+import com.pj.utils.so.*;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * Mapper: tb_banner -- 轮播图
+ * @author loovi
+ */
+
+@Mapper
+@Repository
+public interface TbBannerMapper extends BaseMapper <TbBanner> {
+
+
+
+	/**
+	 * 查集合 - 根据条件(参数为空时代表忽略指定条件)
+	 * @param so 参数集合 
+	 * @return 数据列表 
+	 */
+	List<TbBanner> getList(SoMap so);
+
+
+}

+ 59 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_banner/TbBannerMapper.xml

@@ -0,0 +1,59 @@
+<?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.pj.tb_banner.TbBannerMapper">
+
+
+
+
+	<!-- ================================== 查询相关 ================================== -->
+	<!-- select id, title, image, url, status, create_by, create_name, create_time, update_by, update_name, update_time, delete_status from tb_banner  -->
+	
+	<!-- 通用映射:自动模式 -->
+	<resultMap id="model" autoMapping="true" type="com.pj.tb_banner.TbBanner"></resultMap>
+	
+	<!-- 公共查询sql片段 -->
+	<sql id="select_sql">
+		select * 
+		from tb_banner 
+	</sql>
+
+	
+	<!-- 查集合 - 根据条件(参数为空时代表忽略指定条件) [G] -->
+	<select id="getList" resultMap="model">
+		<include refid="select_sql"></include>
+		<where>
+			<if test=' this.has("id") '> and id = #{id} </if>
+			<if test=' this.has("title") '> and title = #{title} </if>
+			<if test=' this.has("url") '> and url = #{url} </if>
+			<if test=' this.has("status") '> and status = #{status} </if>
+			<if test=' this.has("createBy") '> and create_by = #{createBy} </if>
+			<if test=' this.has("createName") '> and create_name = #{createName} </if>
+			<if test=' this.has("updateBy") '> and update_by = #{updateBy} </if>
+			<if test=' this.has("updateName") '> and update_name = #{updateName} </if>
+			<if test=' this.has("deleteStatus") '> and delete_status = #{deleteStatus} </if>
+		</where>
+		order by
+		<choose>
+			<when test='sortType == 1'> id desc </when>
+			<when test='sortType == 2'> title desc </when>
+			<when test='sortType == 3'> status desc </when>
+			<when test='sortType == 4'> create_by desc </when>
+			<when test='sortType == 5'> create_name desc </when>
+			<when test='sortType == 6'> create_time desc </when>
+			<when test='sortType == 7'> update_by desc </when>
+			<when test='sortType == 8'> update_name desc </when>
+			<when test='sortType == 9'> update_time desc </when>
+			<otherwise> id desc </otherwise>
+		</choose>
+	</select>
+	
+	
+	
+	
+	
+	
+	
+	
+	
+
+</mapper>

+ 55 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_banner/TbBannerService.java

@@ -0,0 +1,55 @@
+package com.pj.tb_banner;
+
+import java.util.List;
+
+import cn.hutool.extra.cglib.CglibUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.pj.enummj.DeleteStatus;
+import com.pj.tb_banner.vo.TbBannerVo;
+import com.pj.utils.so.SoMap;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
+import com.pj.utils.sg.*;
+
+/**
+ * Service: tb_banner -- 轮播图
+ * @author loovi
+ */
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class TbBannerService extends ServiceImpl<TbBannerMapper, TbBanner> implements IService<TbBanner>{
+
+	/** 底层 Mapper 对象 */
+	@Autowired
+	TbBannerMapper tbBannerMapper;
+
+	/** 增 */
+	void add(TbBanner t){
+		save(t);
+	}
+
+	/** 删 */
+	void delete(Long id){
+		removeById(id);
+	}
+
+	/** 改 */
+	void update(TbBanner t){
+		updateById(t);
+
+	}
+
+	/** 查 */
+	TbBanner getById(Long id){
+		return super.getById(id);
+	}
+
+	/** 查集合 - 根据条件(参数为空时代表忽略指定条件) */  
+	List<TbBanner> getList(SoMap so) { 
+		return tbBannerMapper.getList(so);	
+	}
+
+}

+ 30 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_banner/TbBannerUtil.java

@@ -0,0 +1,30 @@
+package com.pj.tb_banner;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import com.pj.utils.sg.*;
+import java.util.*;
+
+/**
+ * 工具类:tb_banner -- 轮播图
+ * @author loovi
+ *
+ */
+@Component
+public class TbBannerUtil {
+
+	
+	/** 底层 Mapper 对象 */
+	public static TbBannerMapper tbBannerMapper;
+	@Autowired
+	private void setTbBannerMapper(TbBannerMapper tbBannerMapper) {
+		TbBannerUtil.tbBannerMapper = tbBannerMapper;
+	}
+	
+
+
+	
+	
+	
+}

+ 36 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_banner/vo/TbBannerVo.java

@@ -0,0 +1,36 @@
+package com.pj.tb_banner.vo;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class TbBannerVo {
+    /**
+     * 主键
+     */
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 轮播图片
+     */
+    private String image;
+
+    /**
+     * 跳转链接
+     */
+    private String url;
+
+
+
+}

+ 139 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_port_news/TbPortNews.java

@@ -0,0 +1,139 @@
+package com.pj.tb_port_news;
+
+import java.io.Serializable;
+import java.util.*;
+import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import lombok.EqualsAndHashCode;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * Model: tb_port_news -- 口岸资讯
+ * @author loovi
+ */
+@Data
+@Accessors(chain = true)
+@TableName(TbPortNews.TABLE_NAME)
+@EqualsAndHashCode(callSuper = false)
+public class TbPortNews extends Model<TbPortNews> implements Serializable {
+
+	// ---------- 模块常量 ----------
+	/**
+	 * 序列化版本id 
+	 */
+	private static final long serialVersionUID = 1L;	
+	/**
+	 * 此模块对应的表名 
+	 */
+	public static final String TABLE_NAME = "tb_port_news";	
+	/**
+	 * 此模块对应的权限码 
+	 */
+	public static final String PERMISSION_CODE = "tb-port-news";
+	public static final String PERMISSION_CODE_ADD = "tb-port-news-add";
+	public static final String PERMISSION_CODE_EDIT = "tb-port-news-edit";
+	public static final String PERMISSION_CODE_DEL = "tb-port-news-del";
+
+
+
+
+	// ---------- 表中字段 ----------
+	/**
+	 * 主键 
+	 */
+	@TableId(type = IdType.AUTO)
+	@JsonSerialize(using = ToStringSerializer.class)
+	private Long id;	
+
+	/**
+	 * 标题 
+	 */
+	private String title;	
+
+	/**
+	 * 封面图片 
+	 */
+	private String cover;	
+
+	/**
+	 * 链接地址 
+	 */
+	private String url;	
+
+	/**
+	 * 内容 
+	 */
+	private String content;	
+
+	/**
+	 * 来源 
+	 */
+	private String source;	
+
+	/**
+	 * 阅读量 
+	 */
+	private Integer readCount;	
+
+	/**
+	 * 发布状态(0=未发布,1=发布) 
+	 */
+	private Integer isRelease;
+
+	/**
+	 * 发布时间
+	 *
+	 */
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	private Date releaseTime;	
+
+	/**
+	 * 状态(0=禁用,1=启用) 
+	 */
+	private Integer status;
+
+	/**
+	 * 创建者id 
+	 */
+	private String createBy;	
+
+	/**
+	 * 创建者名称 
+	 */
+	private String createName;	
+
+	/**
+	 * 创建时间 
+	 */
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	private Date createTime;	
+
+	/**
+	 * 更新者id 
+	 */
+	private String updateBy;
+
+	/**
+	 * 更新者名称 
+	 */
+	private String updateName;	
+
+	/**
+	 * 更新时间 
+	 */
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	private Date updateTime;	
+
+
+
+
+
+	
+
+
+}

+ 55 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_port_news/TbPortNewsAppController.java

@@ -0,0 +1,55 @@
+package com.pj.tb_port_news;
+
+import com.pj.utils.sg.AjaxJson;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+*APP端口岸资讯
+*
+* @author loovi
+* @date
+*/
+@RestController
+@RequestMapping("/app/TbPortNews/")
+public class TbPortNewsAppController {
+
+    @Autowired
+    TbPortNewsService tbPortNewsService;
+
+    /**
+     *APP端获取最新的口岸资讯
+     *
+     * @author loovi
+     * @date
+     */
+    @RequestMapping("getNewestList")
+    public AjaxJson getNewestList(Long limit){
+        AjaxJson ajaxJson = tbPortNewsService.getNewestList(limit);
+        return ajaxJson;
+    }
+    /**
+    *APP端获取口岸资讯列表
+    *
+    * @author loovi
+    * @date
+    */
+    @RequestMapping("getPortNewsList")
+    public AjaxJson getPortNewsList(){
+        AjaxJson ajaxJson = tbPortNewsService.getPortNewsList();
+        return ajaxJson;
+    }
+    /**
+    *APP端获取口岸资讯详情
+    *
+    * @author loovi
+    * @date
+    */
+    @RequestMapping("getPortNewsDetails")
+    public  AjaxJson getPortNewsDetails(Long id){
+        AjaxJson ajaxJson = tbPortNewsService.getPortNewsDetails(id);
+        return ajaxJson;
+    }
+}

+ 108 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_port_news/TbPortNewsController.java

@@ -0,0 +1,108 @@
+package com.pj.tb_port_news;
+
+import java.util.List;
+import com.pj.utils.so.SoMap;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import com.pj.utils.sg.*;
+import com.pj.project4sp.SP;
+
+import com.pj.current.satoken.StpUserUtil;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+
+
+/**
+ * Controller: tb_port_news -- 口岸咨询
+ * @author loovi
+ */
+@RestController
+@RequestMapping("/TbPortNews/")
+public class TbPortNewsController {
+
+	/** 底层 Service 对象 */
+	@Autowired
+	TbPortNewsService tbPortNewsService;
+
+	/** 增 */  
+	@RequestMapping("add")
+	@SaCheckPermission(TbPortNews.PERMISSION_CODE_ADD)
+	public AjaxJson add(TbPortNews t){
+		tbPortNewsService.add(t);
+		t = tbPortNewsService.getById(SP.publicMapper.getPrimarykey());
+		return AjaxJson.getSuccessData(t);
+	}
+
+	/** 删 */  
+	@RequestMapping("delete")
+	@SaCheckPermission(TbPortNews.PERMISSION_CODE_DEL)
+	public AjaxJson delete(Long id){
+		 tbPortNewsService.delete(id);
+		return AjaxJson.getSuccess();
+	}
+	
+	/** 删 - 根据id列表 */  
+	@RequestMapping("deleteByIds")
+	@SaCheckPermission(TbPortNews.PERMISSION_CODE_DEL)
+	public AjaxJson deleteByIds(){
+		List<Long> ids = SoMap.getRequestSoMap().getListByComma("ids", long.class); 
+		int line = SP.publicMapper.deleteByIds(TbPortNews.TABLE_NAME, ids);
+		return AjaxJson.getByLine(line);
+	}
+	
+	/** 改 */  
+	@RequestMapping("update")
+	@SaCheckPermission(TbPortNews.PERMISSION_CODE_EDIT)
+	public AjaxJson update(TbPortNews t){
+		tbPortNewsService.update(t);
+		return AjaxJson.getSuccess();
+	}
+
+	/** 查 - 根据id */  
+	@RequestMapping("getById")
+		@SaCheckPermission(TbPortNews.PERMISSION_CODE)
+	public AjaxJson getById(Long id){
+		TbPortNews t = tbPortNewsService.getById(id);
+		return AjaxJson.getSuccessData(t);
+	}
+
+	/** 查集合 - 根据条件(参数为空时代表忽略指定条件) */  
+	@RequestMapping("getList")
+		@SaCheckPermission(TbPortNews.PERMISSION_CODE)
+	public AjaxJson getList() { 
+		SoMap so = SoMap.getRequestSoMap();
+		List<TbPortNews> list = tbPortNewsService.getList(so.startPage());
+		return AjaxJson.getPageData(so.getDataCount(), list);
+	}
+	
+	
+	
+	/** 改 - 状态(0=禁用,1=启用) */  
+	@RequestMapping("updateStatus")
+	@SaCheckPermission(TbPortNews.PERMISSION_CODE_EDIT)
+	public AjaxJson updateStatus( Long id, String value){
+		int line = SP.publicMapper.updateColumnById(TbPortNews.TABLE_NAME, "status", value, id);
+		return AjaxJson.getByLine(line);
+	}
+
+	/**
+	*修改口岸咨询发布状态
+	*
+	* @author loovi
+	* @date
+	*/
+	@RequestMapping("updateIsRelease")
+	@SaCheckPermission(TbPortNews.PERMISSION_CODE_EDIT)
+	public AjaxJson updateIsRelease(Long id, int value){
+		int line = tbPortNewsService.updateRelease(id, value);
+		return AjaxJson.getByLine(line);
+	}
+	
+	
+
+	
+	
+	
+
+}

+ 30 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_port_news/TbPortNewsMapper.java

@@ -0,0 +1,30 @@
+package com.pj.tb_port_news;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Mapper;
+
+import com.pj.utils.so.*;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * Mapper: tb_port_news -- 口岸咨询
+ * @author loovi
+ */
+
+@Mapper
+@Repository
+public interface TbPortNewsMapper extends BaseMapper <TbPortNews> {
+
+
+
+	/**
+	 * 查集合 - 根据条件(参数为空时代表忽略指定条件)
+	 * @param so 参数集合 
+	 * @return 数据列表 
+	 */
+	List<TbPortNews> getList(SoMap so);
+
+
+}

+ 65 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_port_news/TbPortNewsMapper.xml

@@ -0,0 +1,65 @@
+<?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.pj.tb_port_news.TbPortNewsMapper">
+
+
+
+
+	<!-- ================================== 查询相关 ================================== -->
+	<!-- select id, title, cover, url, content, source, read_count, is_release, release_time, status, create_by, create_name, create_time, update_by, update_name, update_time from tb_port_news  -->
+	
+	<!-- 通用映射:自动模式 -->
+	<resultMap id="model" autoMapping="true" type="com.pj.tb_port_news.TbPortNews"></resultMap>
+	
+	<!-- 公共查询sql片段 -->
+	<sql id="select_sql">
+		select * 
+		from tb_port_news 
+	</sql>
+
+	<!-- 查集合 - 根据条件(参数为空时代表忽略指定条件) [G] -->
+	<select id="getList" resultMap="model">
+		<include refid="select_sql"></include>
+<!--		<where>-->
+<!--			<if test=' this.has("id") '> and id = #{id} </if>-->
+<!--			<if test=' this.has("title") '> and title = #{title} </if>-->
+<!--			<if test=' this.has("url") '> and url = #{url} </if>-->
+<!--			<if test=' this.has("content") '> and content = #{content} </if>-->
+<!--			<if test=' this.has("source") '> and source = #{source} </if>-->
+<!--			<if test=' this.has("readCount") '> and read_count = #{readCount} </if>-->
+<!--			<if test=' this.has("isRelease") '> and is_release = #{isRelease} </if>-->
+<!--			<if test=' this.has("status") '> and status = #{status} </if>-->
+<!--			<if test=' this.has("createBy") '> and create_by = #{createBy} </if>-->
+<!--			<if test=' this.has("createName") '> and create_name = #{createName} </if>-->
+<!--			<if test=' this.has("updateBy") '> and update_by = #{updateBy} </if>-->
+<!--			<if test=' this.has("updateName") '> and update_name = #{updateName} </if>-->
+<!--		</where>-->
+<!--		order by-->
+<!--		<choose>-->
+<!--			<when test='sortType == 1'> id desc </when>-->
+<!--			<when test='sortType == 2'> title desc </when>-->
+<!--			<when test='sortType == 3'> source desc </when>-->
+<!--			<when test='sortType == 4'> read_count desc </when>-->
+<!--			<when test='sortType == 5'> is_release desc </when>-->
+<!--			<when test='sortType == 6'> release_time desc </when>-->
+<!--			<when test='sortType == 7'> status desc </when>-->
+<!--			<when test='sortType == 8'> create_by desc </when>-->
+<!--			<when test='sortType == 9'> create_name desc </when>-->
+<!--			<when test='sortType == 10'> create_time desc </when>-->
+<!--			<when test='sortType == 11'> update_by desc </when>-->
+<!--			<when test='sortType == 12'> update_name desc </when>-->
+<!--			<when test='sortType == 13'> update_time desc </when>-->
+<!--			<otherwise> id desc </otherwise>-->
+<!--		</choose>-->
+	</select>
+	
+	
+	
+	
+	
+	
+	
+	
+	
+
+</mapper>

+ 153 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_port_news/TbPortNewsService.java

@@ -0,0 +1,153 @@
+package com.pj.tb_port_news;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+
+import cn.dev33.satoken.stp.StpUtil;
+import cn.hutool.extra.cglib.CglibUtil;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.pj.current.satoken.StpUserUtil;
+import com.pj.enummj.DeleteStatus;
+import com.pj.enummj.ReleaseStatus;
+import com.pj.tb_port_news.vo.TbPortNewsVo;
+import com.pj.utils.cache.RedisUtil;
+import com.pj.utils.so.SoMap;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
+import com.pj.utils.sg.*;
+
+/**
+ * Service: tb_port_news -- 口岸咨询
+ * @author loovi
+ */
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class TbPortNewsService extends ServiceImpl<TbPortNewsMapper, TbPortNews> implements IService<TbPortNews>{
+
+	/** 底层 Mapper 对象 */
+	@Autowired
+	TbPortNewsMapper tbPortNewsMapper;
+
+	/** 增 */
+	void add(TbPortNews t){
+		save(t);
+	}
+
+	/** 删 */
+	void delete(Long id){
+		removeById(id);
+	}
+
+	/** 改 */
+	void update(TbPortNews t){
+		updateById(t);
+
+	}
+
+	/** 查 */
+	TbPortNews getById(Long id){
+		return super.getById(id);
+	}
+
+	/** 查集合 - 根据条件(参数为空时代表忽略指定条件) */  
+	List<TbPortNews> getList(SoMap so) { 
+		return tbPortNewsMapper.getList(so);	
+	}
+	/**
+	*更新发布状态
+	*
+	* @author loovi
+	* @date
+	*/
+	int updateRelease(Long id, int isRelease){
+
+		// 获取当前登录者信息
+		String str = RedisUtil.get("pc:" + StpUtil.getLoginIdAsString());
+		JSONObject jsonObject = JSONUtil.parseObj(str);
+		String loginId = (String) jsonObject.get("loginId");
+		String loginName = (String)jsonObject.get("loginName");
+		// 获取口岸咨询
+		TbPortNews tbPortNews = tbPortNewsMapper.selectById(id);
+		// 口岸咨询不存在抛异常
+		if(Objects.isNull(tbPortNews)){
+			throw new RuntimeException("口岸咨询不存在");
+		}
+		// 口岸咨询被禁用抛异常
+		if (tbPortNews.getStatus()== DeleteStatus.DELETE_STATUS_OFF.getCode()){
+			throw new RuntimeException("口岸咨询已被禁用");
+		}
+		// 设置口岸咨询发布状态
+		tbPortNews.setIsRelease(isRelease);
+		// 设置口岸咨询发布时间
+		tbPortNews.setReleaseTime(new Date());
+		// 设置口岸咨询更新者id
+		tbPortNews.setUpdateBy(loginId);
+		// 设置口岸咨询更新者名称
+		tbPortNews.setUpdateName(loginName);
+		// 更新口岸咨询
+		int line = tbPortNewsMapper.updateById(tbPortNews);
+		return line;
+	}
+
+
+
+	/**
+	*APP端获取最新的5条口岸资讯
+	*
+	* @author loovi
+	* @date
+	*/
+	public  AjaxJson getNewestList(Long limit){
+		// 构造条件查询最新的资讯
+		QueryWrapper<TbPortNews> queryWrapper = new QueryWrapper<>();
+		queryWrapper.eq("status", DeleteStatus.DELETE_STATUS_ON.getCode())
+				.eq("is_release", ReleaseStatus.RELEASE_STATUS_PUBLISH.getCode())
+				.orderByDesc("release_time")
+				.last("LIMIT " +limit);
+		// 执行查询
+		List<TbPortNews> list = tbPortNewsMapper.selectList(queryWrapper);
+		// 将结果列表拷贝至VO列表
+		List<TbPortNewsVo> resList = CglibUtil.copyList(list, TbPortNewsVo::new);
+		// 返回获取的最新口岸资讯
+		return AjaxJson.getSuccess("最新口岸资讯",resList);
+	}
+	/**
+	 *APP端获取口岸资讯列表
+	 *
+	 * @author loovi
+	 * @date
+	 */
+	public  AjaxJson getPortNewsList(){
+		// 构造条件查询资讯列表
+		QueryWrapper<TbPortNews> queryWrapper = new QueryWrapper<>();
+		queryWrapper.eq("status",DeleteStatus.DELETE_STATUS_ON.getCode());
+		// 执行查询
+		List<TbPortNews> list = tbPortNewsMapper.selectList(queryWrapper);
+		// 将结果列表拷贝至VO列表
+		List<TbPortNewsVo> resList = CglibUtil.copyList(list, TbPortNewsVo::new);
+		// 返回获取的最新口岸资讯
+		return AjaxJson.getSuccess("口岸资讯列表",resList);
+	}
+	/**
+	 *APP端获取口岸资讯详情
+	 *
+	 * @author loovi
+	 * @date
+	 */
+	public  AjaxJson getPortNewsDetails(Long id){
+		// 执行查询
+		TbPortNews tbPortNews = tbPortNewsMapper.selectById(id);
+		if(Objects.isNull(tbPortNews)){
+			throw new RuntimeException("资讯不存在");
+		}
+		// 返回获取的最新口岸资讯
+		return AjaxJson.getSuccess("口岸资讯详情",tbPortNews.getContent());
+	}
+}

+ 30 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_port_news/TbPortNewsUtil.java

@@ -0,0 +1,30 @@
+package com.pj.tb_port_news;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import com.pj.utils.sg.*;
+import java.util.*;
+
+/**
+ * 工具类:tb_port_news -- 口岸咨询
+ * @author loovi
+ *
+ */
+@Component
+public class TbPortNewsUtil {
+
+	
+	/** 底层 Mapper 对象 */
+	public static TbPortNewsMapper tbPortNewsMapper;
+	@Autowired
+	private void setTbPortNewsMapper(TbPortNewsMapper tbPortNewsMapper) {
+		TbPortNewsUtil.tbPortNewsMapper = tbPortNewsMapper;
+	}
+	
+
+
+	
+	
+	
+}

+ 61 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_port_news/vo/TbPortNewsVo.java

@@ -0,0 +1,61 @@
+package com.pj.tb_port_news.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class TbPortNewsVo {
+    /**
+     * 主键
+     */
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 封面图片
+     */
+    private String cover;
+
+    /**
+     * 链接地址
+     */
+    private String url;
+
+    /**
+     * 内容
+     */
+    private String content;
+
+    /**
+     * 来源
+     */
+    private String source;
+
+    /**
+     * 阅读量
+     */
+    private Integer readCount;
+
+    /**
+     * 发布时间
+     *
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date releaseTime;
+
+}

+ 0 - 39
sp-service/sp-admin/src/main/java/com/pj/project4sp/admin/SpLoginInfo.java

@@ -1,39 +0,0 @@
-package com.pj.project4sp.admin;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.util.Date;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class SpLoginInfo {
-    /** id,--主键、自增 */
-    private String id;
-    /** admin名称 */
-    private String name;
-    /** 手机号 */
-    private String phone;
-
-    /** 所属角色id */
-    private Integer roleId;
-
-    /** 账号状态(1=正常, 2=禁用) */
-    private Integer status;
-
-    /** 上次登陆时间 */
-
-    private Date loginTime;
-
-    /** 上次登陆IP */
-    private String loginIp;
-
-    /** 登陆次数 */
-    private Integer loginCount;
-
-}

+ 0 - 2
sp-service/sp-admin/src/main/java/com/pj/project4sp/admin4login/SpAccAdminController.java

@@ -51,8 +51,6 @@ public class SpAccAdminController {
 	/** 退出登录  */
 	@RequestMapping("doExit")
 	AjaxJson doExit() {
-		// 退出时删除登录信息
-		RedisUtil.del("loginInfo:");
 		StpUtil.logout();
 		return AjaxJson.getSuccess();
 	}

+ 2 - 9
sp-service/sp-admin/src/main/java/com/pj/project4sp/admin4login/SpAccAdminService.java

@@ -5,11 +5,7 @@ import java.util.Date;
 import java.util.List;
 
 import com.pj.current.dto.PCLoginUserInfo;
-import cn.hutool.json.JSONUtil;
 import com.pj.current.satoken.StpUserUtil;
-import com.pj.project4sp.admin.SpLoginInfo;
-import com.pj.utils.cache.RedisUtil;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
@@ -99,8 +95,6 @@ public class SpAccAdminService {
         successLogin(admin);
         StpUtil.login(admin.getId());
         // 组织返回参数
-        SpLoginInfo spLoginInfo = new SpLoginInfo();
-        BeanUtils.copyProperties(admin,spLoginInfo);
         SoMap map = new SoMap();
         map.put("admin", admin);
         List<String> per_list = spRolePermissionService.getPcodeByRid2(admin.getRoleId());
@@ -108,9 +102,8 @@ public class SpAccAdminService {
         map.put("tokenInfo", StpUtil.getTokenInfo());
         StpUserUtil.cachePerList(per_list);
         // 记录登录信息至redis
-        RedisUtil.set("loginInfo:", JSONUtil.toJsonStr(spLoginInfo));
-        PCLoginUserInfo info=new PCLoginUserInfo();
-        info.setLoginId(admin.getId()).setLoginName(admin.getName());
+        PCLoginUserInfo info = new PCLoginUserInfo();
+        info.setLoginId(String.valueOf(admin.getId())).setLoginName(admin.getName());
         StpUserUtil.cachePcLoginInfo(info);
         return AjaxJson.getSuccessData(map);
     }