Commit ce0892c1 by fudahua

门店分组绑定校验

parent 3da7b69b
......@@ -5,6 +5,7 @@ import java.util.List;
import com.gic.api.base.commons.Page;
import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.base.api.common.ServiceResponse;
import com.gic.haoban.manage.api.dto.*;
public interface WxEnterpriseRelatedApiService {
......@@ -35,7 +36,7 @@ public interface WxEnterpriseRelatedApiService {
* @param detailDTO
* @return
*/
int wxEnterpriseBind(WxEnterpriseRelationDetailDTO detailDTO);
ServiceResponse wxEnterpriseBind(WxEnterpriseRelationDetailDTO detailDTO);
/**
* 刷新企业门店
......
......@@ -63,4 +63,13 @@ public interface TabHaobanStoreRangeMapper {
* 批量插入
*/
int insertBatch(@Param("list") List<TabStoreRange> list);
/**
* 查询关联关系
*
* @param relationIds
* @param enterpriseId
* @return
*/
List<TabStoreRange> listStoreRangeByRelationId(@Param("relationIds") List<String> relationIds, @Param("enterpriseId") String enterpriseId);
}
\ No newline at end of file
......@@ -78,5 +78,14 @@ public interface StoreRangeService {
*/
public boolean saveStoreRelations(List<TabStoreRelation> list, String optStaffId, int channelCode);
/**
* 删除分组id
*
* @param enterpriseId
* @param relationIds
* @return
*/
public List<TabStoreRange> queryStoreRangeByRelationId(String enterpriseId, List<String> relationIds);
}
......@@ -134,4 +134,9 @@ public class StoreRangeServiceImpl implements StoreRangeService {
tabHaobanStoreRelationMapper.insertBatch(list);
return true;
}
@Override
public List<TabStoreRange> queryStoreRangeByRelationId(String enterpriseId, List<String> relationIds) {
return null;
}
}
......@@ -10,6 +10,7 @@ import com.gic.commons.util.ToolUtil;
import com.gic.enterprise.api.dto.*;
import com.gic.enterprise.api.service.StoreService;
import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.base.api.common.ServiceResponse;
import com.gic.haoban.common.utils.PageUtil;
import com.gic.haoban.manage.api.dto.*;
import com.gic.haoban.manage.service.entity.*;
......@@ -175,8 +176,24 @@ public class WxEnterpriseRelatedApiServiceImpl implements WxEnterpriseRelatedApi
@Transactional(rollbackFor = Exception.class)
@Override
public int wxEnterpriseBind(WxEnterpriseRelationDetailDTO detailDTO) {
public ServiceResponse wxEnterpriseBind(WxEnterpriseRelationDetailDTO detailDTO) {
ServiceResponse<Object> resp = new ServiceResponse<>();
//校验是否分组被其它企业绑定
if (checkHasBindStoreGroup(detailDTO)) {
logger.info("部分分组被其它企业绑定了:{}", JSONObject.toJSONString(detailDTO));
resp.setCode(2);
resp.setMessage("部分分组被其它企业绑定了!");
return resp;
}
//校验关联已经企业绑定
TabHaobanWxEnterpriseRelated tab = wxEnterpriseRelatedMapper.findOneByEIdAndWxEid(detailDTO.getEnterpriseId(), detailDTO.getWxEnterpriseId());
if (tab != null && (!tab.getWxEnterpriseRelatedId().equals(detailDTO.getWxEnterpriseRelatedId()))) {
logger.info("该企业已经被绑定过");
resp.setCode(2);
resp.setMessage("改企业已经被绑定!");
return resp;
}
if (tab == null) {
logger.info("该gicEnterpriseId已经绑定过了:{}", JSONObject.toJSONString(detailDTO));
//保存企业关联关系
......@@ -206,7 +223,29 @@ public class WxEnterpriseRelatedApiServiceImpl implements WxEnterpriseRelatedApi
staffService.add(staff);
}
return 0;
return resp;
}
/**
* 校验是否包含被其它企业绑定
*
* @param detailDTO
* @return
*/
private boolean checkHasBindStoreGroup(WxEnterpriseRelationDetailDTO detailDTO) {
//判断绑定情况
List<StoreOrGroupInfoDTO> relations = detailDTO.getRelations();
List<String> needBind = relations.stream().map(dto -> dto.getRelationId()).collect(Collectors.toList());
List<TabStoreRange> storeRanges = storeRangeService.queryStoreRangeByRelationId(detailDTO.getEnterpriseId(), needBind);
if (CollectionUtils.isEmpty(storeRanges)) {
return true;
}
logger.info("绑定的部分:{},{}", detailDTO.getWxEnterpriseId(), JSONObject.toJSONString(storeRanges));
Set<TabStoreRange> mid = storeRanges.stream().filter(tab -> !tab.getWxEnterpriseId().equals(detailDTO.getWxEnterpriseId())).collect(Collectors.toSet());
if (CollectionUtils.isEmpty(mid)) {
return true;
}
return false;
}
@Override
......
......@@ -173,4 +173,17 @@
</foreach>
</insert>
<select id="listStoreRangeByRelationId" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from tab_haoban_store_range
where enterprise_id = #{enterpriseId,jdbcType=VARCHAR}
and relation_id in
<foreach collection="relationIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
and status_flag =1
</select>
</mapper>
\ No newline at end of file
......@@ -12,6 +12,7 @@ import com.gic.enterprise.api.dto.StoreSearchDTO;
import com.gic.enterprise.api.service.EnterpriseService;
import com.gic.enterprise.api.service.StoreService;
import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.base.api.common.ServiceResponse;
import com.gic.haoban.common.utils.EntityUtil;
import com.gic.haoban.common.utils.HaobanResponse;
import com.gic.haoban.manage.api.dto.*;
......@@ -175,7 +176,8 @@ public class WxEnterpriseController extends WebBaseController{
String staffName = staff.getStaffName();
WxEnterpriseRelationDetailDTO detailDTO = new WxEnterpriseRelationDetailDTO();
detailDTO.setEnterpriseId(bindQo.getEnterpriseId());
detailDTO.setWxEnterpriseRelatedId(bindQo.getWxEnterpriseRelatedId());
detailDTO.setEnterpriseId(bindQo.getEnterpriseId());
detailDTO.setWxEnterpriseId(wxEnterpriseId);
detailDTO.setStaffId(staffId);
detailDTO.setStaffName(staffName);
......@@ -183,9 +185,10 @@ public class WxEnterpriseController extends WebBaseController{
detailDTO.setWxEnterpriseType(bindQo.getWxEnterpriseType());
List<StoreOrGroupInfoDTO> storeOrGroupInfoDTOS = JSONObject.parseArray(bindQo.getRelations(), StoreOrGroupInfoDTO.class);
detailDTO.setRelations(storeOrGroupInfoDTOS);
int i = wxEnterpriseRelatedApiService.wxEnterpriseBind(detailDTO);
if(i==1){
return resultResponse(HaoBanErrCode.ERR_10006);
ServiceResponse resp = wxEnterpriseRelatedApiService.wxEnterpriseBind(detailDTO);
if (resp.getCode() != 1) {
HaoBanErrCode.ERR_DEFINE.setMsg(resp.getMessage());
return resultResponse(HaoBanErrCode.ERR_DEFINE);
}
return resultResponse(HaoBanErrCode.ERR_1);
......
......@@ -8,6 +8,7 @@ import java.io.Serializable;
* @author hua
*/
public class WxEnterpriseBindQo implements Serializable {
private String wxEnterpriseRelatedId;
private String wxEnterpriseId;
private String enterpriseId;
private String version;
......@@ -22,6 +23,14 @@ public class WxEnterpriseBindQo implements Serializable {
*/
private int wxEnterpriseType;
public String getWxEnterpriseRelatedId() {
return wxEnterpriseRelatedId;
}
public void setWxEnterpriseRelatedId(String wxEnterpriseRelatedId) {
this.wxEnterpriseRelatedId = wxEnterpriseRelatedId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment