好友接口回调

master
Caps 6 years ago
parent 078329d55f
commit 3fd4bb1b37

@ -1,8 +1,11 @@
package com.kiisoo.ic.customer;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.kiisoo.ic.common.utils.httpClientUtil.HttpClientUtil;
import com.kiisoo.ic.constants.Constants;
import com.kiisoo.ic.customer.bean.CustomerDTO;
import com.kiisoo.ic.customer.bean.CustomerModifyDTO;
@ -21,12 +24,15 @@ import com.kiisoo.ic.store.entity.PoiStoreStaff;
import com.kiisoo.ic.store.mapper.PoiStoreDOMapper;
import com.kiisoo.ic.store.mapper.PoiStoreStaffDOMapper;
import com.kiisoo.ic.store.service.PoiStoreService;
import com.kiisoo.ic.synchronous.entity.TurnBackDTO;
import com.kiisoo.ic.synchronous.entity.VipDataDTO;
import com.kiisoo.ic.system.enums.RoleEnum;
import com.kiisoo.ic.webappmy.vo.StafferInfoVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
@ -68,6 +74,11 @@ public class CustomerService {
this.poiStoreStaffDOMapper = poiStoreStaffDOMapper;
}
/**
* token
*/
private final static String TOKEN = "BOSIDENG";
/**
*
* @param customerDTO
@ -130,6 +141,131 @@ public class CustomerService {
opCustomerDOMapper.update(opCustomer,wrapper1);
}
/**
*
* @param turnBackDTOS
* @return
*/
@Transactional(rollbackFor = Exception.class)
public void turnBack(TurnBackDTO turnBackDTOS){
//客户信息
QueryWrapper<OpCustomer> customerWrapper = new QueryWrapper<>();
customerWrapper.eq("wechat_uni_id",turnBackDTOS.getWx_data().getUnit_id()).last("limit 1");
OpCustomer opCustomer = opCustomerDOMapper.selectOne(customerWrapper);
//店铺信息
QueryWrapper<PoiStore> poiWrapper = new QueryWrapper<>();
poiWrapper.eq("code",turnBackDTOS.getShop_code()).last("limit 1");
PoiStore poiStore = poiStoreDOMapper.selectOne(poiWrapper);
//导购信息
QueryWrapper<PoiStoreStaff> wrapper = new QueryWrapper<>();
wrapper.eq("staff_code",turnBackDTOS.getEa_code()).eq("store_code",turnBackDTOS.getShop_code()).last("limit 1");
PoiStoreStaff poiStoreStaff = poiStoreStaffDOMapper.selectOne(wrapper);
if(poiStoreStaff == null || poiStore == null){
return;
}
//做插入使用 --如果没有客户信息就先创建客户信息如果有就判断是否有客户导购得关系,如果没有就添加有就不管
OpCustomer insertCustomer = new OpCustomer();
insertCustomer.setWechatUniId(turnBackDTOS.getWx_data().getUnit_id());
insertCustomer.setName(turnBackDTOS.getName());
if(null != opCustomer){
//存在--1.处理客户导购关系。
sellerCustomerRelation(opCustomer,turnBackDTOS.getEa_code(),poiStore.getId(),poiStoreStaff.getUserId());
}else {
insertCustomer.setCreateBy(Constants.SYS_OPERATION);
//不存在
opCustomerDOMapper.insert(insertCustomer);
//添加关系
sellerCustomerRelation(insertCustomer,turnBackDTOS.getEa_code(),poiStore.getId(),poiStoreStaff.getUserId());
}
//处理客户vip的关系
if(turnBackDTOS.getVip_data() != null){
//有vip数据就不需要重新请求bsd的vip接口
vipCheck(turnBackDTOS);
//查询是否有这个vip如果有就绑定关系如果没有就先添加vip然后再绑定关系
}else {
//需要请求bsd的vip接口获取vip数据
JSONObject jsonObject2 = JSON.parseObject(HttpClientUtil.httpGet("http://vtest.bsd.cn/BSD_WXAPP/miniProgram/getMemberDtlByUnionId?token=" + TOKEN + "&unionId=" + turnBackDTOS.getWx_data().getUnit_id()).getMessage());
VipDataDTO vipDataDTO = new VipDataDTO();
vipDataDTO.setBirthday(jsonObject2.getDate("birthday"));
vipDataDTO.setName(jsonObject2.getString("memberName"));
vipDataDTO.setPhone(jsonObject2.getString("mobileNo"));
vipDataDTO.setRegister_time(String.valueOf(LocalDate.now()));
vipData(vipDataDTO,turnBackDTOS.getWx_data().getUnit_id());
}
}
/**
*
* @param vipDataDTO
*/
private void vipData(VipDataDTO vipDataDTO, String unionId){
OpCustomer opCustomer = new OpCustomer(vipDataDTO.getName(),vipDataDTO.getPhone());
opCustomer.setUpdateBy(Constants.SYS_OPERATION);
QueryWrapper<OpVip> wrapper = new QueryWrapper<>();
wrapper.eq("phone",vipDataDTO.getPhone()).eq("name",vipDataDTO.getName());
OpVip opVip = opVipDOMapper.selectOne(wrapper);
if(opVip == null){
//数据库没有这个数据--新建数据
OpVip opVip1 = new OpVip();
opVip1.setStatus(1L);
opVip1.setPhone(vipDataDTO.getPhone());
opVip1.setName(vipDataDTO.getName());
opVip1.setBirthday(vipDataDTO.getBirthday());
opVip1.setRegisterTime(new Date(vipDataDTO.getRegister_time()));
opVip1.setCreateTime(new Date());
opVip1.setUpdateTime(new Date());
opVip1.setCreateBy(Constants.SYS_OPERATION);
opVip1.setUpdateBy(Constants.SYS_OPERATION);
opVipDOMapper.insert(opVip1);
//有vip信息就绑定信息
opCustomer.setMemberId(opVip1.getId());
}else {
//有vip信息就绑定信息
opCustomer.setMemberId(opVip.getId());
}
QueryWrapper<OpCustomer> wrapper1 = new QueryWrapper<>();
wrapper1.eq("wechat_uni_id",unionId);
opCustomerDOMapper.update(opCustomer,wrapper1);
}
/**
* vip
* @param turnBackDTO vip
*/
private void vipCheck(TurnBackDTO turnBackDTO){
OpCustomer opCustomer = new OpCustomer(turnBackDTO.getName(),turnBackDTO.getPhone());
opCustomer.setUpdateBy(Constants.SYS_OPERATION);
QueryWrapper<OpVip> wrapper = new QueryWrapper<>();
wrapper.eq("phone",turnBackDTO.getVip_data().getPhone()).eq("name",turnBackDTO.getVip_data().getName());
OpVip opVip = opVipDOMapper.selectOne(wrapper);
if(opVip == null){
//数据库没有这个数据--新建数据
OpVip opVip1 = new OpVip();
opVip1.setStatus(1L);
opVip1.setPhone(turnBackDTO.getVip_data().getPhone());
opVip1.setName(turnBackDTO.getVip_data().getName());
opVip1.setBirthday(turnBackDTO.getVip_data().getBirthday());
opVip1.setRegisterTime(new Date(turnBackDTO.getVip_data().getRegister_time()));
opVip1.setCreateTime(new Date());
opVip1.setUpdateTime(new Date());
opVip1.setCreateBy(Constants.SYS_OPERATION);
opVip1.setUpdateBy(Constants.SYS_OPERATION);
opVipDOMapper.insert(opVip1);
//有vip信息就绑定信息
opCustomer.setMemberId(opVip1.getId());
}else {
//有vip信息就绑定信息
opCustomer.setMemberId(opVip.getId());
}
QueryWrapper<OpCustomer> wrapper1 = new QueryWrapper<>();
wrapper1.eq("wechat_uni_id",turnBackDTO.getWx_data().getUnit_id());
opCustomerDOMapper.update(opCustomer,wrapper1);
}
/**
*
* @param opCustomer
@ -276,4 +412,5 @@ public class CustomerService {
}
return results;
}
}

@ -1,8 +1,11 @@
package com.kiisoo.ic.synchronous.controller;
import com.kiisoo.ic.customer.CustomerService;
import com.kiisoo.ic.store.entity.PoiStore;
import com.kiisoo.ic.synchronous.entity.TurnBackDTO;
import com.kiisoo.ic.utils.DataImportUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@ -20,6 +23,13 @@ import java.util.List;
@Slf4j
public class SynchronousController {
private final CustomerService customerService;
@Autowired
public SynchronousController(CustomerService customerService) {
this.customerService = customerService;
}
/**
*
* @return
@ -49,4 +59,15 @@ public class SynchronousController {
public String addSeller(@RequestBody List<PoiStore> PoiStores){
return DataImportUtil.succ(1);
}
/**
*
* @return
*/
@RequestMapping(value = "/ics/customer",method = RequestMethod.POST)
@ResponseBody
public String turnBack(@RequestBody TurnBackDTO turnBackDTOS){
customerService.turnBack(turnBackDTOS);
return DataImportUtil.succ(1);
}
}

@ -0,0 +1,117 @@
package com.kiisoo.ic.synchronous.entity;
import java.util.Date;
/**
* @ClassName: TurnBackDTO
* @Description:
* @Auther: Caps
* @Date: 2020/4/23 0023 10:08
* @Version:
*/
public class TurnBackDTO {
/**
* code
*/
private String shop_code;
/**
* 广
*/
private String ea_code;
/**
* 广 1广 2广
*/
private int type;
/**
*
*/
private String name;
/**
*
*/
private String phone;
/**
*
*/
private Date join_time;
/**
* id
*/
private WxDataDTO wx_data;
/**
*
*/
private VipDataDTO vip_data;
public String getShop_code() {
return shop_code;
}
public void setShop_code(String shop_code) {
this.shop_code = shop_code;
}
public String getEa_code() {
return ea_code;
}
public void setEa_code(String ea_code) {
this.ea_code = ea_code;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public Date getJoin_time() {
return join_time;
}
public void setJoin_time(Date join_time) {
this.join_time = join_time;
}
public WxDataDTO getWx_data() {
return wx_data;
}
public void setWx_data(WxDataDTO wx_data) {
this.wx_data = wx_data;
}
public VipDataDTO getVip_data() {
return vip_data;
}
public void setVip_data(VipDataDTO vip_data) {
this.vip_data = vip_data;
}
}

@ -0,0 +1,91 @@
package com.kiisoo.ic.synchronous.entity;
import java.util.Date;
/**
* @ClassName: VipDataDTO
* @Description:
* @Auther: Caps
* @Date: 2020/4/23 0023 10:11
* @Version:
*/
public class VipDataDTO {
/**
*
*/
private String name;
/**
*
*/
private String phone;
/**
*
*/
private Date birthday;
/**
* 12 0
*/
private int sex;
/**
*
*/
private String level;
/**
*
*/
private String register_time;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public String getLevel() {
return level;
}
public void setLevel(String level) {
this.level = level;
}
public String getRegister_time() {
return register_time;
}
public void setRegister_time(String register_time) {
this.register_time = register_time;
}
}

@ -0,0 +1,50 @@
package com.kiisoo.ic.synchronous.entity;
/**
* @ClassName: WxDataDTO
* @Description:
* @Auther: Caps
* @Date: 2020/4/23 0023 10:10
* @Version:
*/
public class WxDataDTO {
/**
* unit_id
*/
private String unit_id;
/**
* open_id
*/
private String open_id;
/**
* user_id
*/
private String user_id;
public String getUnit_id() {
return unit_id;
}
public void setUnit_id(String unit_id) {
this.unit_id = unit_id;
}
public String getOpen_id() {
return open_id;
}
public void setOpen_id(String open_id) {
this.open_id = open_id;
}
public String getUser_id() {
return user_id;
}
public void setUser_id(String user_id) {
this.user_id = user_id;
}
}
Loading…
Cancel
Save