Explorar el Código

[B端会员信息][添加][业务逻辑]

release_toaliyun_real
gongbiao hace 7 años
padre
commit
af89052c4c
Se han modificado 9 ficheros con 143 adiciones y 117 borrados
  1. +97
    -105
      mallinkBApi/src/main/java/com/iformall/controller/WxCUserController.java
  2. +10
    -0
      mallinkService/src/main/java/com/iformall/domain/dto/WxCUserFromBDto.java
  3. +12
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxCUserFromB.java
  4. +3
    -3
      mallinkService/src/main/java/com/iformall/mapper/WxCUserFromBMapper.java
  5. +2
    -1
      mallinkService/src/main/java/com/iformall/service/WxCUserFromBService.java
  6. +3
    -2
      mallinkService/src/main/java/com/iformall/service/impl/WxCUserFromBServiceImpl.java
  7. +9
    -3
      mallinkService/src/main/resources/mapper/WxCUserFromBMapper.xml
  8. +6
    -2
      mallinkService/src/main/resources/mapper/WxOrderMapper.xml
  9. +1
    -1
      mallinkService/src/main/resources/mapper/WxProfitSharingOrderMapper.xml

+ 97
- 105
mallinkBApi/src/main/java/com/iformall/controller/WxCUserController.java Ver fichero

@@ -3,6 +3,7 @@ package com.iformall.controller;
import com.alibaba.fastjson.JSONObject;
import com.iformall.common.ErrorCode;
import com.iformall.common.IdWorker;
import com.iformall.common.Result;
import com.iformall.common.ResultData;
import com.iformall.domain.dto.WxCUserFromBDto;
import com.iformall.domain.po.WxCUser;
@@ -57,133 +58,120 @@ public class WxCUserController extends BaseController {

/**
* 会员更新信息
*
* @return
*/
@PostMapping("/updateUserInfo")
@ApiOperation(value = "用户更新信息", notes="")
@ApiOperation(value = "用户更新信息", notes = "")
public ResultData updateUserInfo(@RequestBody WxCUserFromBDto wxCUserFromBDto) {
logger.info("WxCUserController::updateUserInfo");
if (wxCUserFromBDto == null){
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL,"没有传入用户信息");
if (wxCUserFromBDto == null) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL, "没有传入用户信息");
}
if (StringUtils.isEmpty(wxCUserFromBDto.getOpenid())){
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL,"C端openid不能为空");
if (StringUtils.isEmpty(wxCUserFromBDto.getOpenid())) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL, "C端openid不能为空");
}
if (wxCUserFromBDto.getbUserId()==null){
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL,"bUserId不能为空");
if (StringUtils.isEmpty(wxCUserFromBDto.getAppId())) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL, "C端appId不能为空");
}
if (wxCUserFromBDto.getbUserId() == null) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL, "bUserId不能为空");
}
//根据bUserId查询B端用户是否存在
WxMerchantBUser bUser = wxMerchantBUserService.getById(wxCUserFromBDto.getbUserId());
if(bUser==null){
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL,"B端用户不存在");
if (bUser == null) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL, "B端用户不存在");
}
final IdWorker idWorker = IdWorker.get();

WxCUserFromB wxCUserFromB = wxCUserFromBService.getByOpenid(wxCUserFromBDto.getOpenid());
if(wxCUserFromB==null){
//查询C端微信信息
WxCUser wxCUser = new WxCUser();
wxCUser.setOpenId(wxCUserFromBDto.getOpenid());
wxCUser = wxCUserService.getByOpenId(wxCUser);
//不存在时
if(wxCUser==null){
WxCUserFromB wxCUserFromB = wxCUserFromBService.getByOpenidAndAppId(wxCUserFromBDto);
//查询C端微信信息
WxCUser wxCUser = new WxCUser();
wxCUser.setAppId(wxCUserFromBDto.getAppId());
wxCUser.setOpenId(wxCUserFromBDto.getOpenid());
wxCUser = wxCUserService.getByOpenId(wxCUser);
if (wxCUserFromB == null) {
String phone = wxCUser.getPhone();
String tenantId = wxCUser.getTenantId();
//查询会员信息
List<WxCUserBasicInfo> byPhone = wxCUserBasicInfoService.findByPhone(tenantId, phone);
//存在会员信息
if (!byPhone.isEmpty()) {
//更新会员信息
WxCUserBasicInfo wxCUserBasicInfo = byPhone.get(0);
if (!StringUtils.isEmpty(wxCUserFromBDto.getName())) {
wxCUserBasicInfo.setName(wxCUserFromBDto.getName());
}
if (wxCUserFromBDto != null) {
wxCUserBasicInfo.setBirthdate(wxCUserFromBDto.getBirthdate());
}
if (wxCUserFromBDto.getSex() != null) {
wxCUserBasicInfo.setSex(wxCUserFromBDto.getSex());
}
if (!StringUtils.isEmpty(wxCUserFromBDto.getAddress())) {
wxCUserBasicInfo.setAddress(wxCUserFromBDto.getAddress());
}
wxCUserBasicInfo.setPhone(wxCUser.getPhone());
wxCUserBasicInfo.setUpdateDate(new Date());
wxCUserBasicInfoService.update(wxCUserBasicInfo);
wxScoreRulesService.addScore(EnumScoreType.COMPLETE_INFO, wxCUserBasicInfo);
wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT, wxCUserBasicInfo);
//新增来自B端的会员关联数据
wxCUserFromB = new WxCUserFromB();
wxCUserFromB.setbUserId(wxCUserFromBDto.getbUserId());
wxCUserFromB.setcUserId(wxCUserBasicInfo.getId());
wxCUserFromB.setOpenid(wxCUserFromBDto.getOpenid());
wxCUserFromB.setMerchantId(bUser.getMerchantId());
wxCUserFromB.setTenantId(bUser.getTenantId());
wxCUserFromB.setAppId(wxCUserFromBDto.getAppId());
wxCUserFromB.setInfo(JSONObject.toJSONString(wxCUserBasicInfo));
wxCUserFromBService.saveOrUpdate(wxCUserFromB);
} else {
//新增来自B端的会员
long cUserId = idWorker.nextId();
WxCUserBasicInfo wxCUserBasicInfo = new WxCUserBasicInfo();
wxCUserBasicInfo.setId(cUserId);
wxCUserBasicInfo.setName(wxCUserFromBDto.getName());
wxCUserBasicInfo.setBirthdate(wxCUserFromBDto.getBirthdate());
wxCUserBasicInfo.setSex(wxCUserFromBDto.getSex() );
wxCUserBasicInfo.setAddress(wxCUserFromBDto.getAddress());
wxCUserBasicInfo.setPhone(wxCUserFromBDto.getPhone());
wxCUserBasicInfo.setUpdateDate(new Date());
wxCUserBasicInfoService.save(wxCUserBasicInfo);
//新增来自B端的会员关联数据
WxCUserFromB record = new WxCUserFromB();
record.setbUserId(wxCUserFromBDto.getbUserId());
record.setcUserId(cUserId);
record.setOpenid(wxCUserFromBDto.getOpenid());
record.setMerchantId(bUser.getMerchantId());
record.setTenantId(bUser.getTenantId());
record.setInfo(JSONObject.toJSONString(wxCUserBasicInfo));
wxCUserFromBService.saveOrUpdate(record);
}else{
String phone = wxCUser.getPhone();
String tenantId = wxCUser.getTenantId();
//查询会员信息
List<WxCUserBasicInfo> byPhone = wxCUserBasicInfoService.findByPhone(tenantId, phone);
//存在会员信息
if(!byPhone.isEmpty()){
//更新会员信息
WxCUserBasicInfo wxCUserBasicInfo = byPhone.get(0);
if(!StringUtils.isEmpty(wxCUserFromBDto.getName())){
wxCUserBasicInfo.setName(wxCUserFromBDto.getName());
}
if(wxCUserFromBDto!=null){
wxCUserBasicInfo.setBirthdate(wxCUserFromBDto.getBirthdate());
}
if(wxCUserFromBDto.getSex()!=null){
wxCUserBasicInfo.setSex(wxCUserFromBDto.getSex() );
}
if(!StringUtils.isEmpty(wxCUserFromBDto.getAddress())){
wxCUserBasicInfo.setAddress(wxCUserFromBDto.getAddress());
}
if(!StringUtils.isEmpty(wxCUserFromBDto.getPhone())){
wxCUserBasicInfo.setPhone(wxCUserFromBDto.getPhone());
}
wxCUserBasicInfo.setUpdateDate(new Date());
wxCUserBasicInfoService.update(wxCUserBasicInfo);
wxScoreRulesService.addScore(EnumScoreType.COMPLETE_INFO, wxCUserBasicInfo);
wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT, wxCUserBasicInfo);
//新增来自B端的会员关联数据
wxCUserFromB = new WxCUserFromB();
wxCUserFromB.setbUserId(wxCUserFromBDto.getbUserId());
wxCUserFromB.setcUserId(wxCUserBasicInfo.getId());
wxCUserFromB.setOpenid(wxCUserFromBDto.getOpenid());
wxCUserFromB.setMerchantId(bUser.getMerchantId());
wxCUserFromB.setTenantId(bUser.getTenantId());
wxCUserFromB.setInfo(JSONObject.toJSONString(wxCUserBasicInfo));
wxCUserFromBService.saveOrUpdate(wxCUserFromB);
}else{
//新增来自B端的会员
long cUserId = idWorker.nextId();
WxCUserBasicInfo wxCUserBasicInfo = new WxCUserBasicInfo();
wxCUserBasicInfo.setId(cUserId);
if (!StringUtils.isEmpty(wxCUserFromBDto.getName())) {
wxCUserBasicInfo.setName(wxCUserFromBDto.getName());
}
if (wxCUserFromBDto != null) {
wxCUserBasicInfo.setBirthdate(wxCUserFromBDto.getBirthdate());
wxCUserBasicInfo.setSex(wxCUserFromBDto.getSex() );
}
if (wxCUserFromBDto.getSex() != null) {
wxCUserBasicInfo.setSex(wxCUserFromBDto.getSex());
}
if (!StringUtils.isEmpty(wxCUserFromBDto.getAddress())) {
wxCUserBasicInfo.setAddress(wxCUserFromBDto.getAddress());
wxCUserBasicInfo.setPhone(wxCUserFromBDto.getPhone());
wxCUserBasicInfo.setUpdateDate(new Date());
wxCUserBasicInfoService.save(wxCUserBasicInfo);
//新增来自B端的会员关联数据
WxCUserFromB record = new WxCUserFromB();
record.setbUserId(wxCUserFromBDto.getbUserId());
record.setcUserId(cUserId);
record.setOpenid(wxCUserFromBDto.getOpenid());
record.setMerchantId(bUser.getMerchantId());
record.setTenantId(bUser.getTenantId());
record.setInfo(JSONObject.toJSONString(wxCUserBasicInfo));
wxCUserFromBService.saveOrUpdate(record);
}
wxCUserBasicInfo.setPhone(wxCUser.getPhone());
wxCUserBasicInfo.setUpdateDate(new Date());
wxCUserBasicInfoService.save(wxCUserBasicInfo);
//新增来自B端的会员关联数据
wxCUserFromB = new WxCUserFromB();
wxCUserFromB.setbUserId(wxCUserFromBDto.getbUserId());
wxCUserFromB.setcUserId(cUserId);
wxCUserFromB.setOpenid(wxCUserFromBDto.getOpenid());
wxCUserFromB.setMerchantId(bUser.getMerchantId());
wxCUserFromB.setTenantId(bUser.getTenantId());
wxCUserFromB.setAppId(wxCUserFromBDto.getAppId());
wxCUserFromB.setInfo(JSONObject.toJSONString(wxCUserBasicInfo));
wxCUserFromBService.saveOrUpdate(wxCUserFromB);
}
}else{
} else {
WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoService.getById(wxCUserFromB.getcUserId());
if(!StringUtils.isEmpty(wxCUserFromBDto.getName())){
if (!StringUtils.isEmpty(wxCUserFromBDto.getName())) {
wxCUserBasicInfo.setName(wxCUserFromBDto.getName());
}
if(wxCUserFromBDto!=null){
if (wxCUserFromBDto != null) {
wxCUserBasicInfo.setBirthdate(wxCUserFromBDto.getBirthdate());
}
if(wxCUserFromBDto.getSex()!=null){
wxCUserBasicInfo.setSex(wxCUserFromBDto.getSex() );
if (wxCUserFromBDto.getSex() != null) {
wxCUserBasicInfo.setSex(wxCUserFromBDto.getSex());
}
if(!StringUtils.isEmpty(wxCUserFromBDto.getAddress())){
if (!StringUtils.isEmpty(wxCUserFromBDto.getAddress())) {
wxCUserBasicInfo.setAddress(wxCUserFromBDto.getAddress());
}
if(!StringUtils.isEmpty(wxCUserFromBDto.getPhone())){
wxCUserBasicInfo.setPhone(wxCUserFromBDto.getPhone());
}
wxCUserBasicInfo.setPhone(wxCUser.getPhone());
wxCUserBasicInfoService.update(wxCUserBasicInfo);
wxScoreRulesService.addScore(EnumScoreType.COMPLETE_INFO, wxCUserBasicInfo);
wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT, wxCUserBasicInfo);
@@ -197,21 +185,25 @@ public class WxCUserController extends BaseController {

/**
* 会员信息
*
* @return
*/
@PostMapping("/findUserInfo")
@ApiOperation(value = "获取会员信息", notes="")
@ApiOperation(value = "获取会员信息", notes = "")
public ResultData findUserInfo(@RequestBody WxCUserFromBDto wxCUserFromBDto) {
logger.info("WxCUserController::updateUserInfo");
if (wxCUserFromBDto == null){
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL,"没有传入用户信息");
if (wxCUserFromBDto == null) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL, "没有传入用户信息");
}
if (StringUtils.isEmpty(wxCUserFromBDto.getOpenid())) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL, "C端openid不能为空");
}
if (StringUtils.isEmpty(wxCUserFromBDto.getOpenid())){
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL,"C端openid不能为空");
WxCUserFromB wxCUserFromB = wxCUserFromBService.getByOpenidAndAppId(wxCUserFromBDto);
if(wxCUserFromB!=null){
WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoService.getById(wxCUserFromB.getcUserId());
return new ResultData(wxCUserBasicInfo);
}
WxCUserFromB wxCUserFromB = wxCUserFromBService.getByOpenid(wxCUserFromBDto.getOpenid());
WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoService.getById(wxCUserFromB.getcUserId());
return new ResultData(wxCUserBasicInfo);
return new ResultData(Result.SUCCESS,"查询成功",null);
}




+ 10
- 0
mallinkService/src/main/java/com/iformall/domain/dto/WxCUserFromBDto.java Ver fichero

@@ -11,6 +11,8 @@ public class WxCUserFromBDto implements Serializable {
private Long bUserId;
@io.swagger.annotations.ApiModelProperty(value="C端openid",name="openid")
private String openid;
@io.swagger.annotations.ApiModelProperty(value="C端appid",name="appId")
private String appId;
@io.swagger.annotations.ApiModelProperty(value="C端会员姓名",name="name")
private String name;
@io.swagger.annotations.ApiModelProperty(value="C端会员性别",name="sex")
@@ -77,4 +79,12 @@ public class WxCUserFromBDto implements Serializable {
public void setPhone(String phone) {
this.phone = phone;
}

public String getAppId() {
return appId;
}

public void setAppId(String appId) {
this.appId = appId;
}
}

+ 12
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxCUserFromB.java Ver fichero

@@ -63,6 +63,18 @@ public class WxCUserFromB implements Serializable {
/*openid**/
@io.swagger.annotations.ApiModelProperty(value="openid",name="openid")
private String openid;
/***/
@io.swagger.annotations.ApiModelProperty(value="",name="appId")
private String appId;

public String getAppId() {
return appId;
}

public void setAppId(String appId) {
this.appId = appId;
}

public String getTenantId() {
return tenantId;
}


+ 3
- 3
mallinkService/src/main/java/com/iformall/mapper/WxCUserFromBMapper.java Ver fichero

@@ -1,8 +1,8 @@
package com.iformall.mapper;

import com.iformall.common.CommonMapper;
import com.iformall.domain.dto.WxCUserFromBDto;
import com.iformall.domain.po.WxCUserFromB;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@@ -13,6 +13,6 @@ public interface WxCUserFromBMapper extends CommonMapper<WxCUserFromB, Long> {

List<WxCUserFromB> findList(WxCUserFromB wxCUserFromB);

@Select("select * from wx_c_user_from_b where openid=#{openid}")
WxCUserFromB getByOpenid(String openid);
WxCUserFromB getByOpenidAndAppId(WxCUserFromBDto wxCUserFromBDto);
}

+ 2
- 1
mallinkService/src/main/java/com/iformall/service/WxCUserFromBService.java Ver fichero

@@ -1,6 +1,7 @@
package com.iformall.service;

import com.github.pagehelper.PageInfo;
import com.iformall.domain.dto.WxCUserFromBDto;
import com.iformall.domain.po.WxCUserFromB;

/**
@@ -41,6 +42,6 @@ public interface WxCUserFromBService {
void deleteById(Long id);


WxCUserFromB getByOpenid(String openid);
WxCUserFromB getByOpenidAndAppId(WxCUserFromBDto wxCUserFromBDto);

}

+ 3
- 2
mallinkService/src/main/java/com/iformall/service/impl/WxCUserFromBServiceImpl.java Ver fichero

@@ -3,6 +3,7 @@ package com.iformall.service.impl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.iformall.common.IdWorker;
import com.iformall.domain.dto.WxCUserFromBDto;
import com.iformall.domain.po.WxCUserFromB;
import com.iformall.mapper.WxCUserFromBMapper;
import com.iformall.service.WxCUserFromBService;
@@ -53,8 +54,8 @@ public class WxCUserFromBServiceImpl implements WxCUserFromBService {
}

@Override
public WxCUserFromB getByOpenid(String openid) {
return wxCUserFromBMapper.getByOpenid(openid);
public WxCUserFromB getByOpenidAndAppId(WxCUserFromBDto wxCUserFromBDto) {
return wxCUserFromBMapper.getByOpenidAndAppId(wxCUserFromBDto);
}




+ 9
- 3
mallinkService/src/main/resources/mapper/WxCUserFromBMapper.xml Ver fichero

@@ -11,10 +11,12 @@
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="openid" jdbcType="VARCHAR" property="openid" />
<result column="app_id" jdbcType="VARCHAR" property="appId" />
</resultMap>
<sql id="allColumns">
`id`,`tenant_id`,`merchant_id`,`b_user_id`,`c_user_id`,`info`,`create_time`,`update_time`,`openid`
`id`,`tenant_id`,`merchant_id`,`b_user_id`,`c_user_id`,`info`,`create_time`,`update_time`,`openid`,`app_id`
</sql>

<sql id="dynamicWhereConditions">
@@ -27,7 +29,9 @@
<if test=" null != info "> and `info` = #{info} </if>
<if test=" null != createTime "> and `create_time` = #{createTime} </if>
<if test=" null != updateTime "> and `update_time` = #{updateTime} </if>
<if test=" null != openid "> and `openid` = #{openid} </if>
<if test=" null != openid "> and `openid` = #{openid} </if>
<if test=" null != appId "> and `app_id` = #{appId} </if>
<if test=" null != ids ">
and id in
<foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")">
@@ -42,7 +46,9 @@
<include refid="dynamicWhereConditions" />
</select>
<select id="getByOpenidAndAppId" resultMap="BaseResultMap" parameterType="com.iformall.domain.dto.WxCUserFromBDto">
select * from wx_c_user_from_b where app_id=#{appId} and openid=#{openid}
</select>


+ 6
- 2
mallinkService/src/main/resources/mapper/WxOrderMapper.xml Ver fichero

@@ -276,7 +276,7 @@
<sql id="allPayOrderColumns">
o.`id`,o.`order_number`,o.`tenant_id`,o.`c_user_id`,o.`product_id`,o.`type`,
o.`payment_type`,o.`payment`,o.`payment_time`,o.`order_status`,o.`create_date`,o.`update_date`,o.`detail`,
m.name as merchant_name, bu.name, bu.phone as bphone, cu.phone,cu.`nick_name` c_user_name
m.name as merchant_name, bu.name, bu.phone as bphone, cu.phone,cu.c_user_name
</sql>

<select id="findListOfMicroPayOrderByDate" parameterType="map" resultMap="PayVoResultMap">
@@ -285,7 +285,11 @@
from wx_order o
inner join wx_merchant_b_user bu on bu.id = o.product_id
inner join wx_merchant m on m.id = bu.merchant_id
left join wx_c_user cu on cu.id = o.c_user_id
left join (
select cu.id,cu.phone,(select cubi.`name` from wx_c_user_basic_info cubi
where cubi.phone=cu.phone and cubi.`name` is not null limit 1) c_user_name
from wx_c_user cu
) cu on cu.id = o.c_user_id
where o.order_status = '1' and o.`type` = 1
<if test=" null != tenantId ">
and o.`tenant_id` = #{tenantId}


+ 1
- 1
mallinkService/src/main/resources/mapper/WxProfitSharingOrderMapper.xml Ver fichero

@@ -189,7 +189,7 @@
</resultMap>
<select id="findOrderDetail" resultMap="orderDetailsMap">
<select id="findOrderDetails" resultMap="orderDetailsMap">
select psr.id,psr.tenant_id,psr.pay_amount,psr.create_time,sharing_status,finish_time,failed_reason,description,
psre.receiver_type,psre.receiver_account,psre.receiver_comments,psre.sharing_type,psre.`status`


Cargando…
Cancelar
Guardar