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') <= 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"] || [], }); } };