Explorar o código

add pro.properties

wuweihao %!s(int64=4) %!d(string=hai) anos
pai
achega
c115a7169c
Modificáronse 29 ficheiros con 178 adicións e 1815 borrados
  1. 1 0
      README.md
  2. 3 1
      gis_application/src/main/java/com/gis/GisApplication.java
  3. 48 0
      gis_application/src/main/resources/application-pro.properties
  4. 1 1
      gis_application/src/main/resources/application.properties
  5. 24 16
      gis_common/pom.xml
  6. 0 39
      gis_domain/src/main/java/com/gis/domain/po/BaseEntity.java
  7. 0 41
      gis_domain/src/main/java/com/gis/domain/po/SceneEntity.java
  8. 0 62
      gis_domain/src/main/java/com/gis/domain/po/SysUserEntity.java
  9. 0 18
      gis_mapper/src/main/java/com/gis/mapper/IBaseMapper.java
  10. 0 38
      gis_mapper/src/main/java/com/gis/mapper/SceneMapper.java
  11. 0 28
      gis_mapper/src/main/java/com/gis/mapper/SysUserMapper.java
  12. 0 41
      gis_mapper/src/main/java/com/gis/mapper/provider/CommentProvider.java
  13. 0 41
      gis_mapper/src/main/java/com/gis/mapper/provider/GiftProvider.java
  14. 0 34
      gis_mapper/src/main/java/com/gis/mapper/provider/SceneProvider.java
  15. 0 60
      gis_mapper/src/main/java/com/gis/mapper/provider/UserProvider.java
  16. 0 47
      gis_service/src/main/java/com/gis/service/IBaseService.java
  17. 0 30
      gis_service/src/main/java/com/gis/service/SceneService.java
  18. 0 22
      gis_service/src/main/java/com/gis/service/SysUserService.java
  19. 0 210
      gis_service/src/main/java/com/gis/service/impl/IBaseServiceImpl.java
  20. 0 395
      gis_service/src/main/java/com/gis/service/impl/SceneServiceImpl.java
  21. 0 42
      gis_service/src/main/java/com/gis/service/impl/SysUserServiceImpl.java
  22. 100 100
      gis_service/src/main/java/com/gis/service/impl/WxServiceImpl.java
  23. 0 135
      gis_service/src/main/java/com/gis/service/shiro/JWTFilter.java
  24. 0 23
      gis_service/src/main/java/com/gis/service/shiro/JWTToken.java
  25. 0 110
      gis_service/src/main/java/com/gis/service/shiro/MyRealm.java
  26. 0 114
      gis_service/src/main/java/com/gis/service/shiro/ShiroConfig.java
  27. 0 120
      gis_web/src/main/java/com/gis/web/controller/BaseController.java
  28. 1 1
      gis_web/src/main/java/com/gis/web/controller/UploadController.java
  29. 0 46
      gis_web/src/main/java/com/gis/web/controller/WxLoginController.java

+ 1 - 0
README.md

@@ -1,3 +1,4 @@
 # wx_reload_beijing 2021-04-22
 AI一键换装-东方一贤-北京
 
+    2021-07-20-pro, 不需要数据库

+ 3 - 1
gis_application/src/main/java/com/gis/GisApplication.java

@@ -1,9 +1,11 @@
 package com.gis;
 
 import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
 
-@SpringBootApplication
+@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class})
 public class GisApplication {
 
     public static void main(String[] args) {

+ 48 - 0
gis_application/src/main/resources/application-pro.properties

@@ -0,0 +1,48 @@
+
+#log
+logging.path=/root/data/${project.name}_log
+logging.config=classpath:logback-spring.xml
+logging.level.com.gis=debug
+
+
+
+# file info
+server.file.path=/root/data/${project.name}_data/
+
+# url prefix
+server.url.prefix=/data/
+
+# swagger2 \u8BBE\u7F6E\u5168\u5C40\u5B57\u4F53\u683C\u5F0F\u4E3Autf-8
+swagger.package=com.gis.web.controller
+swagger.title=AI\u6362\u88C5-\u4E1C\u65B9\u4E00\u8D24-pro
+swagger.description=${swagger.title}
+swagger.version=1.0
+
+
+#oss
+oss.point=http://oss-cn-shenzhen.aliyuncs.com
+oss.key=LTAIUrvuHqj8pvry
+oss.secrecy=JLOVl0k8Ke0aaM8nLMMiUAZ3EiiqI4
+oss.bucket=oss-xiaoan
+oss.type=oss
+oss.file.path=${project.name}/
+oss.domain=http://ossxiaoan.4dage.com/
+
+# \u5FAE\u4FE1\u4FE1\u606F
+wx.appId=wxbd0f9ff2a5621bf3
+wx.appSecret=94f6cf81ce63fbbf19a155070bb29b60
+
+# \u5C0F\u7A0B\u5E8F\u914D\u7F6E\u6587\u4EF6\uFF0C\u9700\u8981\u9759\u6001\u8D44\u6E90\u76EE\u5F55
+# \u5339\u914D\u89C4\u5219
+spring.mvc.static-path-pattern=/**
+### \u5339\u914D\u8DEF\u5F84
+spring.resources.static-locations=file:${server.file.path}
+
+
+# swagger login
+knife4j.basic.enable=true
+knife4j.basic.username=owen
+knife4j.basic.password=owen
+
+
+

+ 1 - 1
gis_application/src/main/resources/application.properties

@@ -1,6 +1,6 @@
 server.port=8007
 
-spring.profiles.active=dev
+spring.profiles.active=pro
 
 # \u9879\u76EE\u540D\u79F0
 project.name=wx_reload_beijing

+ 24 - 16
gis_common/pom.xml

@@ -21,10 +21,10 @@
         </dependency>
 
         <!-- JPA -->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-data-jpa</artifactId>
-        </dependency>
+        <!--<dependency>-->
+            <!--<groupId>org.springframework.boot</groupId>-->
+            <!--<artifactId>spring-boot-starter-data-jpa</artifactId>-->
+        <!--</dependency>-->
 
         <dependency>
             <groupId>org.springframework.boot</groupId>
@@ -33,10 +33,10 @@
         </dependency>
 
         <!--springboot中的redis依赖-->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-data-redis</artifactId>
-        </dependency>
+        <!--<dependency>-->
+            <!--<groupId>org.springframework.boot</groupId>-->
+            <!--<artifactId>spring-boot-starter-data-redis</artifactId>-->
+        <!--</dependency>-->
 
         <dependency>
             <groupId>junit</groupId>
@@ -56,16 +56,16 @@
         </dependency>
 
         <!-- mysql -->
-        <dependency>
-            <groupId>mysql</groupId>
-            <artifactId>mysql-connector-java</artifactId>
-        </dependency>
+        <!--<dependency>-->
+            <!--<groupId>mysql</groupId>-->
+            <!--<artifactId>mysql-connector-java</artifactId>-->
+        <!--</dependency>-->
 
         <!--阿里数据库连接池 -->
-        <dependency>
-            <groupId>com.alibaba</groupId>
-            <artifactId>druid-spring-boot-starter</artifactId>
-        </dependency>
+        <!--<dependency>-->
+            <!--<groupId>com.alibaba</groupId>-->
+            <!--<artifactId>druid-spring-boot-starter</artifactId>-->
+        <!--</dependency>-->
 
 
         <!-- knife4j aip 包-->
@@ -172,6 +172,14 @@
         </dependency>
 
 
+        <!-- aop , jpa包含这个包 -->
+        <dependency>
+            <groupId>org.aspectj</groupId>
+            <artifactId>aspectjweaver</artifactId>
+            <version>1.9.6</version>
+        </dependency>
+
+
 
     </dependencies>
 

+ 0 - 39
gis_domain/src/main/java/com/gis/domain/po/BaseEntity.java

@@ -1,39 +0,0 @@
-package com.gis.domain.po;
-
-import com.alibaba.fastjson.annotation.JSONField;
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.persistence.*;
-import java.util.Date;
-
-@Data
-@MappedSuperclass
-public abstract class BaseEntity {
-
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "id")
-    @ApiModelProperty(value = "对象ID")
-    private Long id;
-
-    @ApiModelProperty(value = "创建时间")
-    @Temporal(TemporalType.TIMESTAMP)
-    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
-    private Date createTime;
-
-    @ApiModelProperty(value = "修改时间")
-    @Temporal(TemporalType.TIMESTAMP)
-    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
-    private Date updateTime;
-
-    /**
-     * 用来批量操作的
-     * 0代表未删除 , 1代表已经删除,默认写0
-     * 需要使用对象类型
-     */
-    @JsonIgnore
-    @JSONField(serialize = false)
-    private Integer isDelete;
-}

+ 0 - 41
gis_domain/src/main/java/com/gis/domain/po/SceneEntity.java

@@ -1,41 +0,0 @@
-package com.gis.domain.po;
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.persistence.Entity;
-import javax.persistence.Table;
-import java.io.Serializable;
-
-@Data
-@Entity
-@Table(name = "tb_scene")
-public class SceneEntity extends BaseEntity implements Serializable {
-
-    private static final long serialVersionUID = -8093446477843493946L;
-
-    @ApiModelProperty(value = "场景码")
-    private String sceneCode;
-
-    @ApiModelProperty(value = "存放地址")
-    private String path;
-
-    @ApiModelProperty(value = "场景名称")
-    private String sceneTitle;
-
-//    @ApiModelProperty(value = "场景url")
-//    private String webSite;
-
-//    @ApiModelProperty(value = "简介")
-//    private String description;
-
-
-    @ApiModelProperty(value = "是否显示,1:是, 0:否")
-    private Integer display;
-
-
-
-//    @ApiModelProperty(value = "排序")
-//    private Integer sort;
-
-}

+ 0 - 62
gis_domain/src/main/java/com/gis/domain/po/SysUserEntity.java

@@ -1,62 +0,0 @@
-package com.gis.domain.po;
-
-import com.alibaba.fastjson.annotation.JSONField;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.persistence.Entity;
-import javax.persistence.Table;
-import java.io.Serializable;
-
-/**
- * 用户表
- */
-@Data
-@Entity
-@Table(name = "sys_user")
-public class SysUserEntity extends BaseEntity implements Serializable {
-
-    private static final long serialVersionUID = -853504493430501564L;
-
-    @ApiModelProperty(value = "用户名")
-    private String userName;
-
-    @JSONField(serialize = false)
-    private String password;
-
-    @ApiModelProperty(value = "真实姓名")
-    private String realName;
-
-    @ApiModelProperty(value = "昵称")
-    private String nickName;
-
-    @ApiModelProperty(value = "性别 0:男  1:女")
-    private Integer sex;
-
-    @ApiModelProperty(value = "电话")
-    private String phone;
-
-//    @ApiModelProperty(value = "单位")
-//    private String unit;
-
-//    @ApiModelProperty(value = "地址")
-//    private String address;
-
-//    @ApiModelProperty(value = "超级管理员,1:是, 0:否")
-//    private Integer sysManager;
-
-    @ApiModelProperty(value = "状态 1:启用  0:停用 ")
-    private Integer status;
-
-//    @ApiModelProperty(value = "高清图url")
-//    private String img;
-
-    @ApiModelProperty(value = "缩略图url")
-    private String thumb;
-
-    @ApiModelProperty(value = "角色,sys_admin:系统管理员, sys_normal:普通管理员")
-    private String role;
-
-
-
-}

+ 0 - 18
gis_mapper/src/main/java/com/gis/mapper/IBaseMapper.java

@@ -1,18 +0,0 @@
-package com.gis.mapper;
-
-import com.gis.domain.po.BaseEntity;
-import tk.mybatis.mapper.common.BaseMapper;
-import tk.mybatis.mapper.common.ConditionMapper;
-import tk.mybatis.mapper.common.IdsMapper;
-import tk.mybatis.mapper.common.special.InsertListMapper;
-
-
-import java.io.Serializable;
-
-/**
- * Created by owen on 2020/2/18 0018 11:27
- */
-
-public interface IBaseMapper<T extends BaseEntity, ID extends Serializable> extends BaseMapper<T>,
-        ConditionMapper<T>, IdsMapper<T>, InsertListMapper<T> {
-}

+ 0 - 38
gis_mapper/src/main/java/com/gis/mapper/SceneMapper.java

@@ -1,38 +0,0 @@
-package com.gis.mapper;
-
-
-import com.gis.domain.dto.PageDto;
-import com.gis.domain.po.SceneEntity;
-import com.gis.mapper.provider.SceneProvider;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.SelectProvider;
-import org.apache.ibatis.annotations.Update;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-@Component
-@Mapper
-public interface SceneMapper extends IBaseMapper<SceneEntity, Long> {
-
-    @Select("select * from tb_scene where scene_code = #{m}")
-    SceneEntity findBySceneCode(String m);
-
-//    @SelectProvider(type = SceneProvider.class, method = "search")
-//    List<SceneEntity> search(ScenePageDto param);
-
-    @SelectProvider(type = SceneProvider.class, method = "search")
-    List<SceneEntity> search(PageDto param);
-
-
-
-    @Update("update tb_scene set display = 0 where display = 1 ")
-    void setDisable();
-
-    @Update("update tb_scene set display = 1 where id = #{id} ")
-    void setDisplay(Long id);
-
-    @Update("update tb_scene set display = 0 where is_delete = '0' and display = 1 and type = #{type}")
-    void setDisableByType(String type);
-}

+ 0 - 28
gis_mapper/src/main/java/com/gis/mapper/SysUserMapper.java

@@ -1,28 +0,0 @@
-package com.gis.mapper;
-
-
-import com.gis.domain.dto.PageDateDto;
-import com.gis.domain.po.SysUserEntity;
-import com.gis.mapper.provider.UserProvider;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.SelectProvider;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-@Component
-@Mapper
-public interface SysUserMapper extends IBaseMapper<SysUserEntity, Long> {
-
-
-    @Select(value = "select * from sys_user where is_delete = '0' AND user_name= #{userName}")
-    SysUserEntity findByUserName(String userName);
-
-    @Select(value = "select * from sys_user where is_delete = '0' AND phone = #{phone}")
-    SysUserEntity findByPhone(String phone);
-
-    @SelectProvider(type = UserProvider.class, method = "search")
-    List<SysUserEntity> search(PageDateDto param);
-
-}

+ 0 - 41
gis_mapper/src/main/java/com/gis/mapper/provider/CommentProvider.java

@@ -1,41 +0,0 @@
-package com.gis.mapper.provider;
-
-import com.gis.domain.dto.PageDateDto;
-import lombok.extern.log4j.Log4j2;
-import org.apache.commons.lang3.StringUtils;
-
-/**
- * Created by owen on 2020/6/13 0013 10:56
- */
-@Log4j2
-public class CommentProvider {
-
-
-    public String search(PageDateDto param, Integer display){
-        StringBuffer sql = new StringBuffer(
-                "select * from tb_comment where is_delete = '0' ");
-
-        if(StringUtils.isNotBlank(param.getStartTime()) ){
-
-            sql.append(" and create_time >= ").append("'").append(param.getStartTime()).append("'");
-
-        }
-
-        if (StringUtils.isNotBlank(param.getEndTime())) {
-            sql.append(" and create_time <= ").append("'").append(param.getEndTime()).append("'");
-        }
-
-        String searchKey = param.getSearchKey();
-        if(StringUtils.isNotBlank(searchKey)){
-            sql.append(" and ( msg like '%").append(searchKey).append("%' )");
-        }
-
-        if (display != null) {
-            sql.append(" and display = ").append(display);
-        }
-
-        sql.append(" order by create_time desc");
-        log.info("sql: {}", sql.toString());
-        return sql.toString();
-    }
-}

+ 0 - 41
gis_mapper/src/main/java/com/gis/mapper/provider/GiftProvider.java

@@ -1,41 +0,0 @@
-package com.gis.mapper.provider;
-
-import com.gis.domain.dto.PageDateDto;
-import lombok.extern.log4j.Log4j2;
-import org.apache.commons.lang3.StringUtils;
-
-/**
- * Created by owen on 2020/6/13 0013 10:56
- */
-@Log4j2
-public class GiftProvider {
-
-
-    public String search(PageDateDto param, Integer display){
-        StringBuffer sql = new StringBuffer(
-                "select * from tb_comment where is_delete = '0' ");
-
-        if(StringUtils.isNotBlank(param.getStartTime()) ){
-
-            sql.append(" and create_time >= ").append("'").append(param.getStartTime()).append("'");
-
-        }
-
-        if (StringUtils.isNotBlank(param.getEndTime())) {
-            sql.append(" and create_time <= ").append("'").append(param.getEndTime()).append("'");
-        }
-
-        String searchKey = param.getSearchKey();
-        if(StringUtils.isNotBlank(searchKey)){
-            sql.append(" and ( name like '%").append(searchKey).append("%' )");
-        }
-
-        if (display != null) {
-            sql.append(" and display = ").append(display);
-        }
-
-        sql.append(" order by create_time desc");
-        log.info("sql: {}", sql.toString());
-        return sql.toString();
-    }
-}

+ 0 - 34
gis_mapper/src/main/java/com/gis/mapper/provider/SceneProvider.java

@@ -1,34 +0,0 @@
-package com.gis.mapper.provider;
-
-import com.gis.domain.dto.PageDto;
-import lombok.extern.log4j.Log4j2;
-import org.apache.commons.lang3.StringUtils;
-
-
-/**
- * Created by owen on 2020/6/13 0013 10:56
- */
-@Log4j2
-public class SceneProvider {
-
-
-    public String search(PageDto param){
-        StringBuffer sql = new StringBuffer(
-                "select * from tb_scene where is_delete = '0' ");
-
-        String searchKey = param.getSearchKey();
-        if(!StringUtils.isAllBlank(searchKey)){
-            sql.append(" and ( scene_title like '%").append(searchKey).append("%' )");
-        }
-
-//        String type = param.getType();
-//        if (StringUtils.isNotBlank(type)){
-//            sql.append(" and type = '").append(type).append("'");
-//        }
-
-
-        sql.append(" order by display desc, create_time desc");
-        log.info("sql: {}", sql.toString());
-        return sql.toString();
-    }
-}

+ 0 - 60
gis_mapper/src/main/java/com/gis/mapper/provider/UserProvider.java

@@ -1,60 +0,0 @@
-package com.gis.mapper.provider;
-
-import com.gis.domain.dto.PageDateDto;
-import lombok.extern.log4j.Log4j2;
-import org.apache.commons.lang3.StringUtils;
-
-/**
- * Created by owen on 2020/6/13 0013 10:56
- */
-@Log4j2
-public class UserProvider {
-
-
-    public String search(PageDateDto param){
-        StringBuffer sql = new StringBuffer(
-                "select * from sys_user where is_delete = '0' ");
-
-        if(StringUtils.isNotBlank(param.getStartTime()) ){
-
-            sql.append(" and create_time >= ").append("'").append(param.getStartTime()).append("'");
-
-        }
-
-        if (StringUtils.isNotBlank(param.getEndTime())) {
-            sql.append(" and create_time <= ").append("'").append(param.getEndTime()).append("'");
-        }
-
-        String searchKey = param.getSearchKey();
-        if(StringUtils.isNotBlank(searchKey)){
-            sql.append(" and ( real_name like '%").append(searchKey).append("%' )");
-        }
-
-//        String roleKey = param.getRole();
-//        if (StringUtils.isNotBlank(roleKey)) {
-//            sql.append(" and role = '").append(roleKey).append("'");
-//        }
-
-
-//        // 区分系统管理员跟游客
-//        int type = param.getType();
-//        if (type == 0) {
-//            sql.append(" and role = '").append("sys_visitor'");
-//        } else {
-//
-//
-//
-//
-//            sql.append(" and role <> '").append("sys_visitor'");
-//        }
-
-        sql.append(" order by create_time desc");
-        log.info("sql: {}", sql.toString());
-        return sql.toString();
-    }
-
-
-
-
-
-}

+ 0 - 47
gis_service/src/main/java/com/gis/service/IBaseService.java

@@ -1,47 +0,0 @@
-package com.gis.service;
-
-import com.github.pagehelper.PageInfo;
-import tk.mybatis.mapper.entity.Condition;
-
-import java.io.Serializable;
-import java.util.List;
-
-public interface IBaseService<T, ID extends Serializable> {
-
-    public abstract T findById(ID id);
-
-    public abstract T findOne(T entity);
-
-    public abstract List<T> findByIds(String ids);
-
-    public abstract long count();
-
-    public abstract boolean exists(ID id);
-
-    public abstract int save(T entity);
-
-    public abstract int update(T entity);
-
-    public abstract int updateAll(T entity);
-
-    public abstract int deleteById(ID id);
-
-    public abstract int deleteByIds(String ids);
-
-    public abstract int delete(T entity);
-
-    public abstract List<T> findAll(Condition condition, String orderBy);
-
-    public abstract List<T> findAll(Condition condition);
-
-    public abstract List<T> findAll();
-
-    public abstract PageInfo<T> findAll(int pageNum, int pageSize);
-
-    public abstract PageInfo<T> findAll(int pageNum, int pageSize, String orderBy);
-
-    public abstract PageInfo<T> findAll(Condition condition, int pageNum, int pageSize);
-
-    public abstract PageInfo<T> findAll(Condition condition, int pageNum, int pageSize, String orderBy);
-
-}

+ 0 - 30
gis_service/src/main/java/com/gis/service/SceneService.java

@@ -1,30 +0,0 @@
-package com.gis.service;
-
-
-import com.gis.common.util.Result;
-import com.gis.domain.dto.PageDto;
-import com.gis.domain.dto.RoamViableDto;
-import com.gis.domain.dto.SceneDataDto;
-import com.gis.domain.po.SceneEntity;
-
-import java.util.List;
-
-
-/**
- * Created by owen on 2020/3/11 0011 16:14
- */
-public interface SceneService extends IBaseService<SceneEntity, Long> {
-
-
-    SceneEntity findBySceneCode(String m);
-
-//    List<SceneEntity> search(ScenePageDto param);
-
-    Result<SceneEntity> search(PageDto param);
-
-    Result roamViable(RoamViableDto param) throws Exception;
-
-    Result edit(SceneDataDto param);
-
-    Result display(Long id);
-}

+ 0 - 22
gis_service/src/main/java/com/gis/service/SysUserService.java

@@ -1,22 +0,0 @@
-package com.gis.service;
-
-
-import com.gis.domain.dto.PageDateDto;
-import com.gis.domain.po.SysUserEntity;
-
-import java.util.List;
-
-
-/**
- * Created by owen on 2020/3/11 0011 16:14
- */
-public interface SysUserService extends IBaseService<SysUserEntity, Long> {
-
-
-    SysUserEntity findByUserName(String userName);
-
-
-
-    List<SysUserEntity> search(PageDateDto param);
-
-}

+ 0 - 210
gis_service/src/main/java/com/gis/service/impl/IBaseServiceImpl.java

@@ -1,210 +0,0 @@
-package com.gis.service.impl;
-
-import com.gis.common.constant.ConfigConstant;
-import com.gis.common.util.JwtUtil;
-import com.gis.domain.dto.PageDto;
-import com.github.pagehelper.PageHelper;
-import com.github.pagehelper.PageInfo;
-import com.gis.mapper.IBaseMapper;
-import com.gis.domain.po.BaseEntity;
-import com.gis.service.IBaseService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.StringUtils;
-import tk.mybatis.mapper.entity.Condition;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-import java.io.Serializable;
-import java.lang.reflect.ParameterizedType;
-import java.util.Date;
-import java.util.List;
-
-/**
- * Created by owen on 2020/2/18 0018 11:22
- */
-@Transactional
-public abstract class IBaseServiceImpl<T extends BaseEntity, ID extends Serializable> implements IBaseService<T, ID> {
-
-
-    @Autowired
-    ConfigConstant configConstant;
-
-    /**
-     * 2021-04-20
-     * 这里不能使用 @Autowired 注入HttpServletRequest 会报已注入的错误
-     */
-//    @Autowired
-//    HttpServletRequest request;
-
-    public abstract IBaseMapper<T, ID> getBaseMapper();
-
-    private Class<T> entityClass;
-
-    public IBaseServiceImpl(){
-        ParameterizedType pt = (ParameterizedType) this.getClass().getGenericSuperclass();
-        entityClass = (Class<T>) pt.getActualTypeArguments()[0];
-    }
-
-    @Override
-    public T findById(ID id){
-        Condition condition = new Condition(entityClass);
-        condition.createCriteria().andEqualTo("id", id);
-        condition.and().andEqualTo("isDelete", 0);
-        List<T> ts = getBaseMapper().selectByCondition(condition);
-        if (ts != null && ts.size() > 0){
-            return ts.get(0);
-        }else{
-            return null;
-        }
-    }
-
-    @Override
-    public T findOne(T entity){
-        entity.setIsDelete(0);
-        return getBaseMapper().selectOne(entity);
-    }
-
-    @Override
-    public List<T> findAll(){
-        Condition condition = new Condition(entityClass);
-        condition.and().andEqualTo("isDelete", 0);
-        return getBaseMapper().selectByCondition(condition);
-    }
-
-    /**
-     * 根据主键字符串进行查询,类中只有存在一个带有@Id注解的字段
-     *
-     * @param ids 如 "1,2,3,4"
-     * @return
-     */
-    @Override
-    public List<T> findByIds(String ids){
-        return getBaseMapper().selectByIds(ids);
-    }
-
-    @Override
-    public long count(){
-        List<T> all = this.findAll();
-        if (all != null && all.size() > 0){
-            return all.size();
-        }
-        return 0;
-    }
-
-    @Override
-    public boolean exists(ID id){
-        return getBaseMapper().existsWithPrimaryKey(id);
-    }
-
-    @Override
-    public int save(T entity) {
-        //migration之后要删掉判断
-        if (entity.getCreateTime() == null){
-            entity.setCreateTime(new Date());
-        }
-        if (entity.getUpdateTime() == null){
-            entity.setUpdateTime(new Date());
-        }
-        entity.setIsDelete(0);
-        return getBaseMapper().insertSelective(entity);
-    }
-
-    @Override
-    public int update(T entity) {
-        //migration之后要删掉判断
-        if (entity.getUpdateTime() == null){
-            entity.setUpdateTime(new Date());
-        }
-        return getBaseMapper().updateByPrimaryKeySelective(entity);
-    }
-
-    @Override
-    public int updateAll(T entity) {
-        //migration之后要删掉判断
-        if (entity.getUpdateTime() == null){
-            entity.setUpdateTime(new Date());
-        }
-        return getBaseMapper().updateByPrimaryKey(entity);
-    }
-
-    @Override
-    public int deleteById(ID id) {
-        return getBaseMapper().deleteByPrimaryKey(id);
-    }
-
-    @Override
-    public int deleteByIds(String ids){
-        return getBaseMapper().deleteByIds(ids);
-    }
-
-    @Override
-    public int delete(T entity){
-        return getBaseMapper().delete(entity);
-    }
-
-    public List<T> findAll(Condition condition){
-        condition.and().andEqualTo("isDelete", 0);
-        return getBaseMapper().selectByCondition(condition);
-    }
-
-    public List<T> findAll(Condition condition, String orderBy){
-        condition.and().andEqualTo("isDelete", 0);
-        if (!StringUtils.isEmpty(orderBy)){
-            PageHelper.orderBy(orderBy);
-        }
-        return getBaseMapper().selectByCondition(condition);
-    }
-
-    public PageInfo<T> findAll(int pageNum, int pageSize){
-        PageHelper.startPage(pageNum, pageSize);
-        return new PageInfo<>(this.findAll());
-    }
-
-    public PageInfo<T> findAll(int pageNum, int pageSize, String orderBy){
-        PageHelper.startPage(pageNum, pageSize);
-        if (!StringUtils.isEmpty(orderBy)){
-            PageHelper.orderBy(orderBy);
-        }
-        return new PageInfo<>(this.findAll());
-    }
-
-    public PageInfo<T> findAll(Condition condition, int pageNum, int pageSize){
-        PageHelper.startPage(pageNum, pageSize);
-        return new PageInfo<>(this.findAll(condition));
-    }
-
-    public PageInfo<T> findAll(Condition condition, int pageNum, int pageSize, String orderBy){
-        PageHelper.startPage(pageNum, pageSize);
-        if (!StringUtils.isEmpty(orderBy)){
-            PageHelper.orderBy(orderBy);
-        }
-        return new PageInfo<>(this.findAll(condition));
-    }
-
-
-    /**
-     * 设置请求分页数据
-     */
-    public void startPage(PageDto param){
-        Integer pageNum = param.getPageNum();
-        Integer pageSize = param.getPageSize();
-        if (pageNum == null || pageNum <= 0) {
-            pageNum = 0;
-        }
-        if (pageSize == null || pageSize <= 0) {
-            pageSize = 10;
-        }
-        PageHelper.startPage(pageNum, pageSize);
-    }
-
-    /** 获取用户id*/
-    Long getTokenUserId(HttpServletRequest request){
-        return JwtUtil.getUserId(getToken(request));
-    }
-
-    /** 获取header token */
-    String getToken(HttpServletRequest request){
-        return request.getHeader("token");
-    }
-}

+ 0 - 395
gis_service/src/main/java/com/gis/service/impl/SceneServiceImpl.java

@@ -1,395 +0,0 @@
-package com.gis.service.impl;
-
-import cn.hutool.core.io.FileUtil;
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.alibaba.fastjson.serializer.SerializerFeature;
-import com.gis.common.proto.util.ConvertUtils;
-import com.gis.common.util.Result;
-import com.gis.domain.dto.PageDto;
-import com.gis.domain.dto.RoamViableDto;
-import com.gis.domain.dto.SceneDataDto;
-import com.gis.domain.po.SceneEntity;
-import com.gis.mapper.SceneMapper;
-import com.gis.mapper.IBaseMapper;
-import com.gis.service.SceneService;
-import com.github.pagehelper.PageInfo;
-import lombok.extern.log4j.Log4j2;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.Set;
-
-
-/**
- * Created by owen on 2020/3/11 0011 16:16
- */
-@Log4j2
-@Service
-public class SceneServiceImpl extends IBaseServiceImpl<SceneEntity, Long> implements SceneService {
-
-    @Autowired
-    private SceneMapper entityMapper;
-
-    @Override
-    public IBaseMapper<SceneEntity, Long> getBaseMapper() {
-        return this.entityMapper;
-    }
-
-
-    @Override
-    public SceneEntity findBySceneCode(String m) {
-        return entityMapper.findBySceneCode(m);
-    }
-
-//    @Override
-//    public List<SceneEntity> search(ScenePageDto param) {
-//        return entityMapper.search(param);
-//    }
-
-    @Override
-    public Result<SceneEntity> search(PageDto param) {
-        startPage(param);
-        PageInfo<SceneEntity> page = new PageInfo<>(entityMapper.search(param));
-        return Result.success(page);
-    }
-
-    /**
-     * 漫游可行
-     */
-    @Override
-    public Result roamViable(RoamViableDto param) throws Exception {
-        String sceneCode = param.getSceneCode();
-        SceneEntity entity = entityMapper.findBySceneCode(param.getSceneCode());
-        if (entity == null) {
-            log.error("场景不存在:{}", sceneCode);
-            return Result.failure("场景不存在");
-        }
-
-
-        // 1. 从oss下载vision.modeldata
-        String visionModelDataName = "vision.modeldata";
-        // 注意网络下载会有缓存,必须加时间戳
-//        log.info("网络下载文件地址: {}", urlPath);
-//        String localBasePath = FILE_PATH + sceneCode;
-        String localBasePath = configConstant.serverBasePath + sceneCode;
-
-        // 2. 将vision.modeldata 转 vision.json
-        String visionModelDataPath = localBasePath + "/" + visionModelDataName;
-        if (!FileUtil.exist(visionModelDataPath)) {
-            log.error("vision.modeldata不存在 : {}", visionModelDataPath);
-            return Result.failure("vision.modeldata不存在");
-        }
-//        log.info(visionModelDataName+ "下载完成");
-
-
-        String visionJsonPath = localBasePath + "/vision.json";
-        ConvertUtils.convertVisionModelDataToTxt(visionModelDataPath, visionJsonPath);
-        if (!FileUtil.exist(visionJsonPath)) {
-            log.error("vision.json不存在 : {}", visionJsonPath);
-            return Result.failure("vision.modeldata不存在");
-        }
-
-        // 3. 编辑新数据到vision.json
-        JSONArray inputDates = JSONObject.parseArray(param.getData());
-
-        JSONObject visionJson = JSONObject.parseObject(FileUtil.readUtf8String(visionJsonPath));
-        JSONArray sweepLocations = visionJson.getJSONArray("sweepLocations");
-
-        for (int i = 0; i < sweepLocations.size(); i++) {
-            JSONObject pano = sweepLocations.getJSONObject(i);
-
-            for (int j = 0; j < inputDates.size(); j++) {
-                JSONObject jo = inputDates.getJSONObject(j);
-                String panoID = jo.getString("panoID");
-                JSONArray visibles3 = jo.getJSONArray("visibles3");
-
-                // 去掉uuid 的“-”
-                String uuid = pano.getString("uuid");
-                String s = StringUtils.replaceAll(uuid, "-", "");
-                if (s.equals(panoID)) {
-                    log.info("uuid: {}, panoID: {}", uuid, panoID);
-                    pano.put("visibles", visibles3);
-                    log.info("visibles: {},visibles3:{}", pano.get("visibles"), visibles3);
-                }
-            }
-        }
-
-
-        // 删除旧vision.json,vision.modeldata
-        FileUtil.del(visionJsonPath);
-        FileUtil.del(visionModelDataPath);
-
-        // 写入新vision.json
-        FileUtil.writeUtf8String(visionJson.toJSONString(), visionJsonPath);
-        if (!FileUtil.exist(visionJsonPath)) {
-            log.error("new vision.json不存在");
-        }
-
-        log.info( "新vision.json创建完成 :{}", visionJsonPath);
-
-
-
-
-        // 4. 将vision.json转vision.modeldata
-        ConvertUtils.convertTxtToVisionModelData(visionJsonPath, visionModelDataPath);
-
-        // 5. 将新的vision.modeldata上传到oss
-        if (!FileUtil.exist(visionModelDataPath)) {
-            log.error("vision.modeldata不存在");
-        }
-        log.info("新" + visionModelDataName+ "创建完成 :{}", visionModelDataPath);
-
-
-        return Result.success();
-    }
-
-    @Override
-    public Result edit(SceneDataDto param) {
-        String sceneCode = param.getSceneCode();
-        SceneEntity entity = this.findBySceneCode(param.getSceneCode());
-        if (entity == null) {
-            log.error("场景不存在 : {}", sceneCode);
-            return Result.failure("场景不存在");
-        }
-
-        String basePath = configConstant.serverBasePath + sceneCode;
-
-
-        // 处理someData.json
-
-//        String someDataPath = entity.getPath() + "/someData.json";
-        String someDataPath = basePath + "/someData.json";
-        if (!FileUtil.isFile(someDataPath)) {
-            log.error("someData.json文件不存在");
-            return Result.failure("someData.json文件不存在");
-        }
-
-        // 读取someDataJson
-        String someData = FileUtil.readUtf8String(someDataPath);
-        JSONObject someDataJson = JSONObject.parseObject(someData);
-
-
-
-        String info = param.getInfo();
-        String guides = param.getGuides();
-        JSONArray guidesArray = new JSONArray();
-        if (guides != null) {
-            guidesArray = JSONObject.parseArray(guides);
-
-        }
-
-
-        if (info != null) {
-            JSONObject infoJson = JSONObject.parseObject(info);
-
-            // 处理model
-            JSONObject model = someDataJson.getJSONObject("model");
-            if (model != null) {
-                if (guidesArray != null) {
-                    model.put("images", guidesArray);
-                }
-
-            }
-
-            // 更新someDataJson
-            someDataJson.put("model", model);
-
-            // info信息添加到someDataJson最外层
-            Set<String> infoKey = infoJson.keySet();
-            for (String key : infoKey) {
-
-                someDataJson.put(key, infoJson.get(key));
-            }
-
-            // 删除旧someDataJson
-            FileUtil.del(someDataPath);
-            // 写入新someDataJson
-            FileUtil.writeUtf8String(someDataJson.toJSONString(), someDataPath);
-            log.info("someData.json写入完成");
-        }
-
-        // 处理data2.js
-        String data2Path = basePath + "/data2.js";
-        boolean file = FileUtil.isFile(data2Path);
-        if (!file) {
-            log.error("data2.js文件不存在");
-            return Result.failure("data2.js文件不存在");
-        }
-
-        String data2 = FileUtil.readUtf8String(data2Path);
-        JSONObject data2Json = JSONObject.parseObject(data2);
-
-        String tourAudio = param.getTourAudio();
-        if (tourAudio != null) {
-            data2Json.put("tourAudio", JSONObject.parseObject(tourAudio));
-        } else {
-            data2Json.put("tourAudio", new JSONObject());
-        }
-
-        // overlays是数组
-        String overlays = param.getOverlays();
-        if (overlays != null) {
-            data2Json.put("overlays", JSONObject.parseArray(overlays));
-        } else {
-            data2Json.put("overlays", new JSONArray());
-        }
-
-        // 处理guidesArray,将scan_id的值作为key, value:  time":40000
-        JSONObject audioJson = new JSONObject();
-        JSONObject timeJson = new JSONObject();
-        timeJson.put("time", 40000);
-        if (guidesArray != null) {
-
-            // 将旧的audio字段删除
-            data2Json.remove("audio");
-
-            for (int i = 0; i < guidesArray.size() ; i++) {
-                JSONObject metadata = guidesArray.getJSONObject(i).getJSONObject("metadata");
-                if (metadata != null) {
-                    String scanId = metadata.getString("scan_id");
-                    if (scanId == null) {
-                        log.error("guides.metadata.scan_id为空: {}", i);
-                        return Result.failure("guides.metadata.scan_id为空: " + i);
-                    }
-                    // Fastjson-fastjson中$ref对象重复引用问题,拿不到想要的效果
-                    audioJson.put(scanId, JSON.toJSONString(timeJson, SerializerFeature.DisableCircularReferenceDetect));
-
-                }
-            }
-
-            // 新增audio
-            data2Json.put("audio", audioJson);
-        }
-
-
-        // host在data2.js、data.js都需要处理
-        String hots = param.getHots();
-        log.info("input hots: {}", hots);
-        if (hots != null) {
-            // 获取所有key
-            JSONObject hotJson = JSONObject.parseObject(hots);
-
-            Set<String> strings = hotJson.keySet();
-            for (String key: strings) {
-                JSONObject subJson = hotJson.getJSONObject(key);
-
-                // 2021.04.02 处理link
-                String link = getLink(subJson, key);
-
-                // 将link 添加进去
-                subJson.put("link", link);
-            }
-            data2Json.put("hots", hotJson);
-        } else {
-            data2Json.put("hots", new JSONObject());
-        }
-
-
-        // 删除旧data2.js
-        FileUtil.del(data2Path);
-
-
-        // 写入新data2.js
-        FileUtil.writeUtf8String(data2Json.toJSONString(), data2Path);
-        log.info("新data2.js写入完成");
-
-
-        //处理data.js 文件
-        editDataJs(entity, hots);
-
-        return Result.success();
-    }
-
-    @Override
-    public Result display(Long id) {
-        SceneEntity entity = findById(id);
-        if (entity == null) {
-            return Result.failure("场景不存在, id: " + id);
-        }
-        // 需求:只有一个是可用;先禁用,再启用
-        entityMapper.setDisable();
-        entityMapper.setDisplay(id);
-        return Result.success();
-    }
-
-    /**
-     * 2021.04.02 处理infoAttribute的m_title
-     * String url  = "https://www.4dmodel.com/SuperTwo/hot_online/index.html?m=" + key;
-     * String url  = SERVER_DOMAIN + "edit-backstage/hot_online/index.html?m=" + key;
-     * m_title:[]
-     * 有值: link = "/edit-backstage/hot_online1/index.html?m=" + key
-     * 无值: link = "/edit-backstage/hot_online/index.html?m=" + key
-     */
-    private String getLink(JSONObject param, String key){
-        JSONObject infoAttribute = param.getJSONObject("infoAttribute");
-        // m_title可能会没有这个属性key, 需要判断
-        JSONArray m_title = infoAttribute.getJSONArray("m_title");
-        String url  = "/edit-backstage/hot_online/index.html#/?m=" + key;
-        if (m_title != null && m_title.size() > 0){
-            url  = "/edit-backstage/hot_online1/index.html#/?m=" + key;
-        }
-        return url;
-    }
-
-    /**
-     * 处理data.js 文件
-     */
-    private void editDataJs(SceneEntity entity, String hots )  {
-
-        // 因为data.js只是热点信息,所以直接创建上传oss
-        JSONObject dataJsJson = new JSONObject();
-        if (hots != null) {
-            dataJsJson = JSONObject.parseObject(hots);
-
-            Set<String> strings = dataJsJson.keySet();
-            for (String key: strings) {
-                JSONObject subJson = dataJsJson.getJSONObject(key);
-                JSONObject infoAttribute = subJson.getJSONObject("infoAttribute");
-                if (infoAttribute != null) {
-                    Set<String> infoKey = infoAttribute.keySet();
-
-                    for (String s: infoKey) {
-                        Object val = null;
-                        // 添加到第一层, 空值不添加
-                        if ("images".equals(s) || "styleImg".equals(s) || "model".equals(s) || "video".equals(s) || "iframe".equals(s)) {
-                            JSONArray jsonArray = infoAttribute.getJSONArray(s);
-                            if (jsonArray.size() == 0) {
-                                continue;
-                            }
-                            val = jsonArray;
-
-                        } else {
-                            String a = infoAttribute.getString(s);
-                            if (StringUtils.isBlank(a)){
-                                continue;
-                            }
-                            val = a;
-                        }
-
-
-                        subJson.put(s, val);
-                    }
-
-                }
-
-                // 删除infoAttribute
-                subJson.remove("infoAttribute");
-
-            }
-
-        }
-
-        log.info("out data.js : {}", dataJsJson);
-        String basePath = configConstant.serverBasePath + entity.getSceneCode();
-
-        String dataPath = basePath + "/hot/js/data.js";
-        FileUtil.writeUtf8String(dataJsJson.toJSONString(), dataPath);
-
-        log.info("新data.js写入完成: {}", dataPath);
-
-
-    }
-}

+ 0 - 42
gis_service/src/main/java/com/gis/service/impl/SysUserServiceImpl.java

@@ -1,42 +0,0 @@
-package com.gis.service.impl;
-
-import com.gis.domain.dto.PageDateDto;
-import com.gis.domain.po.SysUserEntity;
-import com.gis.mapper.IBaseMapper;
-import com.gis.mapper.SysUserMapper;
-import com.gis.service.SysUserService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-
-/**
- * Created by owen on 2020/3/11 0011 16:16
- */
-@Service
-public class SysUserServiceImpl extends IBaseServiceImpl<SysUserEntity, Long> implements SysUserService {
-
-    @Autowired
-    private SysUserMapper entityMapper;
-
-    @Override
-    public IBaseMapper<SysUserEntity, Long> getBaseMapper() {
-        return this.entityMapper;
-    }
-
-    @Override
-    public SysUserEntity findByUserName(String userName) {
-        return entityMapper.findByUserName(userName);
-    }
-
-
-
-    @Override
-    public List<SysUserEntity> search(PageDateDto param) {
-        return entityMapper.search(param);
-    }
-
-
-
-}

+ 100 - 100
gis_service/src/main/java/com/gis/service/impl/WxServiceImpl.java

@@ -1,100 +1,100 @@
-package com.gis.service.impl;
-
-import cn.hutool.http.HttpUtil;
-import com.alibaba.fastjson.JSONObject;
-import com.gis.common.constant.ConfigConstant;
-import com.gis.common.constant.TypeCode;
-import com.gis.common.util.JwtUtil;
-import com.gis.common.util.Result;
-import com.gis.service.WxService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.stereotype.Service;
-
-import javax.servlet.http.HttpServletRequest;
-import java.util.HashMap;
-import java.util.concurrent.TimeUnit;
-
-
-/**
- * Created by owen on 2020/3/11 0011 16:16
- */
-@Slf4j
-@Service
-public class WxServiceImpl implements WxService {
-
-
-    @Autowired
-    ConfigConstant configConstant;
-
-    @Autowired
-    private RedisTemplate<String, String> redisTemplate;
-
-    @Autowired
-    protected HttpServletRequest request;
-
-    private static Integer TOKEN_EXPIRE = 1000 * 60 * 60 * 24;
-
-
-    @Override
-    public Result login(String code) {
-
-
-        StringBuffer param = new StringBuffer();
-        //GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
-        param.append("https://api.weixin.qq.com/sns/jscode2session?");
-        param.append("appid=").append(configConstant.wxAppId);
-        param.append("&secret=").append(configConstant.wxAppSecret);
-        param.append("&js_code=").append(code);
-        param.append("&grant_type=").append("authorization_code");
-
-        String s = HttpUtil.get(param.toString());
-        log.info("s: {}", s);
-        JSONObject result = JSONObject.parseObject(s);
-        String openid = result.getString("openid");
-        if (openid == null) {
-            log.info("登录失败");
-            return Result.failure(result.toJSONString());
-        }
-
-        // 封装openid、session_key 到token
-        /**
-         * openid: id
-         * session_key: userName
-         */
-
-        // 创建新token
-        HashMap<String, Object> tokenMap = new HashMap<>();
-        tokenMap.put("sessionKey", result.getString("session_key"));
-        tokenMap.put("openId", openid);
-
-        // 创建新token
-        String wxToken = JwtUtil.createWxJWT(TOKEN_EXPIRE, tokenMap);
-        log.info("wxToken: {}", wxToken);
-        // wxToken存到Redis
-        // 更新到 redis, 有效期24h, 旧token无效, 做单用户登录
-        redisTemplate.opsForValue().set(TypeCode.REDIS_LOGIN_WXTOKEN + wxToken, wxToken, Long.parseLong("23"), TimeUnit.HOURS);
-
-        // 应该要把openId给回前端
-        HashMap<Object, Object> res = new HashMap<>();
-        res.put("wxToken", wxToken);
-        res.put("openId", openid);
-
-        return Result.success(wxToken);
-    }
-
-    @Override
-    public Result logout() {
-        String token = getWxToken();
-        if (token == null) {
-            log.info("token is null");
-        }
-        redisTemplate.delete(TypeCode.REDIS_LOGIN_WXTOKEN + token);
-        return Result.success();
-    }
-
-    String getWxToken(){
-        return request.getHeader("wXToken");
-    }
-}
+//package com.gis.service.impl;
+//
+//import cn.hutool.http.HttpUtil;
+//import com.alibaba.fastjson.JSONObject;
+//import com.gis.common.constant.ConfigConstant;
+//import com.gis.common.constant.TypeCode;
+//import com.gis.common.util.JwtUtil;
+//import com.gis.common.util.Result;
+//import com.gis.service.WxService;
+//import lombok.extern.slf4j.Slf4j;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.data.redis.core.RedisTemplate;
+//import org.springframework.stereotype.Service;
+//
+//import javax.servlet.http.HttpServletRequest;
+//import java.util.HashMap;
+//import java.util.concurrent.TimeUnit;
+//
+//
+///**
+// * Created by owen on 2020/3/11 0011 16:16
+// */
+//@Slf4j
+//@Service
+//public class WxServiceImpl implements WxService {
+//
+//
+//    @Autowired
+//    ConfigConstant configConstant;
+//
+//    @Autowired
+//    private RedisTemplate<String, String> redisTemplate;
+//
+//    @Autowired
+//    protected HttpServletRequest request;
+//
+//    private static Integer TOKEN_EXPIRE = 1000 * 60 * 60 * 24;
+//
+//
+//    @Override
+//    public Result login(String code) {
+//
+//
+//        StringBuffer param = new StringBuffer();
+//        //GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
+//        param.append("https://api.weixin.qq.com/sns/jscode2session?");
+//        param.append("appid=").append(configConstant.wxAppId);
+//        param.append("&secret=").append(configConstant.wxAppSecret);
+//        param.append("&js_code=").append(code);
+//        param.append("&grant_type=").append("authorization_code");
+//
+//        String s = HttpUtil.get(param.toString());
+//        log.info("s: {}", s);
+//        JSONObject result = JSONObject.parseObject(s);
+//        String openid = result.getString("openid");
+//        if (openid == null) {
+//            log.info("登录失败");
+//            return Result.failure(result.toJSONString());
+//        }
+//
+//        // 封装openid、session_key 到token
+//        /**
+//         * openid: id
+//         * session_key: userName
+//         */
+//
+//        // 创建新token
+//        HashMap<String, Object> tokenMap = new HashMap<>();
+//        tokenMap.put("sessionKey", result.getString("session_key"));
+//        tokenMap.put("openId", openid);
+//
+//        // 创建新token
+//        String wxToken = JwtUtil.createWxJWT(TOKEN_EXPIRE, tokenMap);
+//        log.info("wxToken: {}", wxToken);
+//        // wxToken存到Redis
+//        // 更新到 redis, 有效期24h, 旧token无效, 做单用户登录
+//        redisTemplate.opsForValue().set(TypeCode.REDIS_LOGIN_WXTOKEN + wxToken, wxToken, Long.parseLong("23"), TimeUnit.HOURS);
+//
+//        // 应该要把openId给回前端
+//        HashMap<Object, Object> res = new HashMap<>();
+//        res.put("wxToken", wxToken);
+//        res.put("openId", openid);
+//
+//        return Result.success(wxToken);
+//    }
+//
+//    @Override
+//    public Result logout() {
+//        String token = getWxToken();
+//        if (token == null) {
+//            log.info("token is null");
+//        }
+//        redisTemplate.delete(TypeCode.REDIS_LOGIN_WXTOKEN + token);
+//        return Result.success();
+//    }
+//
+//    String getWxToken(){
+//        return request.getHeader("wXToken");
+//    }
+//}

+ 0 - 135
gis_service/src/main/java/com/gis/service/shiro/JWTFilter.java

@@ -1,135 +0,0 @@
-package com.gis.service.shiro;
-
-import com.alibaba.fastjson.JSONObject;
-import com.gis.common.exception.JwtAuthenticationException;
-import lombok.extern.log4j.Log4j2;
-import org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter;
-import org.springframework.http.HttpStatus;
-import org.springframework.web.bind.annotation.RequestMethod;
-
-import javax.servlet.ServletOutputStream;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.io.PrintWriter;
-
-
-/**
- * 自定义拦截规则
- */
-@Log4j2
-public class JWTFilter extends BasicHttpAuthenticationFilter {
-
-    /**
-     * 执行登录验证
-     */
-    @Override
-    protected boolean executeLogin(ServletRequest request, ServletResponse response) {
-        HttpServletRequest httpServletRequest = (HttpServletRequest) request;
-        String authorization = httpServletRequest.getHeader("token");
-        JWTToken token = new JWTToken(authorization);
-
-        // 提交给realm进行登入,如果错误他会抛出异常并被捕获
-        getSubject(request, response).login(token);
-
-        // 如果没有抛出异常则代表登入成功,返回true
-        return true;
-    }
-
-    /**
-     * 这里我们详细说明下为什么最终返回的都是true,即允许访问
-     * 例如我们提供一个地址 GET /article
-     * 登入用户和游客看到的内容是不同的
-     * 如果在这里返回了false,请求会被直接拦截,用户看不到任何东西
-     * 所以我们在这里返回true,Controller中可以通过 subject.isAuthenticated() 来判断用户是否登入
-     * 如果有些资源只有登入用户才能访问,我们只需要在方法上面加上 @RequiresAuthentication 注解即可
-     * 但是这样做有一个缺点,就是不能够对GET,POST等请求进行分别过滤鉴权(因为我们重写了官方的方法),但实际上对应用影响不大
-     *
-     * owen:
-     *  return false ,表示全局拦截,必须登录才可以访问接口,除非配置了免拦截
-     *  "" @RequiresAuthentication 现在不需要配置这个注解来免登录
-     *
-     */
-    @Override
-    protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) {
-        try {
-            executeLogin(request, response);
-        } catch (Exception e) {
-            /**
-             * 这个异常需要自己写,全局捕获不了
-             * 认证出现异常,传递错误信息msg
-             */
-            exceptionMsg(e, response);
-        }
-        // return false 前端没有响应,接收不到异常
-        return true;
-
-
-    }
-
-    /**
-     * 对跨域提供支持
-     * 只对需要token验证的有效,不需要验证的还是需要用注解处理一下
-     *
-     */
-    @Override
-    protected boolean preHandle(ServletRequest request, ServletResponse response) throws Exception {
-        HttpServletRequest httpServletRequest = (HttpServletRequest) request;
-        HttpServletResponse httpServletResponse = (HttpServletResponse) response;
-        httpServletResponse.setHeader("Access-control-Allow-Origin", httpServletRequest.getHeader("Origin"));
-        httpServletResponse.setHeader("Access-Control-Allow-Methods", "GET,POST,OPTIONS,PUT,DELETE");
-        httpServletResponse.setHeader("Access-Control-Allow-Headers", httpServletRequest.getHeader("Access-Control-Request-Headers"));
-        // 跨域时会首先发送一个option请求,这里我们给option请求直接返回正常状态
-        if (httpServletRequest.getMethod().equals(RequestMethod.OPTIONS.name())) {
-            httpServletResponse.setStatus(HttpStatus.OK.value());
-            return false;
-        }
-        return super.preHandle(request, response);
-    }
-
-
-    /**
-     * 无需转发,直接返回Response信息
-     *
-     */
-    private void writeResponse(ServletResponse response, JSONObject msg) {
-        response.setCharacterEncoding("UTF-8");
-        response.setContentType("application/json; charset=utf-8");
-        ServletOutputStream outputStream = null;
-        try {
-            outputStream = response.getOutputStream();
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-        assert outputStream != null;
-        PrintWriter printWriter = new PrintWriter(outputStream, true);
-        printWriter.write(msg.toString());//直接将json输出到页面
-        printWriter.flush();
-        printWriter.close();
-
-    }
-
-    /**
-     * 封装异常信息
-     */
-    private void exceptionMsg(Exception e, ServletResponse response) {
-        // 认证出现异常,传递错误信息msg
-        String msg = e.getMessage();
-        // 获取应用异常(该Cause是导致抛出此throwable(异常)的throwable(异常))
-        Throwable throwable = e.getCause();
-        JSONObject jsonObject = new JSONObject();
-        if (throwable instanceof JwtAuthenticationException) {
-            jsonObject.put("code", ((JwtAuthenticationException) throwable).getCode());
-            jsonObject.put("msg", ((JwtAuthenticationException) throwable).getMsg());
-        } else {
-            log.error(msg);
-            jsonObject.put("code", 5002);
-            jsonObject.put("msg", "token invalid");
-        }
-        // 直接返回Response信息
-        this.writeResponse(response, jsonObject);
-
-    }
-}

+ 0 - 23
gis_service/src/main/java/com/gis/service/shiro/JWTToken.java

@@ -1,23 +0,0 @@
-package com.gis.service.shiro;
-
-import org.apache.shiro.authc.AuthenticationToken;
-
-public class JWTToken implements AuthenticationToken {
-
-    // 密钥
-    private String token;
-
-    public JWTToken(String token) {
-        this.token = token;
-    }
-
-    @Override
-    public Object getPrincipal() {
-        return token;
-    }
-
-    @Override
-    public Object getCredentials() {
-        return token;
-    }
-}

+ 0 - 110
gis_service/src/main/java/com/gis/service/shiro/MyRealm.java

@@ -1,110 +0,0 @@
-package com.gis.service.shiro;
-
-import com.gis.common.constant.TypeCode;
-import com.gis.common.exception.JwtAuthenticationException;
-import com.gis.common.util.JwtUtil;
-import com.gis.domain.po.SysUserEntity;
-import com.gis.service.SysUserService;
-import lombok.extern.log4j.Log4j2;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.shiro.authc.AuthenticationException;
-import org.apache.shiro.authc.AuthenticationInfo;
-import org.apache.shiro.authc.AuthenticationToken;
-import org.apache.shiro.authc.SimpleAuthenticationInfo;
-import org.apache.shiro.authz.AuthorizationInfo;
-import org.apache.shiro.authz.SimpleAuthorizationInfo;
-import org.apache.shiro.realm.AuthorizingRealm;
-import org.apache.shiro.subject.PrincipalCollection;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.stereotype.Service;
-
-/**
- * 配置不校验的话,是不会走这个方法的
- */
-@Log4j2
-@Service
-public class MyRealm extends AuthorizingRealm {
-
-
-
-    @Autowired
-    private RedisTemplate<String, String> redisTemplate;
-
-    @Autowired
-    private SysUserService userService;
-
-
-    /**
-     * 大坑!,必须重写此方法,不然Shiro会报错
-     */
-    @Override
-    public boolean supports(AuthenticationToken token) {
-        return token instanceof JWTToken;
-    }
-
-
-
-
-    /**
-     * 只有当需要检测用户权限的时候才会调用此方法,例如checkRole,checkPermission之类的
-     *
-     * principals: 是token
-     */
-    @Override
-    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
-        String username = JwtUtil.getUsername(principals.toString());
-
-        SysUserEntity dbUserEntity = userService.findByUserName(username);
-
-        SimpleAuthorizationInfo simpleAuthorizationInfo = new SimpleAuthorizationInfo();
-
-        simpleAuthorizationInfo.addRole(dbUserEntity.getRole());
-        return simpleAuthorizationInfo;
-    }
-
-
-    /**
-     * 默认使用此方法进行用户名正确与否验证,错误抛出异常即可。
-     */
-    @Override
-    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken auth) throws AuthenticationException {
-        String token = (String) auth.getCredentials();
-
-        if (StringUtils.isBlank(token)) {
-            log.error("oken is null ");
-            throw new JwtAuthenticationException(5001, "header token is null");
-        }
-
-
-        // 解密获得username,用于和数据库进行对比
-        String username = JwtUtil.getUsername(token);
-        if (username == null) {
-            log.error("error token username");
-            throw new JwtAuthenticationException(5001, "token invalid");
-        }
-
-        SysUserEntity userEntity = userService.findByUserName(username);
-        if (userEntity == null) {
-            log.error("error token userEntity");
-            throw new JwtAuthenticationException(5001, "User didn't existed!");
-        }
-
-        // 校验请求token是否跟redis token一致
-        String redisToken = redisTemplate.opsForValue().get(TypeCode.REDIS_LOGIN_TOKEN + token);
-
-        if (!token.equals(redisToken)) {
-            log.error("redis token is null");
-            throw new JwtAuthenticationException(5001, "redis token is null");
-
-        }
-
-
-        if (! JwtUtil.isVerify(token, username)) {
-            log.error("error token username or password");
-            throw new JwtAuthenticationException(5001, "token invalid");
-        }
-
-        return new SimpleAuthenticationInfo(token, token, "my_realm");
-    }
-}

+ 0 - 114
gis_service/src/main/java/com/gis/service/shiro/ShiroConfig.java

@@ -1,114 +0,0 @@
-package com.gis.service.shiro;
-
-import lombok.extern.log4j.Log4j2;
-import org.apache.shiro.mgt.DefaultSessionStorageEvaluator;
-import org.apache.shiro.mgt.DefaultSubjectDAO;
-import org.apache.shiro.spring.LifecycleBeanPostProcessor;
-import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor;
-import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
-import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
-import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.DependsOn;
-
-import javax.servlet.Filter;
-import java.util.HashMap;
-import java.util.Map;
-
-@Log4j2
-@Configuration
-public class ShiroConfig {
-
-    @Bean("securityManager")
-    public DefaultWebSecurityManager getManager(MyRealm realm) {
-        DefaultWebSecurityManager manager = new DefaultWebSecurityManager();
-        // 使用自己的realm
-        manager.setRealm(realm);
-
-        /*
-         * 关闭shiro自带的session,详情见文档
-         * http://shiro.apache.org/session-management.html#SessionManagement-StatelessApplications%28Sessionless%29
-         */
-        DefaultSubjectDAO subjectDAO = new DefaultSubjectDAO();
-        DefaultSessionStorageEvaluator defaultSessionStorageEvaluator = new DefaultSessionStorageEvaluator();
-        defaultSessionStorageEvaluator.setSessionStorageEnabled(false);
-        subjectDAO.setSessionStorageEvaluator(defaultSessionStorageEvaluator);
-        manager.setSubjectDAO(subjectDAO);
-
-        return manager;
-    }
-
-    @Bean("shiroFilter")
-    public ShiroFilterFactoryBean factory(DefaultWebSecurityManager securityManager) {
-        ShiroFilterFactoryBean factoryBean = new ShiroFilterFactoryBean();
-
-        // 添加自己的过滤器并且取名为jwt
-        Map<String, Filter> filterMap = new HashMap<>();
-        filterMap.put("jwt", new JWTFilter());
-
-
-
-
-        factoryBean.setFilters(filterMap);
-
-        factoryBean.setSecurityManager(securityManager);
-        factoryBean.setUnauthorizedUrl("/401");
-
-        /*
-         * 自定义url规则
-         * http://shiro.apache.org/web.html#urls-
-         */
-        Map<String, String> filterRuleMap = new HashMap<>();
-
-        // 不拦截
-        filterRuleMap.put("/login", "anon");
-        filterRuleMap.put("/logout", "anon");
-        filterRuleMap.put("/admin", "anon");
-        filterRuleMap.put("/admin/login", "anon");
-        filterRuleMap.put("/test/**", "anon");
-
-
-        // swagger 不拦截
-        filterRuleMap.put("/swagger-resources/**", "anon");
-        filterRuleMap.put("/webjars/**", "anon");
-        filterRuleMap.put("/v2/**", "anon");
-        filterRuleMap.put("/swagger-ui.html/**", "anon");
-
-
-        // 所有请求通过我们自己的JWT Filter
-        filterRuleMap.put("/manage/**", "jwt");
-
-
-        // 访问401和404页面不通过我们的Filter
-        filterRuleMap.put("/401", "anon");
-        factoryBean.setFilterChainDefinitionMap(filterRuleMap);
-        return factoryBean;
-    }
-
-    /**
-     * 下面的代码是添加注解支持
-     */
-    @Bean
-    @DependsOn("lifecycleBeanPostProcessor")
-    public DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator() {
-        DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator = new DefaultAdvisorAutoProxyCreator();
-        // 强制使用cglib,防止重复代理和可能引起代理出错的问题
-        // https://zhuanlan.zhihu.com/p/29161098
-        defaultAdvisorAutoProxyCreator.setProxyTargetClass(true);
-        return defaultAdvisorAutoProxyCreator;
-    }
-
-    @Bean
-    public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() {
-        return new LifecycleBeanPostProcessor();
-    }
-
-    @Bean
-    public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(DefaultWebSecurityManager securityManager) {
-        AuthorizationAttributeSourceAdvisor advisor = new AuthorizationAttributeSourceAdvisor();
-        advisor.setSecurityManager(securityManager);
-        return advisor;
-    }
-
-}

+ 0 - 120
gis_web/src/main/java/com/gis/web/controller/BaseController.java

@@ -1,120 +0,0 @@
-package com.gis.web.controller;
-
-import cn.hutool.core.io.FileUtil;
-import com.gis.common.constant.ConfigConstant;
-
-import com.gis.common.util.JwtUtil;
-import com.gis.service.SysUserService;
-import com.github.pagehelper.PageHelper;
-
-import com.gis.domain.dto.PageDto;
-import lombok.extern.log4j.Log4j2;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-
-import javax.servlet.http.HttpServletRequest;
-
-/**
- * Created by owen on 2020/2/20 0020 15:20
- */
-@Log4j2
-public class BaseController {
-
-    @Autowired
-    protected HttpServletRequest request;
-
-    @Autowired
-    public SysUserService sysUserService;
-
-
-
-
-
-    @Autowired
-    ConfigConstant configConstant;
-
-
-
-    // 目前是24h
-    public static Integer TOKEN_EXPIRE = 1000 * 60 * 60 * 24;
-
-
-
-    /** 获取用户名*/
-    String getTokenUserName(){
-        String token = getToken();
-        return JwtUtil.getUsername(token);
-    }
-
-    /** 获取用户id*/
-    Long getTokenUserId(){
-        return JwtUtil.getUserId(getToken());
-    }
-
-
-
-    /** 获取header token */
-    String getToken(){
-        return request.getHeader("token");
-    }
-
-
-
-
-    /**
-     * 设置请求分页数据
-     */
-    void startPage(PageDto param){
-        Integer pageNum = param.getPageNum();
-        Integer pageSize = param.getPageSize();
-        if (pageNum == null || pageNum <= 0) {
-            pageNum = 1;
-        }
-
-        if (pageSize == null || pageSize <= 0) {
-            pageSize = 10;
-        }
-
-        PageHelper.startPage(pageNum, pageSize);
-
-    }
-
-
-
-    /**
-     * 截取文件路径
-     * @param path
-     * @return 物理位置
-     */
-    public String subStringAfter(String path){
-        log.info("input param: {}", path);
-        if (StringUtils.isNotBlank(path)) {
-            String s = StringUtils.substringAfter(path, "/data/");
-            s = configConstant.serverBasePath + s;
-            log.info("filePath: {}", s);
-            return s;
-        }
-        return null;
-
-    }
-
-    /**
-     * FileUtil.del:删除空字符串会造成linux环境的Tomcat.lib删除
-     * 删除
-     * @param path
-     */
-    public void deleteFile(String path){
-        String filePath = subStringAfter(path);
-        if (FileUtil.isFile(filePath)) {
-            log.info("执行删除: {}", filePath);
-            FileUtil.del(filePath);
-            log.info("删除成功: {}", filePath);
-        }
-    }
-
-
-
-
-
-
-}

+ 1 - 1
gis_web/src/main/java/com/gis/web/controller/UploadController.java

@@ -25,7 +25,7 @@ public class UploadController {
     UploadService uploadService;
 
 
-    @ApiOperation(value = "上传换装图片", notes = "type:类型")
+    @ApiOperation(value = "上传换装图片", notes = "type:类型,caocao、zhugeliang")
     @PostMapping("uploadFaceSwap/{type}")
     public Result uploadReload(MultipartFile file, @PathVariable String type){
         return uploadService.uploadFaceSwap(file, type);

+ 0 - 46
gis_web/src/main/java/com/gis/web/controller/WxLoginController.java

@@ -1,46 +0,0 @@
-package com.gis.web.controller;
-
-import com.gis.common.util.Result;
-import com.gis.service.WxService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.extern.log4j.Log4j2;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-
-
-/**
- * Created by owen on 2020/4/22 0029 15:42
- */
-@Log4j2
-@Api(tags = "wx登录")
-@RestController
-@RequestMapping("api/wx")
-public class WxLoginController extends BaseController {
-
-
-    @Autowired
-    WxService wxService;
-
-
-    @ApiOperation("微信登录")
-    @GetMapping("login/{code}")
-    public Result login(@PathVariable String code)  {
-        return wxService.login(code);
-    }
-
-
-    @ApiOperation("微信退出")
-    @GetMapping("logout")
-    public Result logout() {
-        return wxService.logout();
-    }
-
-
-
-
-}