diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysCommisionController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysCommisionController.java
index a8851e21a..9b3b58951 100644
--- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysCommisionController.java
+++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysCommisionController.java
@@ -8,6 +8,7 @@ import java.util.Map;
 import java.util.TreeMap;
 
 import com.stdiet.common.utils.DateUtils;
+import com.stdiet.common.utils.StringUtils;
 import com.stdiet.custom.domain.SysCommissionDayDetail;
 import com.stdiet.custom.domain.SysOrder;
 import com.stdiet.custom.domain.SysOrderCommisionDayDetail;
@@ -169,12 +170,45 @@ public class SysCommisionController extends BaseController {
     public TableDataInfo getDetail(SysCommision sysCommision) {
         startPage();
         if(sysCommision.getPostId() != null && sysCommision.getPostId().intValue() > 0){
-            //查询售后所有ID
-            SysCommision param = new SysCommision();
-            param.setPostId(sysCommision.getPostId());
-            List<Long> userIds = sysCommisionService.getAfterSaleId(param);
-            sysCommision.setUserIds(userIds.size() == 0 ? null : userIds);
-            sysCommision.setPostId(null);
+            String postCodeId = "";
+            switch (sysCommision.getPostId().intValue()){
+                case 5:
+                    postCodeId = "pre_sale_id";
+                    break;
+                case 18:
+                    postCodeId = "push_pre_sale_id";
+                    break;
+                case 16:
+                    postCodeId = "on_sale_id";
+                    break;
+                case 6:
+                    postCodeId = "after_sale_id";
+                    break;
+                case 9:
+                    postCodeId = "nutritionist_id";
+                    break;
+                case 10:
+                    postCodeId = "nutri_assis_id";
+                    break;
+                case 11:
+                    postCodeId = "operator_id";
+                    break;
+                case 13:
+                    postCodeId = "operator_assis_id";
+                    break;
+                case 7:
+                    postCodeId = "planner_id";
+                    break;
+                case 8:
+                    postCodeId = "planner_assis_id";
+                    break;
+                default:
+            }
+            if(StringUtils.isEmpty(postCodeId)){
+                sysCommision.setPostId(null);
+            }else{
+                sysCommision.setPostCode(postCodeId);
+            }
         }
         List<SysCommision> list = sysCommisionService.selectSysCommisionDetail(sysCommision);
         for (SysCommision detail : list) {
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysCommision.java b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysCommision.java
index d7177a226..4e4a6420e 100644
--- a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysCommision.java
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysCommision.java
@@ -38,6 +38,11 @@ public class SysCommision extends BaseEntity {
      */
     private Long postId;
 
+    /**
+     * 岗位编码code
+     */
+    private String postCode;
+
     /**
      * 业务员
      */
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysWxUserInfoMapper.java b/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysWxUserInfoMapper.java
index 724fa532a..b6fabe165 100644
--- a/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysWxUserInfoMapper.java
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysWxUserInfoMapper.java
@@ -70,4 +70,11 @@ public interface SysWxUserInfoMapper
      * @return
      */
     public SysWxUserInfo getSysWxUserInfoByPhone(@Param("phone")String phone);
+
+    /**
+     * 根据openid移除对应绑定的cusId
+     * @param openid
+     * @return
+     */
+    public int removeCusIdByOpenId(@Param("openid")String openid);
 }
\ No newline at end of file
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysWxUserInfoService.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysWxUserInfoService.java
index f009113f0..143094af7 100644
--- a/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysWxUserInfoService.java
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysWxUserInfoService.java
@@ -70,5 +70,12 @@ public interface ISysWxUserInfoService
      */
     public SysWxUserInfo getSysWxUserInfoByPhone(String phone);
 
+    /**
+     * 根据openid移除对应绑定的cusId
+     * @param openid
+     * @return
+     */
+    public int removeCusIdByOpenId(String openid);
+
 
 }
\ No newline at end of file
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysCustomerServiceImpl.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysCustomerServiceImpl.java
index 3bc9a37d9..31d881c9d 100644
--- a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysCustomerServiceImpl.java
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysCustomerServiceImpl.java
@@ -198,11 +198,33 @@ public class SysCustomerServiceImpl implements ISysCustomerService {
         if(newCustomer == null || newCustomer.getId() == null || StringUtils.isEmpty(newCustomer.getPhone())){
             return;
         }
+        //先根据cusId查询是否已经绑定过微信用户
+        SysWxUserInfo cusIdWxUserInfo = sysWxUserInfoService.selectSysWxUserInfoByCusId(newCustomer.getId());
         //根据手机号查询微信用户记录
-        SysWxUserInfo wxUserInfo = sysWxUserInfoService.getSysWxUserInfoByPhone(newCustomer.getPhone());
-        if(wxUserInfo != null && (wxUserInfo.getCusId() == null || wxUserInfo.getCusId().longValue() != newCustomer.getId())){
-            wxUserInfo.setCusId(newCustomer.getId());
-            sysWxUserInfoService.updateSysWxUserInfo(wxUserInfo);
+        SysWxUserInfo phoneWxUserInfo = sysWxUserInfoService.getSysWxUserInfoByPhone(newCustomer.getPhone());
+        if(cusIdWxUserInfo != null) {
+            if(phoneWxUserInfo != null){
+                if(!cusIdWxUserInfo.getOpenid().equals(phoneWxUserInfo.getOpenid())){
+                    //解绑之前记录
+                    sysWxUserInfoService.removeCusIdByOpenId(cusIdWxUserInfo.getOpenid());
+                    //更新
+                    SysWxUserInfo param = new SysWxUserInfo();
+                    param.setOpenid(phoneWxUserInfo.getOpenid());
+                    param.setCusId(newCustomer.getId());
+                    sysWxUserInfoService.updateSysWxUserInfo(param);
+                }
+            }else{
+                //解绑之前记录
+                sysWxUserInfoService.removeCusIdByOpenId(cusIdWxUserInfo.getOpenid());
+            }
+        }else{
+            if(phoneWxUserInfo != null){
+                //更新
+                SysWxUserInfo param = new SysWxUserInfo();
+                param.setOpenid(phoneWxUserInfo.getOpenid());
+                param.setCusId(newCustomer.getId());
+                sysWxUserInfoService.updateSysWxUserInfo(param);
+            }
         }
     }
 }
\ No newline at end of file
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysWxUserInfoServiceImpl.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysWxUserInfoServiceImpl.java
index bef991ad0..acae1d1d6 100644
--- a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysWxUserInfoServiceImpl.java
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysWxUserInfoServiceImpl.java
@@ -106,4 +106,13 @@ public class SysWxUserInfoServiceImpl implements ISysWxUserInfoService {
     public SysWxUserInfo getSysWxUserInfoByPhone(String phone){
         return sysWxUserInfoMapper.getSysWxUserInfoByPhone(phone);
     }
+
+    /**
+     * 根据openid移除对应绑定的cusId
+     * @param openid
+     * @return
+     */
+    public int removeCusIdByOpenId(String openid){
+        return sysWxUserInfoMapper.removeCusIdByOpenId(openid);
+    }
 }
\ No newline at end of file
diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysCommisionMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysCommisionMapper.xml
index 5ae329ab6..ac42f0f58 100644
--- a/stdiet-custom/src/main/resources/mapper/custom/SysCommisionMapper.xml
+++ b/stdiet-custom/src/main/resources/mapper/custom/SysCommisionMapper.xml
@@ -42,12 +42,17 @@
         <if test="endTime != null and endTime != ''">AND date_format(order_time,'%y%m%d') &lt;=
             date_format(${endTime},'%y%m%d')
         </if>
+        <!-- 因为体验单、售中单都存在售中,所以售中的提成金额只计算售中单的,不计算体验单 -->
+        <if test="postCode != null and postCode == 'on_sale_id'">
+            and order_type = 3
+        </if>
         GROUP BY ${column}
     </sql>
 
     <select id="selectSysCommisionDetail" parameterType="SysCommision" resultMap="SysCommisionResult">
         SELECT * FROM view_user_post pa
         JOIN (
+        <if test="postId == null or postId == 0">
         <include refid="groupAmountVo">
             <property name="column" value="pre_sale_id"/>
             <property name="reviewStatus" value="#{reviewStatus}"/>
@@ -56,6 +61,22 @@
             <property name="postId" value="5"/>
         </include>
         UNION
+        <include refid="groupAmountVo">
+            <property name="column" value="push_pre_sale_id"/>
+            <property name="reviewStatus" value="#{reviewStatus}"/>
+            <property name="beginTime" value="#{beginTime}"/>
+            <property name="endTime" value="#{endTime}"/>
+            <property name="postId" value="18"/>
+        </include>
+        UNION
+        <include refid="groupAmountVo">
+            <property name="column" value="on_sale_id"/>
+            <property name="reviewStatus" value="#{reviewStatus}"/>
+            <property name="beginTime" value="#{beginTime}"/>
+            <property name="endTime" value="#{endTime}"/>
+            <property name="postId" value="16"/>
+        </include>
+        UNION
         <include refid="groupAmountVo">
             <property name="column" value="after_sale_id"/>
             <property name="reviewStatus" value="#{reviewStatus}"/>
@@ -111,9 +132,19 @@
             <property name="endTime" value="#{endTime}"/>
             <property name="postId" value="8"/>
         </include>
+        </if>
+        <if test="postId != null and postId > 0">
+            <include refid="groupAmountVo">
+                <property name="column" value="${postCode}"/>
+                <property name="reviewStatus" value="#{reviewStatus}"/>
+                <property name="beginTime" value="#{beginTime}"/>
+                <property name="endTime" value="#{endTime}"/>
+                <property name="postId" value="${postId}"/>
+            </include>
+        </if>
         ) AS a USING(user_id, post_id)
         <where>
-            <if test="postId != null and postId != ''">and post_id = #{postId}</if>
+            <!--<if test="postId != null and postId != ''">and post_id = #{postId}</if>-->
             <if test="userId != null and userId != ''">and user_id = #{userId}</if>
             <if test="userIds != null">
                 and user_id in
@@ -122,6 +153,7 @@
                 </foreach>
             </if>
         </where>
+        order by user_id asc
     </select>
 
     <sql id="selectSysCommisionVo">
diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysWxUserInfoMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysWxUserInfoMapper.xml
index 795a64be2..98f22abb5 100644
--- a/stdiet-custom/src/main/resources/mapper/custom/SysWxUserInfoMapper.xml
+++ b/stdiet-custom/src/main/resources/mapper/custom/SysWxUserInfoMapper.xml
@@ -135,4 +135,9 @@
         where phone = #{phone} order by create_time desc limit 1
     </select>
 
+    <!-- 根据openid移除绑定的cusId -->
+    <update id="removeCusIdByOpenId" parameterType="String">
+        update sys_wx_user_info set cus_id = null where openid = #{openid}
+    </update>
+
 </mapper>
\ No newline at end of file
diff --git a/stdiet-ui/src/components/OrderAdd/index.vue b/stdiet-ui/src/components/OrderAdd/index.vue
index b2364e34a..9b5b82ec2 100644
--- a/stdiet-ui/src/components/OrderAdd/index.vue
+++ b/stdiet-ui/src/components/OrderAdd/index.vue
@@ -129,7 +129,7 @@
             <el-select v-model="form.pushPreSaleId" placeholder="请选择" filterable
               clearable>
               <el-option
-                v-for="dict in preSaleIdOptions"
+                v-for="dict in pushPreSaleIdOptions"
                 :key="dict.dictValue"
                 :label="dict.dictLabel"
                 :value="parseInt(dict.dictValue)"
@@ -536,6 +536,8 @@ export default {
       "operatorIdOptions",
       // 运营助理字典
       "operatorAssisIdOptions",
+      //售前推送
+      "pushPreSaleIdOptions"
     ]),
   },
   methods: {
diff --git a/stdiet-ui/src/components/OrderEdit/index.vue b/stdiet-ui/src/components/OrderEdit/index.vue
index b55192e17..706f09328 100644
--- a/stdiet-ui/src/components/OrderEdit/index.vue
+++ b/stdiet-ui/src/components/OrderEdit/index.vue
@@ -107,7 +107,7 @@
           <el-form-item label="售前推送" prop="preSaleId">
             <el-select v-model="form.pushPreSaleId" placeholder="请选择">
               <el-option
-                v-for="dict in preSaleIdOptions"
+                v-for="dict in pushPreSaleIdOptions"
                 :key="dict.dictValue"
                 :label="dict.dictLabel"
                 :value="parseInt(dict.dictValue)"
@@ -465,6 +465,8 @@ export default {
       "operatorIdOptions",
       // 运营助理字典
       "operatorAssisIdOptions",
+      //售前推送
+      "pushPreSaleIdOptions"
     ]),
   },
   methods: {
diff --git a/stdiet-ui/src/store/getters.js b/stdiet-ui/src/store/getters.js
index ccedcde6d..6275ba5fd 100644
--- a/stdiet-ui/src/store/getters.js
+++ b/stdiet-ui/src/store/getters.js
@@ -24,6 +24,7 @@ const getters = {
   plannerIdOptions: state => state.global.plannerIdOptions,
   plannerAssisIdOptions: state => state.global.plannerAssisIdOptions,
   operatorIdOptions: state => state.global.operatorIdOptions,
-  operatorAssisIdOptions: state => state.global.operatorAssisIdOptions
+  operatorAssisIdOptions: state => state.global.operatorAssisIdOptions,
+  pushPreSaleIdOptions: state => state.global.pushPreSaleIdOptions
 };
 export default getters;
diff --git a/stdiet-ui/src/store/modules/global.js b/stdiet-ui/src/store/modules/global.js
index 989310a29..4a12879c4 100644
--- a/stdiet-ui/src/store/modules/global.js
+++ b/stdiet-ui/src/store/modules/global.js
@@ -9,7 +9,8 @@ const oriState = {
   plannerIdOptions: [],
   plannerAssisIdOptions: [],
   operatorIdOptions: [],
-  operatorAssisIdOptions: []
+  operatorAssisIdOptions: [],
+  pushPreSaleIdOptions:[]
 };
 
 const mutations = {
@@ -47,7 +48,8 @@ const actions = {
       plannerIdOptions: options["planner"] || [],
       plannerAssisIdOptions: options["planner_assis"] || [],
       operatorIdOptions: options["operator"] || [],
-      operatorAssisIdOptions: options["operator_assis"] || []
+      operatorAssisIdOptions: options["operator_assis"] || [],
+      pushPreSaleIdOptions: options["push_pre_sale"] || [],
     });
   }
 };