Browse Source

Merge branch 'dev' of ssh://10.10.100.21/source/saas-platform into dev

jinsy 7 years ago
parent
commit
5d5342347f
27 changed files with 307 additions and 82 deletions
  1. 1 0
      applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/exception/BizExceptionCode.java
  2. 10 3
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/ProductServiceImpl.java
  3. 10 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Paybalance.java
  4. 10 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Recbalance.java
  5. 13 2
      applications/money/money-server/src/main/resources/mapper/PaybalanceMapper.xml
  6. 16 2
      applications/money/money-server/src/main/resources/mapper/RecbalanceMapper.xml
  7. 0 2
      applications/transfers/transfers-server/pom.xml
  8. 6 0
      applications/transfers/transfers-server/src/main/docker/Dockerfile
  9. 8 0
      applications/transfers/transfers-server/src/main/java/com/usoftchina/saas/transfers/po/BrokerMessagelog.java
  10. 32 16
      applications/transfers/transfers-server/src/main/java/com/usoftchina/saas/transfers/po/MessageInfo.java
  11. 2 2
      applications/transfers/transfers-server/src/main/java/com/usoftchina/saas/transfers/service/BaseRabbitReceiveService.java
  12. 19 3
      applications/transfers/transfers-server/src/main/java/com/usoftchina/saas/transfers/service/RabbitReceiveService.java
  13. 30 0
      applications/transfers/transfers-server/src/main/java/com/usoftchina/saas/transfers/task/TaskSchedulerConfig.java
  14. 2 0
      applications/transfers/transfers-server/src/main/resources/application.yml
  15. 13 0
      applications/transfers/transfers-server/src/main/resources/config/application-dev.yml
  16. 23 0
      applications/transfers/transfers-server/src/main/resources/config/application-docker-prod.yml
  17. 12 0
      applications/transfers/transfers-server/src/main/resources/config/application-docker-test.yml
  18. 10 0
      applications/transfers/transfers-server/src/main/resources/config/application-docker.yml
  19. 8 0
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/mapper/AccountCompanyMapper.java
  20. 6 1
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/impl/AccountServiceImpl.java
  21. 3 0
      base-servers/account/account-server/src/main/resources/mapper/AccountCompanyMapper.xml
  22. 7 7
      framework/core/src/main/java/com/usoftchina/saas/exception/ExceptionCode.java
  23. 6 7
      frontend/saas-portal-web/src/pages/invitation_mobile_join/invitation_mobile_join.html
  24. 22 19
      frontend/saas-portal-web/static/css/invitation_mobile_join.css
  25. 3 2
      frontend/saas-portal-web/static/css/toast.style.css
  26. 0 1
      frontend/saas-web/app/view/main/Main.js
  27. 35 15
      frontend/saas-web/app/view/main/MainController.js

+ 1 - 0
applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/exception/BizExceptionCode.java

@@ -21,6 +21,7 @@ public enum BizExceptionCode implements BaseExceptionCode {
     NULL_CODERULE(79100, "单据规则不存在,请先确定单据生成规则"),
     CODE_EXISTS(79200, "单据编号已存在"),
     BIZ_CLOSE(79301, "只能关闭已审核的单据"),
+    ORDER_NOT_EXITTS(79300, "单据不存在"),
     BIZ_OPEN(79302, "只能打开已关闭的单据"),
     BIZ_AUDITED(79303,"只能审核未审核的单据"),
     BIZ_UNAUDITED(79304,"只能反审核已审核的单据"),

+ 10 - 3
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/ProductServiceImpl.java

@@ -30,7 +30,7 @@ import com.usoftchina.saas.document.service.*;
 import com.usoftchina.saas.exception.BizException;
 import com.usoftchina.saas.page.PageRequest;
 import com.usoftchina.saas.utils.CollectionUtils;
-import com.usoftchina.saas.utils.DateUtils;
+import com.usoftchina.saas.utils.ObjectUtils;
 import com.usoftchina.saas.utils.RegexpUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -142,6 +142,9 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
             messageLogService.save(docBaseDTO);
         }else{
             String oldCode = getMapper().getCodeById(product.getId());
+            if (StringUtils.isEmpty(oldCode)){
+                throw new BizException(BizExceptionCode.ORDER_NOT_EXITTS);
+            }
             if (!product.getPr_code().equals(oldCode)){
                 validEnableUpdateCode(product.getId());
             }
@@ -425,7 +428,7 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
                 close(docBaseDTO.getId());
             }catch (Exception e){
                 String msg = BizExceptionCode.DEAL_FAILED.getMessage();
-                errorMsg.append(String.format(msg, docBaseDTO.getCode(), e.getMessage()));
+                errorMsg.append(String.format(msg, docBaseDTO.getCode(), e.getMessage()) + "<br />");
             }
         }
         return errorMsg.toString();
@@ -439,7 +442,7 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
                 open(docBaseDTO.getId());
             }catch (Exception e){
                 String msg = BizExceptionCode.DEAL_FAILED.getMessage();
-                errorMsg.append(String.format(msg, docBaseDTO.getCode(), e.getMessage()));
+                errorMsg.append(String.format(msg, docBaseDTO.getCode(), e.getMessage()) + "<br />");
             }
         }
         return errorMsg.toString();
@@ -580,6 +583,10 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
 
     @Override
     public boolean deleteDetailById(Long id) {
+        Product productTemp = getMapper().selectByPrimaryKey(id);
+        if (ObjectUtils.isEmpty(productTemp)){
+            throw new BizException(BizExceptionCode.ORDER_NOT_EXITTS);
+        }
         Long prodId = productDetailMapper.selectProdidByPrimaryKey(id);
         validProductOperation(prodId, BizExceptionCode.BIZ_RELDELETE_DELETEPROD);
         String prCode = getMapper().selectByPrimaryKey(prodId).getPr_code();

+ 10 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Paybalance.java

@@ -81,6 +81,16 @@ public class Paybalance extends CommonBaseEntity implements Serializable {
 
     private String pb_auditman;
 
+    private Double pb_amount;
+
+    public Double getPb_amount() {
+        return pb_amount;
+    }
+
+    public void setPb_amount(Double pb_amount) {
+        this.pb_amount = pb_amount;
+    }
+
     public Date getPb_auditdate() {
         return pb_auditdate;
     }

+ 10 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Recbalance.java

@@ -81,6 +81,16 @@ public class Recbalance extends CommonBaseEntity implements Serializable {
 
     private Date rb_auditdate;
 
+    private Double rb_amount;
+
+    public Double getRb_amount() {
+        return rb_amount;
+    }
+
+    public void setRb_amount(Double rb_amount) {
+        this.rb_amount = rb_amount;
+    }
+
     public String getRb_auditman() {
         return rb_auditman;
     }

+ 13 - 2
applications/money/money-server/src/main/resources/mapper/PaybalanceMapper.xml

@@ -41,6 +41,8 @@
     <result column="createTime" property="createTime" jdbcType="TIMESTAMP" />
     <result column="pb_auditdate" property="pb_auditdate" jdbcType="TIMESTAMP" />
     <result column="pb_auditman" property="pb_auditman" jdbcType="VARCHAR" />
+    <result column="pb_amount" property="pb_amount" jdbcType="DOUBLE" />
+    <result column="pd_paycode" property="pd_paycode" jdbcType="VARCHAR" />
   </resultMap>
   <sql id="Example_Where_Clause">
     <where>
@@ -105,13 +107,13 @@
     pb_pdamount, pb_pbdamount, pb_preamount, pb_discounts, pb_havebalance,
      pb_status, pb_statuscode, pb_remark, paybalance.companyId,
     paybalance.updaterId,paybalance.updatedate, pb_text1, pb_text2, pb_text3, pb_text4, pb_text5, paybalance.creatorName,
-    paybalance.createTime, pb_auditdate, pb_auditman
+    paybalance.createTime, pb_auditdate, pb_auditman,pb_amount
   </sql>
   <sql id="left_Column_List">
     ve_leftamount
   </sql>
   <sql id="detail_Column_List">
-    pd_bankname,pd_amount,pd_paymethod,pd_remark
+    pd_bankname,pd_amount,pd_paymethod,pd_remark,pd_paycode
   </sql>
   <select id="selectList" resultMap="BaseResultMap">
     select
@@ -209,6 +211,9 @@
       <if test="updaterId != null">
         updaterId,
       </if>
+      <if  test="pb_amount != null">
+        pb_amount,
+      </if>
       <if test="pb_text1 != null">
         pb_text1,
       </if>
@@ -304,6 +309,9 @@
       <if test="createTime != null" >
         #{createTime,jdbcType=TIMESTAMP},
       </if>
+      <if test="pb_amount != null" >
+        #{pb_amount,jdbcType=DOUBLE},
+      </if>
     </trim>
     <selectKey resultType="Long" keyProperty="id" order="AFTER">
       SELECT LAST_INSERT_ID()
@@ -384,6 +392,9 @@
       </if>
       <if test="pb_text5 != null">
         pb_text5 = #{pb_text5,jdbcType=VARCHAR},
+      </if>
+      <if test="pb_amount != null">
+        pb_amount = #{pb_amount,jdbcType=DOUBLE},
       </if>
         pb_auditman = #{pb_auditman,jdbcType=VARCHAR},
         pb_auditdate = #{pb_auditdate,jdbcType=TIMESTAMP}

+ 16 - 2
applications/money/money-server/src/main/resources/mapper/RecbalanceMapper.xml

@@ -41,6 +41,8 @@
     <result column="createTime" property="createTime" jdbcType="TIMESTAMP" />
     <result column="rb_auditman" property="rb_auditman" jdbcType="VARCHAR" />
     <result column="rb_auditdate" property="rb_auditdate" jdbcType="TIMESTAMP" />
+    <result column="rb_amount" property="rb_amount" jdbcType="DOUBLE" />
+    <result column="rd_paycode" property="rd_paycode" jdbcType="VARCHAR" />
   </resultMap>
   <sql id="Example_Where_Clause">
     <where>
@@ -105,13 +107,13 @@
     rb_rdamount, rb_rbdamount, rb_preamount, rb_discounts, rb_havebalance, rb_status, rb_statuscode, rb_remark,
     recbalance.companyId,
     recbalance.updaterId,recbalance.updatedate, rb_text1, rb_text2, rb_text3, rb_text4, rb_text5,
-    recbalance.creatorName, recbalance.createTime, rb_auditman, rb_auditdate
+    recbalance.creatorName, recbalance.createTime, rb_auditman, rb_auditdate, rb_amount
   </sql>
   <sql id="left_Column_List">
     cu_leftamount
   </sql>
   <sql id="detail_Column_List">
-      rd_bankname,rd_amount,rd_paymethod,rd_paycode,rd_remark
+      rd_bankname,rd_amount,rd_paymethod,rd_paycode,rd_remark,rd_paycode
   </sql>
 
   <select id="selectByExample" parameterType="com.usoftchina.saas.money.po.RecbalanceExample" resultMap="BaseResultMap">
@@ -273,6 +275,9 @@
       <if test="createTime != null" >
         createTime,
       </if>
+      <if test="rb_amount != null">
+        rb_amount,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="rb_code != null">
@@ -347,6 +352,9 @@
       <if test="createTime != null" >
         #{createTime,jdbcType=TIMESTAMP},
       </if>
+      <if test="rb_amount != null">
+        #{rb_amount,jdbcType=DOUBLE},
+      </if>
     </trim>
     <selectKey resultType="Long" keyProperty="id" order="AFTER">
       SELECT LAST_INSERT_ID()
@@ -433,6 +441,9 @@
       <if test="record.rb_text5 != null">
         rb_text5 = #{record.rb_text5,jdbcType=VARCHAR},
       </if>
+      <if test="pb_amount != null">
+        pb_amount = #{pb_amount,jdbcType=DOUBLE},
+      </if>
     </set>
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
@@ -536,6 +547,9 @@
       </if>
       <if test="rb_text5 != null">
         rb_text5 = #{rb_text5,jdbcType=VARCHAR},
+      </if>
+      <if test="rb_amount != null">
+        rb_amount = #{rb_amount,jdbcType=DOUBLE},
       </if>
         rb_auditman = #{rb_auditman,jdbcType=VARCHAR},
       rb_auditdate = #{rb_auditdate,jdbcType=TIMESTAMP}

+ 0 - 2
applications/transfers/transfers-server/pom.xml

@@ -9,9 +9,7 @@
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <groupId>com.usoftchina.saas</groupId>
     <artifactId>transfers-server</artifactId>
-    <version>1.0.0-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

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

@@ -0,0 +1,6 @@
+FROM frolvlad/alpine-oraclejdk8:slim
+VOLUME /tmp
+ADD transfers-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" ]

+ 8 - 0
applications/transfers/transfers-server/src/main/java/com/usoftchina/saas/transfers/po/BrokerMessagelog.java

@@ -0,0 +1,8 @@
+package com.usoftchina.saas.transfers.po;
+
+/**
+ * @author: guq
+ * @create: 2018-12-29 09:46
+ **/
+public class BrokerMessagelog {
+}

+ 32 - 16
applications/transfers/transfers-server/src/main/java/com/usoftchina/saas/transfers/po/MessageInfo.java

@@ -24,14 +24,39 @@ public class MessageInfo implements Serializable {
      * 业务类型
      */
     private String bizType;
+
     /**
      * 业务单据ID
      */
+
     private String bizId;
+    /**
+     * 公司id
+     * @return
+     */
+    private Long companyId;
+
     /**
      * 时间戳
      */
     private long timestamp;
+
+    public long getTimestamp() {
+        return timestamp;
+    }
+
+    public void setTimestamp(long timestamp) {
+        this.timestamp = timestamp;
+    }
+
+    public int getRetryCount() {
+        return retryCount;
+    }
+
+    public void setRetryCount(int retryCount) {
+        this.retryCount = retryCount;
+    }
+
     /**
      * 重试次数
      */
@@ -77,22 +102,6 @@ public class MessageInfo implements Serializable {
         this.bizId = bizId;
     }
 
-    public long getTimestamp() {
-        return timestamp;
-    }
-
-    public void setTimestamp(long timestamp) {
-        this.timestamp = timestamp;
-    }
-
-    public int getRetryCount() {
-        return retryCount;
-    }
-
-    public void setRetryCount(int retryCount) {
-        this.retryCount = retryCount;
-    }
-
     public MessageInfo(String userId, String appId, String bizType, String bizId) {
         this.userId = userId;
         this.appId = appId;
@@ -103,4 +112,11 @@ public class MessageInfo implements Serializable {
     public MessageInfo() {
 
     }
+    public Long getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(Long companyId) {
+        this.companyId = companyId;
+    }
 }

+ 2 - 2
applications/transfers/transfers-server/src/main/java/com/usoftchina/saas/transfers/service/BaseRabbitReceiveService.java

@@ -188,7 +188,7 @@ public abstract class BaseRabbitReceiveService implements ChannelAwareMessageLis
      */
     private void sendDelayMessage(MessageInfo messageInfo, Channel channel, String queueName) {
         //重试次数+1
-        messageInfo.setRetryCount(messageInfo.getRetryCount() + 1);
+        /*messageInfo.setRetryCount(messageInfo.getRetryCount() + 1);
         String messageJson = JsonUtils.toJsonString(messageInfo);
         try {
             String dQueueName = getDelayQueueName(channel, queueName);
@@ -199,7 +199,7 @@ public abstract class BaseRabbitReceiveService implements ChannelAwareMessageLis
             LOGGER.info("发送延时消息[BaseRabbitReceiveService.sendDelayMessage].正常,messageJson:{},queueName:{}", messageJson, queueName);
         } catch (IOException e) {
             LOGGER.error("发送延时消息[BaseRabbitReceiveService.sendDelayMessage].异常,messageJson:{},queueName:{}", messageJson, queueName, e);
-        }
+        }*/
     }
 
     /**

+ 19 - 3
applications/transfers/transfers-server/src/main/java/com/usoftchina/saas/transfers/service/RabbitReceiveService.java

@@ -42,11 +42,27 @@ public class RabbitReceiveService extends BaseRabbitReceiveService {
             case "trade":
                 processMessageForReceivable(messageInfo.getBizId(), messageInfo.getBizType());
             default:
-                break;
+                throw new Exception("无法处理的消息");
         }
     }
 
-    private void processMessageForReceivable(String bizId, String bizType) {
-        LOGGER.info("消费消息,bizId:{}, bizType:{}", bizId, bizType);
+    private void processMessageForReceivable(String bizId, String bizType) throws Exception {
+        /*  根据不同的bizType,方案:1.调用不同的方法.    2.处理自己需要变量操作,调用同一个方法  */
+       switch (bizType){
+           case "PURCHASE":
+               /* 执行必要的操作 */
+               execute();
+               break;
+           case "PURCHASECHANGE":
+               /* 执行必要的操作 */
+               break;
+           default:
+               throw new Exception();
+       }
     }
+
+    private void execute() throws Exception {
+        throw new Exception();
+    }
+
 }

+ 30 - 0
applications/transfers/transfers-server/src/main/java/com/usoftchina/saas/transfers/task/TaskSchedulerConfig.java

@@ -0,0 +1,30 @@
+package com.usoftchina.saas.transfers.task;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.SchedulingConfigurer;
+import org.springframework.scheduling.config.ScheduledTaskRegistrar;
+
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
+
+/**
+ * @author: guq
+ * @create: 2018-12-29 09:38
+ **/
+@Configuration
+@EnableScheduling
+public class TaskSchedulerConfig implements SchedulingConfigurer{
+
+    @Override
+    public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
+        scheduledTaskRegistrar.setScheduler(taskScheduler());
+    }
+
+    @Bean(destroyMethod = "shutdown")
+    public Executor taskScheduler() {
+        return Executors.newScheduledThreadPool(100);
+    }
+
+}

+ 2 - 0
applications/transfers/transfers-server/src/main/resources/application.yml

@@ -26,6 +26,8 @@ spring:
   redis:
     host: 10.1.81.62
     port: 6379
+  profiles:
+    active: dev
 management:
   endpoints:
     web:

+ 13 - 0
applications/transfers/transfers-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/

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

@@ -0,0 +1,23 @@
+eureka:
+  instance:
+    hostname: saas-transfers-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_biz?characterEncoding=utf-8&useSSL=false&allowMultiQueries=true
+    username: saas
+    password: select111***
+  redis:
+    host: 10.10.100.173
+    port: 6379
+logging:
+  destination: 10.10.100.160:5000

+ 12 - 0
applications/transfers/transfers-server/src/main/resources/config/application-docker-test.yml

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

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

@@ -0,0 +1,10 @@
+eureka:
+  instance:
+    hostname: saas-transfers-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

+ 8 - 0
base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/mapper/AccountCompanyMapper.java

@@ -81,4 +81,12 @@ public interface AccountCompanyMapper {
      * @return
      */
     int hasBind(@Param("accountId") Long accountId, @Param("companyId") Long companyId);
+
+    /**
+     * 账户公司以前绑定过,现在已解绑
+     * @param accountId
+     * @param companyId
+     * @return
+     */
+    int hasUnBindData(@Param("accountId") Long accountId, @Param("companyId") Long companyId);
 }

+ 6 - 1
base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/impl/AccountServiceImpl.java

@@ -134,7 +134,12 @@ public class AccountServiceImpl implements AccountService {
 
     @Override
     public void bindCompany(Long accountId, Long companyId) {
-        accountCompanyMapper.insert(accountId, companyId);
+        int count = accountCompanyMapper.hasUnBindData(accountId, companyId);
+        if (count > 0) {
+            updateBindCompanyStatus(accountId, companyId, "1");
+        }else {
+            accountCompanyMapper.insert(accountId, companyId);
+        }
     }
 
     @Override

+ 3 - 0
base-servers/account/account-server/src/main/resources/mapper/AccountCompanyMapper.xml

@@ -42,4 +42,7 @@
     <select id="hasBind" resultType="int">
         SELECT COUNT(*) FROM AC_ACCOUNT_COMPANY WHERE ACCOUNT_ID = #{accountId} AND COMPANY_ID = #{companyId} AND STATUS = 1
     </select>
+    <select id="hasUnBindData" resultType="int">
+        SELECT COUNT(*) FROM AC_ACCOUNT_COMPANY WHERE ACCOUNT_ID = #{accountId} AND COMPANY_ID = #{companyId} AND STATUS = 0
+    </select>
 </mapper>

+ 7 - 7
framework/core/src/main/java/com/usoftchina/saas/exception/ExceptionCode.java

@@ -31,10 +31,10 @@ public enum ExceptionCode implements BaseExceptionCode {
 
     // 账户管理相关
     COMPANY_NAME_EXIST(52000, "公司名称已注册"),
-    COMPANY_NAME_HASREGISTER(52000, "企业已开通saas,请联系管理员 %s 将您添加至企业"),
+    COMPANY_NAME_HASREGISTER(52000, "企业已开通saas服务,请联系管理员 %s 将您添加至企业"),
     COMPANY_CODE_EXIST(52001, "公司商业登记证号已注册"),
     COMPANY_DOMAIN_EXIST(52002, "域名已存在"),
-    COMPANY_NOT_EXIST(52003, "公司不存在"),
+    COMPANY_NOT_EXIST(52003, "企业不存在"),
     COMPANY_NOT_BIND(52004, "未绑定该公司"),
     USER_NAME_EXIST(53000, "用户名已注册"),
     USER_MOBILE_EXIST(53001, "手机号已注册"),
@@ -45,11 +45,11 @@ public enum ExceptionCode implements BaseExceptionCode {
     USER_NOT_ENABLE(53006, "用户禁止使用"),
     ROLE_NOT_EXIST(53020, "角色不存在"),
     MISSING_PERMISSIONS(53030, "权限缺失"),
-    USER_COMPANY_EXIST(53007, "企业已存在账户"),
-    ROLE_HAS_USE(54030, "存在已使用该角色的账户,不允许删除"),
-    APPLY_DOING_EXIST(54031, "已存在待处理的加入申请"),
-    HAS_BIND_COMPANY(54032, "已加入企业"),
-    SMS_VALIDCODE_EXPIRE(54033, "短信验证码已过期"),
+    USER_COMPANY_EXIST(53007, "该账户已在企业服务中"),
+    ROLE_HAS_USE(54030, "该角色已有账户使用,不允许删除"),
+    APPLY_DOING_EXIST(54031, "您已申请加入此企业,管理员处理中,请勿重复申请"),
+    HAS_BIND_COMPANY(54032, "您的账户存在该企业服务中,请勿重复加入"),
+    SMS_VALIDCODE_EXPIRE(54033, "短信验证码已过期,请重新获取"),
     SMS_VALIDCODE_ERROR(54034, "短信验证码错误"),
 
     // 文件相关

+ 6 - 7
frontend/saas-portal-web/src/pages/invitation_mobile_join/invitation_mobile_join.html

@@ -174,7 +174,7 @@
                     has_icon:true,
                     has_close_btn:false,
                     fullscreen:false,
-                    timeout:2000,
+                    timeout:233000,
                     position_class: "toast-top-center",
                     sticky:false,
                     has_progress:false,
@@ -184,10 +184,10 @@
         </script> 
     </head>
     <body>
-        <div class="x-join" style="width:100%;height:100%">
+        <div class="x-join" style="width:100%;">
             <div class="x-join-center" hidden>
                 <div class="subtitle">U企云服</div>
-                <div style="margin:30px 0 0 0px">
+                <div style="margin:20px 0 0 0px">
                     <!-- 邀请人姓名 -->
                     <span id="sendman" style="padding:0 0 0 2px;color: #fff;"></span>
                     </br>
@@ -203,10 +203,9 @@
                 <button style="position: absolute;" class="expand_icon" type="button" ></button>
                 <button class="btn-submit" style="border-radius: 30px;width: 80%;      margin-top: 40px;   font-size: 18px; height: 47px;" type="button" id="joinBtn" onclick="join();">提 交</button>
             </div>
-            <div class="x-join-bottom" style="    height: 55px;">
-                <span style="font-size:16px;padding:0 0 0 5px;color: #999;">U企云服 | 电子行业企业管理云端方案</span>
-                </br>
-                <span style="font-size:16px;padding:0 0 0 5px;color: #999;">深圳市优软科技有限公司</span>
+            <div class="x-join-bottom" style=" display:table-cell;font-size:12px;font-height:14px;vertical-align:middle;text-align:center;   height: 50px;">
+                <span class="x-bottom-text">U企云服 | 电子行业企业管理云端方案</span>
+                <span class="x-bottom-text" style="    margin-top: 2px;">深圳市优软科技有限公司</span>
             </div>
             <div class="x-join-error" hidden>
                 </br></br></br></br>

+ 22 - 19
frontend/saas-portal-web/static/css/invitation_mobile_join.css

@@ -4,14 +4,12 @@
 	box-sizing: border-box
 }
 body, html {
-    min-height: 100%;
 }
 body {
     background-repeat: no-repeat;
     background-position: center;
     background-attachment: fixed;
     z-index: -1;
-    height: 100%;
     width: 100%;
     background-size: cover;
     background-image: url(../img/invitation_background.png);
@@ -41,13 +39,12 @@ body {
 }
 .x-join-center {
 	width: 100%;
-    height: 100%;
     /* left: 50%; */
     /* margin-left: -140px; */
     text-align: center;
 }
 .x-join-center .subtitle {
-    margin-top: 30px;
+    margin-top: 20px;
     margin-left: -15px;
 	display: block;
     height: 50px;
@@ -67,6 +64,15 @@ body {
 	margin: 40px auto 0px auto;
 	overflow: hidden;
 }
+.x-bottom-text{
+    margin-top: 5px;
+    display: block;
+    font-family: PingFangSC-Regular;
+    color: #666666;
+    letter-spacing: 1.88px;
+    font-size: 15px;
+    padding: 0 0 0 5px;
+}
 .x-join-center .share-step .share-step-tag {
 	display: block;
 	width: 30px;
@@ -96,50 +102,48 @@ body {
 	margin: 15px 5px 0 30px;
 }
 .input_style{
+    border-radius: 30px;
+    opacity: 0.8;
+    border: 1px solid #bdbdbd;
     -webkit-appearance: none;
-    font-size: 14.5px;
+    font-size: 16.5px;
     margin: 0 auto;
     padding-top: 3px;
     padding-left: 13px;
     width: 80%;
     margin-top: 18px;
     height: 40px;
-	display: block;
+    display: block;
     color: #555;
     background-color: #fff;
     background-image: none;
-    border: 1px solid #ccc;
-    border-radius:30px;
-    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-    -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
-    -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
-    transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
+    border: 1px solid #656565;
 }
 .expand_icon{
     border: none;
-    margin-left: 292px;
+    margin-left: 70%;
     position: absolute;
     margin-top: -26px;
-    display: block;
+    display: inline-block;
     height: 16px;
     width: 28px;
     background: url(../img/assets/expand.png)no-repeat right;
 }
 .btn-check{
+    border-radius: 30px;
     padding-top: 4px;
     border-top-right-radius: 30px;
     border-bottom-right-radius: 30px;
     margin-top: -35px;
-    margin-left: 30px;
+    margin-left: 55%;
     line-height: 20px;
     height: 30px;
-    background: #fff;
+    background: unset;
     color: #369ab9;
     /* background-image: linear-gradient(to bottom, #69b5f7 0, #579dda 100%); */
     /* border-color: #428bca; */
     width: 110px;
-    display: inline-block;
+    display: block;
     /* padding: 0px; */
     margin-bottom: 0;
     font-size: 16px;
@@ -153,7 +157,6 @@ body {
     -ms-user-select: none;
     user-select: none;
     border: 1px solid transparent;
-    border-left: 2px solid #a9a9a9;
 }
 
 .btn-submit{

+ 3 - 2
frontend/saas-portal-web/static/css/toast.style.css

@@ -20,7 +20,8 @@ i {
   -moz-osx-font-smoothing: grayscale; }
 
 .toast-icon-error:before {
-  content: "×"; }
+  content: "E";
+  font-weight: 600;}
 
 .toast-icon-info:before {
   content: ""; }
@@ -111,7 +112,7 @@ i {
     position: absolute;
     margin-left: 5px;
     top: 0%;
-    margin-top: 180px;
+    margin-top: 160px;
     left: 50%;
     -ms-transform: translate(-50%,-50%);
     -moz-transform: translate(-50%,-50%);

+ 0 - 1
frontend/saas-web/app/view/main/Main.js

@@ -145,7 +145,6 @@ Ext.define('saas.view.main.Main', {
                                 if(rolesMap&&rolesMap.length>0){
                                     for(var i = 0; i < rolesMap.length; i++) {
                                         if(rolesMap[i].type==0){
-                                             main.isAdmin = true;
                                              main.getController().loadInvitationMsg(1,nowCompanyId)
                                         }
                                      }

+ 35 - 15
frontend/saas-web/app/view/main/MainController.js

@@ -149,24 +149,44 @@ Ext.define('saas.view.main.MainController', {
                 }else{
                     hasInvitationMsg = false;
                 }
+                var s = me.items.items[0].down('[name=realname]')
+                if(hasInvitationMsg){
+                    s.getEl().dom.classList.add('x-header-redpoint')
+                }else{
+                    s.getEl().dom.classList.remove('x-header-redpoint')
+                }
+                if(count==1){
+                    //打开加入邀请窗口
+                    setTimeout(function() {
+                        me.getController().invitation();
+                    }, 300);
+                }
             },
             failure: function (response, opts) {}
         });
-        var s = me.items.items[0].down('[name=realname]')
-        if(hasInvitationMsg){
-            s.getEl().dom.classList.add('x-header-redpoint')
-        }else{
-            s.getEl().dom.classList.remove('x-header-redpoint')
-        }
-        if(count==1){
-            //打开加入邀请窗口
-            setTimeout(function() {
-                me.getController().invitation();
-            }, 300);
-        }
-        setTimeout(function() {
-            me.getController().loadInvitationMsg(count+1,nowCompanyId);
-        }, 8000);
+        //与后台建立连接
+        //me.getController().InvitationSocket();
+    },
+
+    InvitationSocket:function(){
+        //建立连接
+        var  wsServer = 'ws://10.1.80.23:8560/msg/invitation'; 
+        var  ws = new WebSocket(wsServer); 
+        ws.onopen = function () {
+        // 使用 send() 方法发送数据
+            ws.send("发送数据");
+            alert("数据发送中...");
+        };
+        // 接收服务端数据时触发事件
+        ws.onmessage = function (evt) {
+            var received_msg = evt.data;
+            alert("数据已接收...");
+        };
+        // 断开 web socket 连接成功触发事件
+            ws.onclose = function () {
+            alert("连接已关闭...");
+        };
+        
     },
 
     invitation:function(){