Browse Source

运营后台代码

guq 7 years ago
parent
commit
c9abdcf52e
30 changed files with 1466 additions and 0 deletions
  1. 19 0
      applications/commons/commons-api/src/main/java/com/usoftchina/saas/commons/api/CommonServiceFallback.java
  2. 1 0
      applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/po/BillCodeSeq.java
  3. 70 0
      applications/operation/operation-server/pom.xml
  4. 6 0
      applications/operation/operation-server/src/main/docker/Dockerfile
  5. 24 0
      applications/operation/operation-server/src/main/java/com/usoftchina/saas/operation/OperationApplication.java
  6. 39 0
      applications/operation/operation-server/src/main/java/com/usoftchina/saas/operation/controller/CustomerFedBackController.java
  7. 46 0
      applications/operation/operation-server/src/main/java/com/usoftchina/saas/operation/controller/DataController.java
  8. 135 0
      applications/operation/operation-server/src/main/java/com/usoftchina/saas/operation/dto/AccountDTO.java
  9. 100 0
      applications/operation/operation-server/src/main/java/com/usoftchina/saas/operation/dto/CompanyDTO.java
  10. 57 0
      applications/operation/operation-server/src/main/java/com/usoftchina/saas/operation/dto/LoginDTO.java
  11. 13 0
      applications/operation/operation-server/src/main/java/com/usoftchina/saas/operation/mapper/AccountMapper.java
  12. 14 0
      applications/operation/operation-server/src/main/java/com/usoftchina/saas/operation/mapper/CompanyMapper.java
  13. 21 0
      applications/operation/operation-server/src/main/java/com/usoftchina/saas/operation/mapper/CustomerfedbackMapper.java
  14. 185 0
      applications/operation/operation-server/src/main/java/com/usoftchina/saas/operation/po/Company.java
  15. 103 0
      applications/operation/operation-server/src/main/java/com/usoftchina/saas/operation/po/CustomerFedBack.java
  16. 13 0
      applications/operation/operation-server/src/main/java/com/usoftchina/saas/operation/service/CustomerFedBackService.java
  17. 19 0
      applications/operation/operation-server/src/main/java/com/usoftchina/saas/operation/service/DataService.java
  18. 57 0
      applications/operation/operation-server/src/main/java/com/usoftchina/saas/operation/service/impl/CustomerFedBackServiceImpl.java
  19. 71 0
      applications/operation/operation-server/src/main/java/com/usoftchina/saas/operation/service/impl/DataServiceImpl.java
  20. 82 0
      applications/operation/operation-server/src/main/resources/application.yml
  21. 13 0
      applications/operation/operation-server/src/main/resources/config/application-dev.yml
  22. 12 0
      applications/operation/operation-server/src/main/resources/config/application-docker-dev.yml
  23. 23 0
      applications/operation/operation-server/src/main/resources/config/application-docker-prod.yml
  24. 10 0
      applications/operation/operation-server/src/main/resources/config/application-docker.yml
  25. 115 0
      applications/operation/operation-server/src/main/resources/logback-spring.xml
  26. 34 0
      applications/operation/operation-server/src/main/resources/mapper/AccoutMapper.xml
  27. 20 0
      applications/operation/operation-server/src/main/resources/mapper/CompanyMapper.xml
  28. 139 0
      applications/operation/operation-server/src/main/resources/mapper/CustomerfedbackMapper.xml
  29. 13 0
      base-servers/auth/auth-server/src/main/resources/config/application-dev.yml
  30. 12 0
      base-servers/sms/sms-server/src/main/resources/config/application-docker-dev.yml

+ 19 - 0
applications/commons/commons-api/src/main/java/com/usoftchina/saas/commons/api/CommonServiceFallback.java

@@ -0,0 +1,19 @@
+package com.usoftchina.saas.commons.api;
+
+
+public class CommonServiceFallback implements CommonService {
+    @Override
+    public String commonAudit(String table, String keyvalue, String status, String statuscode, String auditdate, String auditman) {
+        return null;
+    }
+
+    @Override
+    public String commonResAudit(String table, String keyvalue, String status, String statuscode, String auditdate, String auditman) {
+        return null;
+    }
+/*
+    @Override
+    public String timeout(Long time) {
+        return "网络异常,请重试!";
+    }*/
+}

+ 1 - 0
applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/po/BillCodeSeq.java

@@ -56,6 +56,7 @@ public enum  BillCodeSeq {
 
     UNENDPRODUCT ("反结账", "UNENDPRODUCT"),
 
+    CUSTOMERFEDBACK ("客户反馈", "CUSTOMERFEDBACK"),
 
     BOM("BOM资料", "Bom");
 

+ 70 - 0
applications/operation/operation-server/pom.xml

@@ -10,6 +10,76 @@
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>operation-server</artifactId>
+    <dependencies>
+        <dependency>
+            <groupId>com.usoftchina.saas</groupId>
+            <artifactId>auth-dto</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.usoftchina.saas</groupId>
+            <artifactId>auth-common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.usoftchina.saas</groupId>
+            <artifactId>account-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.usoftchina.saas</groupId>
+            <artifactId>server-starter</artifactId>
+        </dependency>
+        <!-- db -->
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.mybatis.spring.boot</groupId>
+            <artifactId>mybatis-spring-boot-starter</artifactId>
+        </dependency>
+        <!-- api doc -->
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger-ui</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger2</artifactId>
+        </dependency>
 
+        <!-- sleuth -->
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-zipkin</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.amqp</groupId>
+            <artifactId>spring-rabbit</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>net.logstash.logback</groupId>
+            <artifactId>logstash-logback-encoder</artifactId>
+        </dependency>
+        <!-- test -->
+        <dependency>
+            <groupId>com.usoftchina.saas</groupId>
+            <artifactId>test-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.github.pagehelper</groupId>
+            <artifactId>pagehelper-spring-boot-starter</artifactId>
+        </dependency>
+    </dependencies>
 
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
 </project>

+ 6 - 0
applications/operation/operation-server/src/main/docker/Dockerfile

@@ -0,0 +1,6 @@
+FROM frolvlad/alpine-oraclejdk8:slim
+VOLUME /tmp
+ADD operation-server-1.0.0-SNAPSHOT.jar app.jar
+RUN sh -c 'touch /app.jar'
+ENV JAVA_OPTS=""
+ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

+ 24 - 0
applications/operation/operation-server/src/main/java/com/usoftchina/saas/operation/OperationApplication.java

@@ -0,0 +1,24 @@
+package com.usoftchina.saas.operation;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+
+/**
+ * @author: guq
+ * @create: 2019-01-04 14:53
+ **/
+@SpringBootApplication
+@EnableEurekaClient
+@EnableFeignClients(basePackages = {
+        "com.usoftchina.saas.account.api"
+})
+@MapperScan(basePackages = "com.usoftchina.saas.operation.mapper")
+public class OperationApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(OperationApplication.class, args);
+    }
+}

+ 39 - 0
applications/operation/operation-server/src/main/java/com/usoftchina/saas/operation/controller/CustomerFedBackController.java

@@ -0,0 +1,39 @@
+package com.usoftchina.saas.operation.controller;
+
+import com.github.pagehelper.PageInfo;
+import com.usoftchina.saas.base.Result;
+import com.usoftchina.saas.commons.dto.DocBaseDTO;
+import com.usoftchina.saas.commons.dto.ListReqDTO;
+import com.usoftchina.saas.operation.po.CustomerFedBack;
+import com.usoftchina.saas.operation.service.CustomerFedBackService;
+import com.usoftchina.saas.page.PageDefault;
+import com.usoftchina.saas.page.PageRequest;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 客户反馈
+ * @author: guq
+ * @create: 2019-01-04 17:52
+ **/
+@RequestMapping("/customerFedBack")
+@RestController
+public class CustomerFedBackController {
+
+    @Autowired
+    private CustomerFedBackService customerFedBackService;
+
+    @GetMapping("/list")
+    public Result<PageInfo<CustomerFedBack>> getListData(@PageDefault(size = 10) PageRequest page, ListReqDTO req) {
+        PageInfo<CustomerFedBack> listData = customerFedBackService.getListData(page, req);
+        return Result.success(listData);
+    }
+
+    @RequestMapping("/save")
+    public Result<DocBaseDTO> save(@RequestBody CustomerFedBack fedBack) {
+        DocBaseDTO save = customerFedBackService.save(fedBack);
+        return Result.success(save);
+    }
+
+
+}

+ 46 - 0
applications/operation/operation-server/src/main/java/com/usoftchina/saas/operation/controller/DataController.java

@@ -0,0 +1,46 @@
+package com.usoftchina.saas.operation.controller;
+
+import com.github.pagehelper.PageInfo;
+import com.usoftchina.saas.base.Result;
+import com.usoftchina.saas.commons.dto.ListReqDTO;
+import com.usoftchina.saas.operation.dto.AccountDTO;
+import com.usoftchina.saas.operation.dto.CompanyDTO;
+import com.usoftchina.saas.operation.dto.LoginDTO;
+import com.usoftchina.saas.operation.service.DataService;
+import com.usoftchina.saas.page.PageDefault;
+import com.usoftchina.saas.page.PageRequest;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 统计数据
+ * @author: guq
+ * @create: 2019-01-04 15:27
+ **/
+@RequestMapping("/data")
+@RestController
+public class DataController {
+
+    @Autowired
+    private DataService dataService;
+
+    @GetMapping("/getCompany")
+    public Result<PageInfo<CompanyDTO>> getCompany(@PageDefault(size = 10) PageRequest page, ListReqDTO req){
+        return Result.success(dataService.getCompany(page, req));
+    }
+
+
+    @GetMapping("/getAccount")
+    public Result<PageInfo<AccountDTO>> getAccount(@PageDefault(size = 10) PageRequest page, ListReqDTO req) {
+        return Result.success(dataService.getAccount(page, req));
+    }
+
+    @GetMapping("/getLogin")
+    public Result<PageInfo<LoginDTO>> getLogin(@PageDefault(size = 10) PageRequest page, ListReqDTO req) {
+        return Result.success(dataService.getLogin(page, req));
+    }
+
+
+}

+ 135 - 0
applications/operation/operation-server/src/main/java/com/usoftchina/saas/operation/dto/AccountDTO.java

@@ -0,0 +1,135 @@
+package com.usoftchina.saas.operation.dto;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author: guq
+ * @create: 2019-01-05 13:27
+ **/
+public class AccountDTO implements Serializable{
+    private Long id;
+    private String username;
+    private String realname;
+    private String email;
+    private String mobile;
+    /**
+     * 头像
+     */
+    private String avatarUrl;
+    /**
+     * 账号类型 0 - 管理员
+     */
+    private Integer type;
+    private Boolean enabled;
+    private Date createTime;
+    private long creatorId;
+    private Date updateTime;
+    private long updaterId;
+    private Long uu;
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+
+    public String getRealname() {
+        return realname;
+    }
+
+    public void setRealname(String realname) {
+        this.realname = realname;
+    }
+
+    public String getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+    public String getMobile() {
+        return mobile;
+    }
+
+    public void setMobile(String mobile) {
+        this.mobile = mobile;
+    }
+
+    public String getAvatarUrl() {
+        return avatarUrl;
+    }
+
+    public void setAvatarUrl(String avatarUrl) {
+        this.avatarUrl = avatarUrl;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Boolean isEnabled() {
+        return enabled;
+    }
+
+    public void setEnabled(Boolean enabled) {
+        this.enabled = enabled;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public long getCreatorId() {
+        return creatorId;
+    }
+
+    public void setCreatorId(long creatorId) {
+        this.creatorId = creatorId;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public long getUpdaterId() {
+        return updaterId;
+    }
+
+    public void setUpdaterId(long updaterId) {
+        this.updaterId = updaterId;
+    }
+
+    public Long getUu() {
+        return uu;
+    }
+
+    public void setUu(Long uu) {
+        this.uu = uu;
+    }
+}

+ 100 - 0
applications/operation/operation-server/src/main/java/com/usoftchina/saas/operation/dto/CompanyDTO.java

@@ -0,0 +1,100 @@
+package com.usoftchina.saas.operation.dto;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author: guq
+ * @create: 2019-01-04 16:19
+ **/
+public class CompanyDTO implements Serializable{
+    /**
+     * 唯一名称
+     */
+    private String name;
+
+    /**
+     * 商业登记证号
+
+     */
+    private String business_Code;
+    private String address;
+    private String tel;
+    private String fax;
+    private String realname;
+    private String mobile;
+    private Long uu;
+    private Date create_time;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getBusiness_Code() {
+        return business_Code;
+    }
+
+    public void setBusiness_Code(String business_Code) {
+        this.business_Code = business_Code;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getTel() {
+        return tel;
+    }
+
+    public void setTel(String tel) {
+        this.tel = tel;
+    }
+
+    public String getFax() {
+        return fax;
+    }
+
+    public void setFax(String fax) {
+        this.fax = fax;
+    }
+
+    public String getRealname() {
+        return realname;
+    }
+
+    public void setRealname(String realname) {
+        this.realname = realname;
+    }
+
+    public String getMobile() {
+        return mobile;
+    }
+
+    public void setMobile(String mobile) {
+        this.mobile = mobile;
+    }
+
+    public Long getUu() {
+        return uu;
+    }
+
+    public void setUu(Long uu) {
+        this.uu = uu;
+    }
+
+    public Date getCreate_time() {
+        return create_time;
+    }
+
+    public void setCreate_time(Date create_time) {
+        this.create_time = create_time;
+    }
+}

+ 57 - 0
applications/operation/operation-server/src/main/java/com/usoftchina/saas/operation/dto/LoginDTO.java

@@ -0,0 +1,57 @@
+package com.usoftchina.saas.operation.dto;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author: guq
+ * @create: 2019-01-05 15:28
+ **/
+public class LoginDTO implements Serializable{
+
+    private Long account_id;
+    private int login_num;
+    private String username;
+    private Date lastesttime;
+    private String mobile;
+
+    public Long getAccount_id() {
+        return account_id;
+    }
+
+    public void setAccount_id(Long account_id) {
+        this.account_id = account_id;
+    }
+
+    public int getLogin_num() {
+        return login_num;
+    }
+
+    public void setLogin_num(int login_num) {
+        this.login_num = login_num;
+    }
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public Date getLastesttime() {
+        return lastesttime;
+    }
+
+    public void setLastesttime(Date lastesttime) {
+        this.lastesttime = lastesttime;
+    }
+
+    public String getMobile() {
+        return mobile;
+    }
+
+    public void setMobile(String mobile) {
+        this.mobile = mobile;
+    }
+}

+ 13 - 0
applications/operation/operation-server/src/main/java/com/usoftchina/saas/operation/mapper/AccountMapper.java

@@ -0,0 +1,13 @@
+package com.usoftchina.saas.operation.mapper;
+
+import com.usoftchina.saas.operation.dto.AccountDTO;
+import com.usoftchina.saas.operation.dto.LoginDTO;
+
+import java.util.List;
+
+public interface AccountMapper {
+
+    List<AccountDTO> findAccountByCondition(String con);
+
+    List<LoginDTO> getLogin(String con);
+}

+ 14 - 0
applications/operation/operation-server/src/main/java/com/usoftchina/saas/operation/mapper/CompanyMapper.java

@@ -0,0 +1,14 @@
+package com.usoftchina.saas.operation.mapper;
+
+import com.usoftchina.saas.operation.dto.CompanyDTO;
+
+import java.util.List;
+
+/**
+ * @author: guq
+ * @create: 2019-01-04 17:10
+ **/
+public interface CompanyMapper {
+
+    List<CompanyDTO> findCompanyByCondition(String con);
+}

+ 21 - 0
applications/operation/operation-server/src/main/java/com/usoftchina/saas/operation/mapper/CustomerfedbackMapper.java

@@ -0,0 +1,21 @@
+package com.usoftchina.saas.operation.mapper;
+
+import com.usoftchina.saas.operation.po.CustomerFedBack;
+
+import java.util.List;
+
+public interface CustomerfedbackMapper {
+    int deleteByPrimaryKey(Integer cf_id);
+
+    int insert(CustomerFedBack record);
+
+    int insertSelective(CustomerFedBack record);
+
+    CustomerFedBack selectByPrimaryKey(Integer cf_id);
+
+    int updateByPrimaryKeySelective(CustomerFedBack record);
+
+    int updateByPrimaryKey(CustomerFedBack record);
+
+    List<CustomerFedBack> selectByCondition(String con);
+}

+ 185 - 0
applications/operation/operation-server/src/main/java/com/usoftchina/saas/operation/po/Company.java

@@ -0,0 +1,185 @@
+package com.usoftchina.saas.operation.po;
+
+import java.util.Date;
+
+/**
+ * 注册企业
+ * @author: guq
+ * @create: 2019-01-04 16:14
+ **/
+
+public class Company {
+    private Long id;
+    /**
+     * 唯一名称
+     */
+    private String name;
+    /**
+     * 商业登记证号
+     */
+    private String businessCode;
+    private String address;
+    /**
+     * 企业logo
+     */
+    private String logoUrl;
+    private String tel;
+    private String fax;
+    private String signet;
+    /**
+     * 所属行业
+     */
+    private String type;
+    /**
+     * 数据中心
+     */
+    private String dcName;
+
+    private Date createTime;
+    private long creatorId;
+    private Date updateTime;
+    private long updaterId;
+    private Long uu;
+
+    private String admin;
+    private String admin_phone;
+
+    public String getAdmin() {
+        return admin;
+    }
+
+    public void setAdmin(String admin) {
+        this.admin = admin;
+    }
+
+    public String getAdmin_phone() {
+        return admin_phone;
+    }
+
+    public void setAdmin_phone(String admin_phone) {
+        this.admin_phone = admin_phone;
+    }
+
+
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getTel() {
+        return tel;
+    }
+
+    public void setTel(String tel) {
+        this.tel = tel;
+    }
+
+    public String getFax() {
+        return fax;
+    }
+
+    public void setFax(String fax) {
+        this.fax = fax;
+    }
+
+    public String getSignet() {
+        return signet;
+    }
+
+    public void setSignet(String signet) {
+        this.signet = signet;
+    }
+
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getBusinessCode() {
+        return businessCode;
+    }
+
+    public void setBusinessCode(String businessCode) {
+        this.businessCode = businessCode;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getLogoUrl() {
+        return logoUrl;
+    }
+
+    public void setLogoUrl(String logoUrl) {
+        this.logoUrl = logoUrl;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public long getCreatorId() {
+        return creatorId;
+    }
+
+    public void setCreatorId(long creatorId) {
+        this.creatorId = creatorId;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public long getUpdaterId() {
+        return updaterId;
+    }
+
+    public void setUpdaterId(long updaterId) {
+        this.updaterId = updaterId;
+    }
+
+    public Long getUu() {
+        return uu;
+    }
+
+    public void setUu(Long uu) {
+        this.uu = uu;
+    }
+
+    public String getDcName() {
+        return dcName;
+    }
+
+    public void setDcName(String dcName) {
+        this.dcName = dcName;
+    }
+}

+ 103 - 0
applications/operation/operation-server/src/main/java/com/usoftchina/saas/operation/po/CustomerFedBack.java

@@ -0,0 +1,103 @@
+package com.usoftchina.saas.operation.po;
+
+import java.util.Date;
+
+/**
+ * @author: guq
+ * @create: 2019-01-04 18:18
+ **/
+public class CustomerFedBack {
+
+    private Long cf_id;
+
+    private String cf_creator;
+
+    private Date cf_creatime;
+
+    private Long cf_creatorid;
+
+    private String cf_content;
+
+    private String cf_status;
+
+    private Long cf_companyid;
+
+    private String cf_company;
+
+    private String cf_remark;
+
+    public Long getCf_id() {
+        return cf_id;
+    }
+
+    public void setCf_id(Long cf_id) {
+        this.cf_id = cf_id;
+    }
+
+    public String getCf_creator() {
+        return cf_creator;
+    }
+
+    public void setCf_creator(String cf_creator) {
+        this.cf_creator = cf_creator == null ? null : cf_creator.trim();
+    }
+
+    public Date getCf_creatime() {
+        return cf_creatime;
+    }
+
+    public void setCf_creatime(Date cf_creatime) {
+        this.cf_creatime = cf_creatime;
+    }
+
+
+    public String getCf_content() {
+        return cf_content;
+    }
+
+    public void setCf_content(String cf_content) {
+        this.cf_content = cf_content == null ? null : cf_content.trim();
+    }
+
+    public String getCf_status() {
+        return cf_status;
+    }
+
+    public Long getCf_creatorid() {
+        return cf_creatorid;
+    }
+
+    public void setCf_creatorid(Long cf_creatorid) {
+        this.cf_creatorid = cf_creatorid;
+    }
+
+    public Long getCf_companyid() {
+        return cf_companyid;
+    }
+
+    public void setCf_companyid(Long cf_companyid) {
+        this.cf_companyid = cf_companyid;
+    }
+
+    public void setCf_status(String cf_status) {
+        this.cf_status = cf_status == null ? null : cf_status.trim();
+    }
+
+
+    public String getCf_company() {
+        return cf_company;
+    }
+
+    public void setCf_company(String cf_company) {
+        this.cf_company = cf_company == null ? null : cf_company.trim();
+    }
+
+    public String getCf_remark() {
+        return cf_remark;
+    }
+
+    public void setCf_remark(String cf_remark) {
+        this.cf_remark = cf_remark == null ? null : cf_remark.trim();
+    }
+
+}

+ 13 - 0
applications/operation/operation-server/src/main/java/com/usoftchina/saas/operation/service/CustomerFedBackService.java

@@ -0,0 +1,13 @@
+package com.usoftchina.saas.operation.service;
+
+import com.github.pagehelper.PageInfo;
+import com.usoftchina.saas.commons.dto.DocBaseDTO;
+import com.usoftchina.saas.commons.dto.ListReqDTO;
+import com.usoftchina.saas.operation.po.CustomerFedBack;
+import com.usoftchina.saas.page.PageRequest;
+
+public interface CustomerFedBackService {
+    DocBaseDTO save(CustomerFedBack fedBack);
+
+    PageInfo<CustomerFedBack> getListData(PageRequest page, ListReqDTO req);
+}

+ 19 - 0
applications/operation/operation-server/src/main/java/com/usoftchina/saas/operation/service/DataService.java

@@ -0,0 +1,19 @@
+package com.usoftchina.saas.operation.service;
+
+import com.github.pagehelper.PageInfo;
+import com.usoftchina.saas.commons.dto.ListReqDTO;
+import com.usoftchina.saas.operation.dto.AccountDTO;
+import com.usoftchina.saas.operation.dto.CompanyDTO;
+import com.usoftchina.saas.operation.dto.LoginDTO;
+import com.usoftchina.saas.page.PageRequest; /**
+ * @author: guq
+ * @create: 2019-01-04 15:27
+ **/
+public interface DataService {
+
+    PageInfo<CompanyDTO> getCompany(PageRequest page, ListReqDTO req);
+
+    PageInfo<AccountDTO> getAccount(PageRequest page, ListReqDTO req);
+
+    PageInfo<LoginDTO> getLogin(PageRequest page, ListReqDTO req);
+}

+ 57 - 0
applications/operation/operation-server/src/main/java/com/usoftchina/saas/operation/service/impl/CustomerFedBackServiceImpl.java

@@ -0,0 +1,57 @@
+package com.usoftchina.saas.operation.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.usoftchina.saas.commons.dto.DocBaseDTO;
+import com.usoftchina.saas.commons.dto.ListReqDTO;
+import com.usoftchina.saas.commons.exception.BizExceptionCode;
+import com.usoftchina.saas.commons.po.BillCodeSeq;
+import com.usoftchina.saas.context.BaseContextHolder;
+import com.usoftchina.saas.exception.BizException;
+import com.usoftchina.saas.operation.mapper.CustomerfedbackMapper;
+import com.usoftchina.saas.operation.po.CustomerFedBack;
+import com.usoftchina.saas.operation.service.CustomerFedBackService;
+import com.usoftchina.saas.page.PageRequest;
+import com.usoftchina.saas.utils.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author: guq
+ * @create: 2019-01-04 18:29
+ **/
+@Service
+public class CustomerFedBackServiceImpl implements CustomerFedBackService{
+
+    @Autowired
+    private CustomerfedbackMapper customerfedbackMapper;
+
+    @Override
+    public DocBaseDTO save(CustomerFedBack fedBack) {
+        if (StringUtils.isEmpty(fedBack)){
+            throw new BizException(BizExceptionCode.EMPTY_DATA);
+        }
+        fedBack.setCf_creator(BaseContextHolder.getUserName());
+        fedBack.setCf_creatorid(BaseContextHolder.getUserId());
+        fedBack.setCf_companyid(BaseContextHolder.getCompanyId());
+        fedBack.setCf_creatime(new Date());
+        customerfedbackMapper.insertSelective(fedBack);
+        DocBaseDTO baseDTO = new DocBaseDTO(fedBack.getCf_id(), null, BillCodeSeq.CUSTOMERFEDBACK.getName());
+        return baseDTO;
+    }
+
+    @Override
+    public PageInfo<CustomerFedBack> getListData(PageRequest page, ListReqDTO req) {
+        PageHelper.startPage(page.getNumber(), page.getSize());
+        String con = req.getFinalCondition();
+        if (null == con) {
+            con = "1=1";
+        }
+        List<CustomerFedBack> list = customerfedbackMapper.selectByCondition(con);
+        PageInfo<CustomerFedBack> fedbacks = new PageInfo<CustomerFedBack>(list);
+        return fedbacks;
+    }
+}

+ 71 - 0
applications/operation/operation-server/src/main/java/com/usoftchina/saas/operation/service/impl/DataServiceImpl.java

@@ -0,0 +1,71 @@
+package com.usoftchina.saas.operation.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.usoftchina.saas.commons.dto.ListReqDTO;
+import com.usoftchina.saas.operation.dto.AccountDTO;
+import com.usoftchina.saas.operation.dto.CompanyDTO;
+import com.usoftchina.saas.operation.dto.LoginDTO;
+import com.usoftchina.saas.operation.mapper.AccountMapper;
+import com.usoftchina.saas.operation.mapper.CompanyMapper;
+import com.usoftchina.saas.operation.service.DataService;
+import com.usoftchina.saas.page.PageRequest;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author: guq
+ * @create: 2019-01-04 15:28
+ **/
+@Service
+public class DataServiceImpl implements DataService{
+
+    @Autowired
+    private CompanyMapper companyMapper;
+    @Autowired
+    private AccountMapper accountMapper;
+
+    @Override
+    public PageInfo<CompanyDTO> getCompany(PageRequest page, ListReqDTO req) {
+        PageHelper.startPage(page.getNumber(), page.getSize());
+        //查询数据
+        String con = req.getFinalCondition();
+        if (null == con) {
+            con = "1=1";
+        }
+        List<CompanyDTO> companies = companyMapper.findCompanyByCondition(con);
+        //取分页信息
+        PageInfo<CompanyDTO> pageInfo = new PageInfo<CompanyDTO>(companies);
+        return pageInfo;
+    }
+
+    @Override
+    public PageInfo<AccountDTO> getAccount(PageRequest page, ListReqDTO req) {
+        PageHelper.startPage(page.getNumber(), page.getSize());
+        //查询数据
+        String con = req.getFinalCondition();
+        if (null == con) {
+            con = "1=1";
+        }
+        List<AccountDTO> accounts = accountMapper.findAccountByCondition(con);
+        //取分页信息
+        PageInfo<AccountDTO> pageInfo = new PageInfo<AccountDTO>(accounts);
+        return pageInfo;
+    }
+
+    @Override
+    public PageInfo<LoginDTO> getLogin(PageRequest page, ListReqDTO req) {
+        PageHelper.startPage(page.getNumber(), page.getSize());
+        //查询数据
+        String con = req.getFinalCondition();
+        if (null == con) {
+            con = "1=1";
+        }
+        List<LoginDTO> info = accountMapper.getLogin(con);
+        //取分页信息
+        PageInfo<LoginDTO> pageInfo = new PageInfo<LoginDTO>(info);
+        return pageInfo;
+    }
+}

+ 82 - 0
applications/operation/operation-server/src/main/resources/application.yml

@@ -0,0 +1,82 @@
+spring:
+  profiles:
+    active: dev
+  application:
+    name: operation-server
+  security:
+    user:
+      name: admin
+      password: select111***
+  rabbitmq:
+    host: 10.1.81.75
+    port: 5672
+    virtual-host: dev
+    username: saas
+    password: select123***
+  zipkin:
+    sender:
+      type: rabbit
+    locator:
+      discovery:
+        enabled: true
+  sleuth:
+    sampler:
+      probability: 1.0
+  datasource:
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    url: jdbc:mysql://10.1.81.79:3306/saas_auth?characterEncoding=utf-8&useSSL=false
+    username: root
+    password: select111***
+    hikari:
+      minimum-idle: 5
+      maximum-pool-size: 50
+      idle-timeout: 30000
+      max-lifetime: 1800000
+      connection-timeout: 30000
+  redis:
+    host: 10.1.81.62
+    port: 6379
+  jackson:
+    date-format: yyyy-MM-dd HH:mm:ss
+    time-zone: GMT+8
+eureka:
+  instance:
+    leaseRenewalIntervalInSeconds: 10
+    health-check-url-path: /actuator/health
+    status-page-url-path: /actuator/info
+    prefer-ip-address: true
+    metadata-map:
+      user.name: ${spring.security.user.name}
+      user.password: ${spring.security.user.password}
+  client:
+    registryFetchIntervalSeconds: 5
+    serviceUrl:
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@10.1.81.61:8510/eureka/
+server:
+  port: 9040
+  tomcat:
+    uri-encoding: UTF-8
+management:
+  endpoints:
+    web:
+      exposure:
+        include: "*"
+  endpoint:
+    health:
+      show-details: always
+    shutdown:
+      enabled: true
+    restart:
+      enabled: true
+info:
+  name: '@project.artifactId@'
+  description: '@project.description@'
+  version: '@project.version@'
+  spring-boot-version: '@spring.boot.version@'
+  spring-cloud-version: '@spring.cloud.version@'
+mybatis:
+  type-aliases-package: com.usoftchina.saas.operation.po
+  mapper-locations: classpath:mapper/*.xml
+ribbon:
+  ReadTimeout: 5000
+  ConnectTimeout: 5000

+ 13 - 0
applications/operation/operation-server/src/main/resources/config/application-dev.yml

@@ -0,0 +1,13 @@
+eureka:
+  instance:
+    leaseRenewalIntervalInSeconds: 10
+    health-check-url-path: /actuator/health
+    status-page-url-path: /actuator/info
+    prefer-ip-address: true
+    metadata-map:
+      user.name: ${spring.security.user.name}
+      user.password: ${spring.security.user.password}
+  client:
+    registryFetchIntervalSeconds: 5
+    serviceUrl:
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@127.0.0.1:8500/eureka/

+ 12 - 0
applications/operation/operation-server/src/main/resources/config/application-docker-dev.yml

@@ -0,0 +1,12 @@
+eureka:
+  instance:
+    hostname: saas-operation-server-dev
+    prefer-ip-address: false
+  client:
+    serviceUrl:
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@saas-eureka-server-dev:8510/eureka/
+spring:
+  rabbitmq:
+    virtual-host: dev
+server:
+  port: 9040

+ 23 - 0
applications/operation/operation-server/src/main/resources/config/application-docker-prod.yml

@@ -0,0 +1,23 @@
+eureka:
+  instance:
+    hostname: saas-operation-server
+    prefer-ip-address: false
+  client:
+    serviceUrl:
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@saas-eureka-server:8500/eureka/
+spring:
+  rabbitmq:
+    host: 10.10.100.103
+    port: 5672
+    virtual-host: docker
+    username: saas
+    password: select123***
+  datasource:
+    url: jdbc:mysql://10.10.100.18:3306/saas_auth?characterEncoding=utf-8&useSSL=false
+    username: saas
+    password: select111***
+  redis:
+    host: 10.10.100.173
+    port: 6379
+logging:
+  destination: 10.10.100.160:5000

+ 10 - 0
applications/operation/operation-server/src/main/resources/config/application-docker.yml

@@ -0,0 +1,10 @@
+eureka:
+  instance:
+    hostname: saas-operation-server
+    prefer-ip-address: false
+  client:
+    serviceUrl:
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@saas-eureka-server:8500/eureka/
+spring:
+  rabbitmq:
+    virtual-host: docker

+ 115 - 0
applications/operation/operation-server/src/main/resources/logback-spring.xml

@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <include resource="org/springframework/boot/logging/logback/base.xml" />
+    <jmxConfigurator/>
+
+    <!--
+    %m
+    输出代码中指定的消息
+    %p
+    输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
+    %r
+    输出自应用启动到输出该log信息耗费的毫秒数
+    %c
+    输出所属的类目,通常就是所在类的全名
+    %t
+    输出产生该日志事件的线程名
+    %n
+    输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
+    %d
+    输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},
+    输出类似:2002年10月18日 22:10:28,921
+    %l
+    输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)
+    -->
+
+    <springProperty scope="context" name="log.path" source="logging.path" defaultValue="/var/log/saas/operation-server"/>
+    <springProperty scope="context" name="spring.application.name" source="spring.application.name" defaultValue="operation-server"/>
+    <springProperty scope="context" name="spring.profiles.active" source="spring.profiles.active" defaultValue="dev"/>
+    <springProperty scope="context" name="common-pattern" source="logging.common-pattern" defaultValue="%d{yyyy-MM-dd HH:mm:ss.SSS}:[%5p] [%t:%r] [%C{1}:%M:%L] --> %m%n"/>
+    <springProperty scope="context" name="log.level.console" source="logging.level.console" defaultValue="INFO"/>
+    <springProperty scope="context" name="log.destination" source="logging.destination" defaultValue="10.1.81.1:5000"/>
+
+    <contextName>${spring.application.name}-${spring.profiles.active}-logback</contextName>
+
+    <appender name="CONSOLE_APPENDER" class="ch.qos.logback.core.ConsoleAppender">
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>${log.level.console}</level>
+        </filter>
+        <encoder>
+            <pattern>${common-pattern}</pattern>
+        </encoder>
+    </appender>
+
+    <appender name="ROOT_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.path}/root.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+            <fileNamePattern>${log.path}/%d{yyyy-MM}/root-%d{yyyy-MM-dd}-%i.log.gz</fileNamePattern>
+            <maxFileSize>128MB</maxFileSize>
+            <maxHistory>7</maxHistory>
+            <totalSizeCap>20GB</totalSizeCap>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${common-pattern}</pattern>
+        </encoder>
+    </appender>
+
+    <!-- Appender to log in a JSON format -->
+    <appender name="JSON_APPENDER" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
+        <destination>${log.destination}</destination>
+        <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
+            <providers>
+                <pattern>
+                    <pattern>
+                        {
+                        "severity": "%level",
+                        "service": "${spring.application.name:-}",
+                        "trace": "%X{X-B3-TraceId:-}",
+                        "span": "%X{X-B3-SpanId:-}",
+                        "parent": "%X{X-B3-ParentSpanId:-}",
+                        "exportable": "%X{X-Span-Export:-}",
+                        "pid": "${PID:-}",
+                        "thread": "%thread",
+                        "class": "%logger{40}",
+                        "rest": "%message"
+                        }
+                    </pattern>
+                </pattern>
+            </providers>
+        </encoder>
+    </appender>
+
+    <logger name="org.springframework" level="INFO"/>
+    <logger name="com.usoftchina.saas" level="INFO"/>
+
+    <springProfile name="dev">
+        <root level="INFO">
+            <appender-ref ref="CONSOLE_APPENDER"/>
+        </root>
+    </springProfile>
+
+    <springProfile name="docker">
+        <logger name="org.springframework" level="WARN"/>
+        <logger name="com.usoftchina.saas" level="WARN"/>
+        <root level="WARN">
+            <appender-ref ref="CONSOLE_APPENDER"/>
+            <appender-ref ref="JSON_APPENDER"/>
+        </root>
+    </springProfile>
+
+    <springProfile name="docker-dev">
+        <root level="INFO">
+            <appender-ref ref="CONSOLE_APPENDER"/>
+        </root>
+    </springProfile>
+
+    <springProfile name="docker-prod">
+        <logger name="org.springframework" level="WARN"/>
+        <logger name="com.usoftchina.saas" level="WARN"/>
+        <root level="WARN">
+            <appender-ref ref="CONSOLE_APPENDER"/>
+            <appender-ref ref="JSON_APPENDER"/>
+        </root>
+    </springProfile>
+
+</configuration>

+ 34 - 0
applications/operation/operation-server/src/main/resources/mapper/AccoutMapper.xml

@@ -0,0 +1,34 @@
+<?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.usoftchina.saas.operation.mapper.AccountMapper">
+    <resultMap id="BaseResultMap" type="com.usoftchina.saas.operation.dto.AccountDTO">
+        <id column="id" jdbcType="BIGINT" property="id"/>
+        <result column="username" jdbcType="VARCHAR" property="username"/>
+        <result column="realname" jdbcType="VARCHAR" property="realname"/>
+        <result column="email" jdbcType="VARCHAR" property="email"/>
+        <result column="mobile" jdbcType="VARCHAR" property="mobile"/>
+        <result column="type" jdbcType="INTEGER" property="type"/>
+        <result column="uu" jdbcType="BIGINT" property="uu"/>
+        <result column="enabled" jdbcType="BOOLEAN" property="enabled"/>
+        <result column="creator_id" jdbcType="BIGINT" property="creatorId"/>
+        <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
+        <result column="updater_id" jdbcType="BIGINT" property="updaterId"/>
+        <result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
+    </resultMap>
+
+    <resultMap id="loginMap" type="com.usoftchina.saas.operation.dto.LoginDTO">
+        <id column="account_id" jdbcType="INTEGER" property="account_id"/>
+        <result column="username" jdbcType="VARCHAR" property="username"/>
+        <result column="login_num" jdbcType="INTEGER" property="login_num"/>
+        <result column="lastesttime" jdbcType="TIMESTAMP" property="lastesttime"/>
+        <result column="mobile" jdbcType="VARCHAR" property="mobile"/>
+    </resultMap>
+
+    <select id="findAccountByCondition" parameterType="string" resultMap="BaseResultMap">
+        select * from saas_account.ac_account  where #{con}
+    </select>
+    <select id="getLogin" parameterType="string" resultMap="loginMap">
+        SELECT * FROM (select account_id  ,count(account_id) login_num,max(ac_account.realname) username,max(login_time) lastesttime, max(ac_account.mobile) mobile from au_authorize_log left join saas_account.ac_account on account_id= ac_account.id  where login_time >  date_sub(now(),interval 3 MONTH) GROUP BY account_id order by lastesttime desc
+        )login_info where #{con}
+    </select>
+</mapper>

+ 20 - 0
applications/operation/operation-server/src/main/resources/mapper/CompanyMapper.xml

@@ -0,0 +1,20 @@
+<?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.usoftchina.saas.operation.mapper.CompanyMapper">
+    <resultMap id="baseMap" type="com.usoftchina.saas.operation.dto.CompanyDTO">
+        <result column="name" property="name" jdbcType="VARCHAR" />
+        <result column="business_Code" property="business_Code" jdbcType="VARCHAR" />
+        <result column="address" property="address" jdbcType="VARCHAR" />
+        <result column="tel" property="tel" jdbcType="VARCHAR" />
+        <result column="fax" property="fax" jdbcType="VARCHAR" />
+        <result column="realname" property="realname" jdbcType="VARCHAR" />
+        <result column="mobile" property="mobile" jdbcType="VARCHAR" />
+        <result column="create_time" property="create_time" jdbcType="TIMESTAMP" />
+        <result column="uu" property="uu" jdbcType="INTEGER" />
+    </resultMap>
+
+    <select id="findCompanyByCondition" parameterType="string" resultMap="baseMap">
+         select name,business_Code,address,tel,fax,realname,mobile,ac_company.create_time,ac_company.uu from saas_account.ac_company
+        left join saas_account.ac_account on ac_account.id = ac_company.creator_id where #{con}
+    </select>
+</mapper>

+ 139 - 0
applications/operation/operation-server/src/main/resources/mapper/CustomerfedbackMapper.xml

@@ -0,0 +1,139 @@
+<?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.usoftchina.saas.operation.mapper.CustomerfedbackMapper" >
+  <resultMap id="BaseResultMap" type="com.usoftchina.saas.operation.po.CustomerFedBack" >
+    <id column="cf_id" property="cf_id" jdbcType="INTEGER" />
+    <result column="cf_creator" property="cf_creator" jdbcType="VARCHAR" />
+    <result column="cf_creatime" property="cf_creatime" jdbcType="TIMESTAMP" />
+    <result column="cf_creatorid" property="cf_creatorid" jdbcType="INTEGER" />
+    <result column="cf_content" property="cf_content" jdbcType="VARCHAR" />
+    <result column="cf_status" property="cf_status" jdbcType="VARCHAR" />
+    <result column="cf_companyid" property="cf_companyid" jdbcType="INTEGER" />
+    <result column="cf_company" property="cf_company" jdbcType="VARCHAR" />
+    <result column="cf_remark" property="cf_remark" jdbcType="VARCHAR" />
+  </resultMap>
+  <sql id="Base_Column_List" >
+    cf_id, cf_creator, cf_creatime, cf_creatorid, cf_content, cf_status, cf_companyid, 
+    cf_company, cf_remark
+  </sql>
+  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
+    select 
+    <include refid="Base_Column_List" />
+    from customerfedback
+    where cf_id = #{cf_id,jdbcType=INTEGER}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
+    delete from customerfedback
+    where cf_id = #{cf_id,jdbcType=INTEGER}
+  </delete>
+  <insert id="insert" parameterType="com.usoftchina.saas.operation.po.CustomerFedBack" >
+    insert into customerfedback (cf_id, cf_creator, cf_creatime, 
+      cf_creatorid, cf_content, cf_status, 
+      cf_companyid, cf_company, cf_remark
+      )
+    values (#{cf_id,jdbcType=INTEGER}, #{cf_creator,jdbcType=VARCHAR}, #{cf_creatime,jdbcType=TIMESTAMP}, 
+      #{cf_creatorid,jdbcType=INTEGER}, #{cf_content,jdbcType=VARCHAR}, #{cf_status,jdbcType=VARCHAR}, 
+      #{cf_companyid,jdbcType=INTEGER}, #{cf_company,jdbcType=VARCHAR}, #{cf_remark,jdbcType=VARCHAR}
+      )
+  </insert>
+  <insert id="insertSelective" parameterType="com.usoftchina.saas.operation.po.CustomerFedBack" >
+    <selectKey  resultType="java.lang.Long" keyProperty="cf_id">
+      SELECT LAST_INSERT_ID() AS cf_id
+    </selectKey>
+    insert into customerfedback
+    <trim prefix="(" suffix=")" suffixOverrides="," >
+      <if test="cf_creator != null" >
+        cf_creator,
+      </if>
+      <if test="cf_creatime != null" >
+        cf_creatime,
+      </if>
+      <if test="cf_creatorid != null" >
+        cf_creatorid,
+      </if>
+      <if test="cf_content != null" >
+        cf_content,
+      </if>
+      <if test="cf_status != null" >
+        cf_status,
+      </if>
+      <if test="cf_companyid != null" >
+        cf_companyid,
+      </if>
+      <if test="cf_company != null" >
+        cf_company,
+      </if>
+      <if test="cf_remark != null" >
+        cf_remark,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides="," >
+      <if test="cf_creator != null" >
+        #{cf_creator,jdbcType=VARCHAR},
+      </if>
+      <if test="cf_creatime != null" >
+        #{cf_creatime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="cf_creatorid != null" >
+        #{cf_creatorid},
+      </if>
+      <if test="cf_content != null" >
+        #{cf_content,jdbcType=VARCHAR},
+      </if>
+      <if test="cf_status != null" >
+        #{cf_status,jdbcType=VARCHAR},
+      </if>
+      <if test="cf_companyid != null" >
+        #{cf_companyid},
+      </if>
+      <if test="cf_company != null" >
+        #{cf_company,jdbcType=VARCHAR},
+      </if>
+      <if test="cf_remark != null" >
+        #{cf_remark,jdbcType=VARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.usoftchina.saas.operation.po.CustomerFedBack" >
+    update customerfedback
+    <set >
+      <if test="cf_creator != null" >
+        cf_creator = #{cf_creator,jdbcType=VARCHAR},
+      </if>
+      <if test="cf_creatime != null" >
+        cf_creatime = #{cf_creatime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="cf_creatorid != null" >
+        cf_creatorid = #{cf_creatorid,jdbcType=INTEGER},
+      </if>
+      <if test="cf_content != null" >
+        cf_content = #{cf_content,jdbcType=VARCHAR},
+      </if>
+      <if test="cf_status != null" >
+        cf_status = #{cf_status,jdbcType=VARCHAR},
+      </if>
+      <if test="cf_companyid != null" >
+        cf_companyid = #{cf_companyid,jdbcType=INTEGER},
+      </if>
+      <if test="cf_company != null" >
+        cf_company = #{cf_company,jdbcType=VARCHAR},
+      </if>
+      <if test="cf_remark != null" >
+        cf_remark = #{cf_remark,jdbcType=VARCHAR},
+      </if>
+    </set>
+    where cf_id = #{cf_id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.usoftchina.saas.operation.po.CustomerFedBack" >
+    update customerfedback
+    set cf_creator = #{cf_creator,jdbcType=VARCHAR},
+      cf_creatime = #{cf_creatime,jdbcType=TIMESTAMP},
+      cf_creatorid = #{cf_creatorid,jdbcType=INTEGER},
+      cf_content = #{cf_content,jdbcType=VARCHAR},
+      cf_status = #{cf_status,jdbcType=VARCHAR},
+      cf_companyid = #{cf_companyid,jdbcType=INTEGER},
+      cf_company = #{cf_company,jdbcType=VARCHAR},
+      cf_remark = #{cf_remark,jdbcType=VARCHAR}
+    where cf_id = #{cf_id,jdbcType=INTEGER}
+  </update>
+</mapper>

+ 13 - 0
base-servers/auth/auth-server/src/main/resources/config/application-dev.yml

@@ -0,0 +1,13 @@
+eureka:
+  instance:
+    leaseRenewalIntervalInSeconds: 10
+    health-check-url-path: /actuator/health
+    status-page-url-path: /actuator/info
+    prefer-ip-address: true
+    metadata-map:
+      user.name: ${spring.security.user.name}
+      user.password: ${spring.security.user.password}
+  client:
+    registryFetchIntervalSeconds: 5
+    serviceUrl:
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@127.0.0.1:8500/eureka/

+ 12 - 0
base-servers/sms/sms-server/src/main/resources/config/application-docker-dev.yml

@@ -0,0 +1,12 @@
+eureka:
+  instance:
+    hostname: saas-sms-server-dev
+    prefer-ip-address: false
+  client:
+    serviceUrl:
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@saas-eureka-server-dev:8510/eureka/
+spring:
+  rabbitmq:
+    virtual-host: dev
+server:
+  port: 8680