售中提成计算,售前推送提成计算,优化修改客户手机号时更改绑定对应的微信用户逻辑
This commit is contained in:
		| @@ -38,6 +38,11 @@ public class SysCommision extends BaseEntity { | ||||
|      */ | ||||
|     private Long postId; | ||||
|  | ||||
|     /** | ||||
|      * 岗位编码code | ||||
|      */ | ||||
|     private String postCode; | ||||
|  | ||||
|     /** | ||||
|      * 业务员 | ||||
|      */ | ||||
|   | ||||
| @@ -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); | ||||
| } | ||||
| @@ -70,5 +70,12 @@ public interface ISysWxUserInfoService | ||||
|      */ | ||||
|     public SysWxUserInfo getSysWxUserInfoByPhone(String phone); | ||||
|  | ||||
|     /** | ||||
|      * 根据openid移除对应绑定的cusId | ||||
|      * @param openid | ||||
|      * @return | ||||
|      */ | ||||
|     public int removeCusIdByOpenId(String openid); | ||||
|  | ||||
|  | ||||
| } | ||||
| @@ -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); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -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); | ||||
|     } | ||||
| } | ||||
| @@ -42,12 +42,17 @@ | ||||
|         <if test="endTime != null and endTime != ''">AND date_format(order_time,'%y%m%d') <= | ||||
|             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"> | ||||
|   | ||||
| @@ -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> | ||||
		Reference in New Issue
	
	Block a user