| @@ -123,22 +123,25 @@ public class WxBusinessOrderController extends BaseController { | |||||
| memberCard.setCardCode(result.getCode()); | memberCard.setCardCode(result.getCode()); | ||||
| if(WxPayConstant.REGISTERED_MODE.equals(result.getAuthType())){ | if(WxPayConstant.REGISTERED_MODE.equals(result.getAuthType())){ | ||||
| memberCard.setUserCardStatus(EnumMemberCardStatus.EFFECTIVE.getCode()); | |||||
| wxMemberCardService.saveorupdateByCode(memberCard); | |||||
| wxMemberCardService.sendSyncMemberCardMsg(tenantEntity,memberCard.getCardId(),memberCard.getCardCode()); | |||||
| // memberCard.setUserCardStatus(EnumMemberCardStatus.EFFECTIVE.getCode()); | |||||
| // wxMemberCardService.saveorupdateByCode(memberCard); | |||||
| // | |||||
| // wxMemberCardService.sendSyncMemberCardMsg(tenantEntity,memberCard.getCardId(),memberCard.getCardCode()); | |||||
| resultMap.put("code","SUCCESS"); | resultMap.put("code","SUCCESS"); | ||||
| return resultMap; | return resultMap; | ||||
| }else if(WxPayConstant.REGISTERED_AND_AUTHORIZATION_MODE.equals(result.getAuthType())){ | }else if(WxPayConstant.REGISTERED_AND_AUTHORIZATION_MODE.equals(result.getAuthType())){ | ||||
| WxCUser cuser = new WxCUser(); | |||||
| cuser.updateTenantInfo(tenantEntity); | |||||
| cuser.setOpenId(result.getOpenid()); | |||||
| WxCUser byOpenId = wxCUserService.getByOpenId(cuser); | |||||
| memberCard.setCuserId(byOpenId.getId()); | |||||
| memberCard.setUserCardStatus(EnumMemberCardStatus.EFFECTIVE.getCode()); | memberCard.setUserCardStatus(EnumMemberCardStatus.EFFECTIVE.getCode()); | ||||
| wxMemberCardService.saveorupdateByCode(memberCard); | wxMemberCardService.saveorupdateByCode(memberCard); | ||||
| WxCUser updCuser = new WxCUser(); | |||||
| updCuser.updateTenantInfo(tenantEntity); | |||||
| updCuser.setOpenId(result.getOpenid()); | |||||
| updCuser.setAuthorizeState(EnumBusinessCircleAuthorizeState.AUTHORIZED.getCode()); | |||||
| updCuser.setAuthorizeTime(new Date()); | |||||
| wxCUserService.updateAuthorizeStateByOpenId(updCuser); | |||||
| cuser.setAuthorizeState(EnumBusinessCircleAuthorizeState.AUTHORIZED.getCode()); | |||||
| cuser.setAuthorizeTime(new Date()); | |||||
| wxCUserService.updateAuthorizeStateByOpenId(cuser); | |||||
| wxMemberCardService.sendSyncMemberCardMsg(tenantEntity,memberCard.getCardId(),memberCard.getCardCode()); | wxMemberCardService.sendSyncMemberCardMsg(tenantEntity,memberCard.getCardId(),memberCard.getCardCode()); | ||||
| resultMap.put("code","SUCCESS"); | resultMap.put("code","SUCCESS"); | ||||
| @@ -84,6 +84,9 @@ public class WxMemberCard extends TenantEntityWithoutFinalTenantId { | |||||
| @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate") | @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate") | ||||
| private Date createDate; | private Date createDate; | ||||
| @io.swagger.annotations.ApiModelProperty(value="",name="cuserId") | |||||
| private Long cuserId; | |||||
| @io.swagger.annotations.ApiModelProperty(value="",name="userId") | @io.swagger.annotations.ApiModelProperty(value="",name="userId") | ||||
| private Long userId; | private Long userId; | ||||
| @@ -16,6 +16,8 @@ public class AfterAddCreditMsg extends BaseMsg { | |||||
| private static final long serialVersionUID = -1l; | private static final long serialVersionUID = -1l; | ||||
| @io.swagger.annotations.ApiModelProperty(value="用户ID",name="cserId") | |||||
| private Long cuserId; | |||||
| @io.swagger.annotations.ApiModelProperty(value="会员ID",name="basicUserId") | @io.swagger.annotations.ApiModelProperty(value="会员ID",name="basicUserId") | ||||
| private Long basicUserId; | private Long basicUserId; | ||||
| @io.swagger.annotations.ApiModelProperty(value="积分变动ID",name="creditHistoryId") | @io.swagger.annotations.ApiModelProperty(value="积分变动ID",name="creditHistoryId") | ||||
| @@ -42,6 +42,8 @@ public interface WxCUserMapper extends CommonMapper<WxCUser, Long> { | |||||
| String findOpenId(@Param("userId")Long userId, @Param("tenantId")String tenantId); | String findOpenId(@Param("userId")Long userId, @Param("tenantId")String tenantId); | ||||
| Long findCuserId(@Param("userId")Long userId, @Param("tenantId")String tenantId); | |||||
| List<String> findTokenList(@Param("id")Long id,@Param("userId")Long userId, @Param("tenantId")String tenantId); | List<String> findTokenList(@Param("id")Long id,@Param("userId")Long userId, @Param("tenantId")String tenantId); | ||||
| List<UserStructureVo> findCountData(WxCUserBasicInfoDto dto); | List<UserStructureVo> findCountData(WxCUserBasicInfoDto dto); | ||||
| @@ -45,6 +45,6 @@ public interface WxMemberCardService { | |||||
| ResultData syncMemberCardBonus(TenantEntity tenantEntity,String card_id,String code,String markid, | ResultData syncMemberCardBonus(TenantEntity tenantEntity,String card_id,String code,String markid, | ||||
| int before_bonus_value,int bonus_value,Boolean need_inform_bonus); | int before_bonus_value,int bonus_value,Boolean need_inform_bonus); | ||||
| void sendsyncMemberCardBonusMsg(TenantEntity tenantEntity,Long baseUserId,Long creditHistoryId); | |||||
| void sendsyncMemberCardBonusMsg(TenantEntity tenantEntity,Long cuserId,Long baseUserId,Long creditHistoryId); | |||||
| } | } | ||||
| @@ -24,6 +24,7 @@ import com.iformall.mq.MqBaseProducer; | |||||
| import com.iformall.service.*; | import com.iformall.service.*; | ||||
| import com.iformall.utils.DateUtils; | import com.iformall.utils.DateUtils; | ||||
| import com.iformall.utils.MaUtil; | import com.iformall.utils.MaUtil; | ||||
| import org.apache.commons.lang3.StringUtils; | |||||
| import org.slf4j.Logger; | import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | import org.slf4j.LoggerFactory; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
| @@ -89,6 +90,13 @@ public class WxMemberCardServiceImpl implements WxMemberCardService { | |||||
| } | } | ||||
| record.setUpdateDate(record.getCreateDate()); | record.setUpdateDate(record.getCreateDate()); | ||||
| wxMemberCardMapper.insert(record); | wxMemberCardMapper.insert(record); | ||||
| if(record.getCuserId() != null){ | |||||
| TenantEntity tenantEntity = new TenantEntity(); | |||||
| tenantEntity.setTenantId(record.getTenantId()); | |||||
| tenantEntity.setParentTenantId(record.getParentTenantId()); | |||||
| this.sendsyncMemberCardBonusMsg(tenantEntity,record.getCuserId(),null,null); | |||||
| } | |||||
| }else{ | }else{ | ||||
| record.setId(id); | record.setId(id); | ||||
| if(record.getUpdateDate() == null){ | if(record.getUpdateDate() == null){ | ||||
| @@ -154,51 +162,51 @@ public class WxMemberCardServiceImpl implements WxMemberCardService { | |||||
| record.setGuide(JSON.toJSONString(memberCard.getGuide())); | record.setGuide(JSON.toJSONString(memberCard.getGuide())); | ||||
| } | } | ||||
| MemberCardResult.UserInformation userInformation = memberCard.getUserInformation(); | |||||
| List<MemberCardResult.CommonField> commonFieldList = userInformation.getCommonFieldList(); | |||||
| String phone = null, name = null, avatarUrl = null; | |||||
| Integer sex = null; | |||||
| for (MemberCardResult.CommonField commonField:commonFieldList) { | |||||
| /** | |||||
| * 平台提供了一些通用的开卡字段供开发者选用 | |||||
| * USER_FORM_FLAG_MOBILE:手机号 | |||||
| * USER_FORM_FLAG_SEX:性别 | |||||
| * USER_FORM_FLAG_NAME:姓名 | |||||
| * USER_FORM_FLAG_BIRTHDAY:生日 | |||||
| * USER_FORM_FLAG_ADDRESS:地址 | |||||
| * USER_FORM_FLAG_EMAIL:邮箱 | |||||
| * USER_FORM_FLAG_CITY:城市 | |||||
| */ | |||||
| if("USER_FORM_FLAG_MOBILE".equals(commonField.getName())){ | |||||
| phone = commonField.getValue(); | |||||
| }else if("USER_FORM_FLAG_SEX".equals(commonField.getName())){ | |||||
| if("男".equals(commonField.getValue())){ | |||||
| sex = 1; | |||||
| }else if("女".equals(commonField.getValue())){ | |||||
| sex = 2; | |||||
| }else{ | |||||
| sex = 0; | |||||
| } | |||||
| }else if("USER_FORM_FLAG_NAME".equals(commonField.getName())){ | |||||
| name = commonField.getValue(); | |||||
| } | |||||
| } | |||||
| WxCUserBasicInfo basicInfo = wxCUserBasicInfoService.registerByPhone(tenantEntity, phone, null,name, sex, avatarUrl); | |||||
| // MemberCardResult.UserInformation userInformation = memberCard.getUserInformation(); | |||||
| // List<MemberCardResult.CommonField> commonFieldList = userInformation.getCommonFieldList(); | |||||
| // String phone = null, name = null, avatarUrl = null; | |||||
| // Integer sex = null; | |||||
| // for (MemberCardResult.CommonField commonField:commonFieldList) { | |||||
| // /** | |||||
| // * 平台提供了一些通用的开卡字段供开发者选用 | |||||
| // * USER_FORM_FLAG_MOBILE:手机号 | |||||
| // * USER_FORM_FLAG_SEX:性别 | |||||
| // * USER_FORM_FLAG_NAME:姓名 | |||||
| // * USER_FORM_FLAG_BIRTHDAY:生日 | |||||
| // * USER_FORM_FLAG_ADDRESS:地址 | |||||
| // * USER_FORM_FLAG_EMAIL:邮箱 | |||||
| // * USER_FORM_FLAG_CITY:城市 | |||||
| // */ | |||||
| // if("USER_FORM_FLAG_MOBILE".equals(commonField.getName())){ | |||||
| // phone = commonField.getValue(); | |||||
| // }else if("USER_FORM_FLAG_SEX".equals(commonField.getName())){ | |||||
| // if("男".equals(commonField.getValue())){ | |||||
| // sex = 1; | |||||
| // }else if("女".equals(commonField.getValue())){ | |||||
| // sex = 2; | |||||
| // }else{ | |||||
| // sex = 0; | |||||
| // } | |||||
| // }else if("USER_FORM_FLAG_NAME".equals(commonField.getName())){ | |||||
| // name = commonField.getValue(); | |||||
| // } | |||||
| // } | |||||
| // WxCUserBasicInfo basicInfo = wxCUserBasicInfoService.registerByPhone(tenantEntity, phone, null,name, sex, avatarUrl); | |||||
| WxMemberCard old = wxMemberCardMapper.getByCode(record); | WxMemberCard old = wxMemberCardMapper.getByCode(record); | ||||
| if(old == null){ | |||||
| record.setUserId(basicInfo.getId()); | |||||
| }else{ | |||||
| if(old != null){ | |||||
| record.setId(old.getId()); | record.setId(old.getId()); | ||||
| if(!basicInfo.getId().equals(old.getUserId())){ | |||||
| record.setUserId(basicInfo.getId());; | |||||
| } | |||||
| } | } | ||||
| // if(basicInfo != null && (old == null || !basicInfo.getId().equals(old.getUserId()))){ | |||||
| // record.setUserId(basicInfo.getId()); | |||||
| // } | |||||
| this.saveorupdate(record); | this.saveorupdate(record); | ||||
| if(record.getUserId() != null){ | |||||
| this.sendsyncMemberCardBonusMsg(tenantEntity,record.getUserId(),null); | |||||
| // this.sendsyncMemberCardLevelMsg(tenantEntity,record.getUserId(),null); | |||||
| } | |||||
| // if(record.getUserId() != null){ | |||||
| // this.sendsyncMemberCardBonusMsg(tenantEntity,record.getUserId(),null); | |||||
| //// this.sendsyncMemberCardLevelMsg(tenantEntity,record.getUserId(),null); | |||||
| // } | |||||
| return new ResultData(); | return new ResultData(); | ||||
| } catch (WxPayException e) { | } catch (WxPayException e) { | ||||
| e.printStackTrace(); | e.printStackTrace(); | ||||
| @@ -291,11 +299,17 @@ public class WxMemberCardServiceImpl implements WxMemberCardService { | |||||
| } | } | ||||
| @Override | @Override | ||||
| public void sendsyncMemberCardBonusMsg(TenantEntity tenantEntity, Long baseUserId, Long creditHistoryId) { | |||||
| public void sendsyncMemberCardBonusMsg(TenantEntity tenantEntity, Long cuserId, Long baseUserId, Long creditHistoryId) { | |||||
| AfterAddCreditMsg msg = new AfterAddCreditMsg(); | AfterAddCreditMsg msg = new AfterAddCreditMsg(); | ||||
| msg.updateTenantInfo(tenantEntity); | msg.updateTenantInfo(tenantEntity); | ||||
| msg.setMsgType(EnumMsgRecordType.AFTER_ADD_CREDIT.getCode()); | msg.setMsgType(EnumMsgRecordType.AFTER_ADD_CREDIT.getCode()); | ||||
| msg.setBasicUserId(baseUserId); | |||||
| if(cuserId != null){ | |||||
| msg.setCuserId(cuserId); | |||||
| }else if(baseUserId != null){ | |||||
| msg.setBasicUserId(baseUserId); | |||||
| }else { | |||||
| logger.error("商圈会员积分同步消息发送失败"); | |||||
| } | |||||
| msg.setCreditHistoryId(creditHistoryId); | msg.setCreditHistoryId(creditHistoryId); | ||||
| mqBaseProducer.sendMessage(msg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); | mqBaseProducer.sendMessage(msg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); | ||||
| } | } | ||||
| @@ -79,20 +79,29 @@ public class AfterAddCreditMsgServiceImpl implements MsgSendService { | |||||
| logger.error("未找到商圈配置或商圈版本不支持"); | logger.error("未找到商圈配置或商圈版本不支持"); | ||||
| return; | return; | ||||
| } | } | ||||
| if(afterAddCreditMsg.getBasicUserId() != null){ | |||||
| Long cuserId = wxCUserMapper.findCuserId(afterAddCreditMsg.getBasicUserId(), afterAddCreditMsg.getTenantId()); | |||||
| afterAddCreditMsg.setCuserId(cuserId); | |||||
| } | |||||
| WxMemberCard memberCardQ = new WxMemberCard(); | WxMemberCard memberCardQ = new WxMemberCard(); | ||||
| memberCardQ.updateFinalTenantId(tenantEntity); | memberCardQ.updateFinalTenantId(tenantEntity); | ||||
| memberCardQ.setUserId(afterAddCreditMsg.getBasicUserId()); | |||||
| memberCardQ.setCuserId(afterAddCreditMsg.getCuserId()); | |||||
| memberCardQ.setUserCardStatus(EnumMemberCardStatus.EFFECTIVE.getCode()); | memberCardQ.setUserCardStatus(EnumMemberCardStatus.EFFECTIVE.getCode()); | ||||
| List<WxMemberCard> memberCards = wxMemberCardMapper.findList(memberCardQ); | List<WxMemberCard> memberCards = wxMemberCardMapper.findList(memberCardQ); | ||||
| if(memberCards == null || memberCards.isEmpty()){ | if(memberCards == null || memberCards.isEmpty()){ | ||||
| logger.error("该用户未授权商圈"+afterAddCreditMsg.getBasicUserId()); | |||||
| logger.error("该用户未授权商圈"+afterAddCreditMsg.getCuserId()); | |||||
| return; | return; | ||||
| } | } | ||||
| String markid = null; | String markid = null; | ||||
| Integer before_bonus_value = 0,bonus_value = 0; | Integer before_bonus_value = 0,bonus_value = 0; | ||||
| if(afterAddCreditMsg.getCreditHistoryId() == null){ | if(afterAddCreditMsg.getCreditHistoryId() == null){ | ||||
| if(afterAddCreditMsg.getBasicUserId() == null){ | |||||
| WxCUser wxCUser = wxCUserMapper.selectById(afterAddCreditMsg.getCuserId()); | |||||
| afterAddCreditMsg.setBasicUserId(wxCUser.getUserId()); | |||||
| } | |||||
| WxCUserBasicInfo basicInfo = wxCUserBasicInfoMapper.selectById(afterAddCreditMsg.getBasicUserId(), tenantEntity.getFinalTenantId()); | WxCUserBasicInfo basicInfo = wxCUserBasicInfoMapper.selectById(afterAddCreditMsg.getBasicUserId(), tenantEntity.getFinalTenantId()); | ||||
| markid = basicInfo.getId().toString(); | markid = basicInfo.getId().toString(); | ||||
| bonus_value = basicInfo.getCredit(); | bonus_value = basicInfo.getCredit(); | ||||
| @@ -108,7 +117,7 @@ public class AfterAddCreditMsgServiceImpl implements MsgSendService { | |||||
| markid = markid + "_" + i; | markid = markid + "_" + i; | ||||
| ResultData resultData = wxMemberCardService.syncMemberCardBonus(tenantEntity, memberCard.getCardId(), memberCard.getCardCode(), markid, | ResultData resultData = wxMemberCardService.syncMemberCardBonus(tenantEntity, memberCard.getCardId(), memberCard.getCardCode(), markid, | ||||
| before_bonus_value, bonus_value, null); | before_bonus_value, bonus_value, null); | ||||
| logger.info(tenantEntity.getTenantId()+"--"+memberCard.getUserId()+"--微信商圈同步会员积分{}"+resultData.message); | |||||
| logger.info(tenantEntity.getTenantId()+"--"+memberCard.getId()+"--微信商圈同步会员积分{}"+resultData.message); | |||||
| } | } | ||||
| } | } | ||||
| @@ -450,10 +450,14 @@ | |||||
| <!-- union_id = IF(union_id is null ,null,CONCAT(union_id,"_del"))--> | <!-- union_id = IF(union_id is null ,null,CONCAT(union_id,"_del"))--> | ||||
| <select id="findOpenIdList" parameterType="hashmap" resultType="String" > | |||||
| <select id="findOpenId" parameterType="hashmap" resultType="String" > | |||||
| select open_id from wx_c_user where user_id=#{userId} and tenant_id = #{tenantId} | select open_id from wx_c_user where user_id=#{userId} and tenant_id = #{tenantId} | ||||
| </select> | </select> | ||||
| <select id="findCuserId" parameterType="hashmap" resultType="String" > | |||||
| select id from wx_c_user where user_id=#{userId} and tenant_id = #{tenantId} | |||||
| </select> | |||||
| <update id="updateAuthorizeStateByOpenId" parameterType="com.iformall.domain.po.WxCUser"> | <update id="updateAuthorizeStateByOpenId" parameterType="com.iformall.domain.po.WxCUser"> | ||||
| update wx_c_user | update wx_c_user | ||||
| set `authorize_state` = #{authorizeState} | set `authorize_state` = #{authorizeState} | ||||
| @@ -27,6 +27,7 @@ | |||||
| <result column="guide" jdbcType="VARCHAR" property="guide"/> | <result column="guide" jdbcType="VARCHAR" property="guide"/> | ||||
| <result column="update_date" jdbcType="TIMESTAMP" property="updateDate"/> | <result column="update_date" jdbcType="TIMESTAMP" property="updateDate"/> | ||||
| <result column="create_date" jdbcType="TIMESTAMP" property="createDate"/> | <result column="create_date" jdbcType="TIMESTAMP" property="createDate"/> | ||||
| <result column="cuser_id" jdbcType="VARCHAR" property="cuserId"/> | |||||
| <result column="user_id" jdbcType="BIGINT" property="userId"/> | <result column="user_id" jdbcType="BIGINT" property="userId"/> | ||||
| </resultMap> | </resultMap> | ||||
| @@ -34,7 +35,7 @@ | |||||
| `id`,`tenant_id`,`parent_tenant_id`,`card_id`,`card_code`,`activate_scene`,`outer_str`,`open_id`,`union_id`, | `id`,`tenant_id`,`parent_tenant_id`,`card_id`,`card_code`,`activate_scene`,`outer_str`,`open_id`,`union_id`, | ||||
| `membership_number`,`level`,`nickname`,`head_image_url`,`background_picture_url`,`balance`, | `membership_number`,`level`,`nickname`,`head_image_url`,`background_picture_url`,`balance`, | ||||
| `user_card_status`,`user_information`,`bonus_value`,`service_modules`,`member_price_word`,`fapiao_jump_word`, | `user_card_status`,`user_information`,`bonus_value`,`service_modules`,`member_price_word`,`fapiao_jump_word`, | ||||
| `guide`,`update_date`,`create_date`,`user_id` | |||||
| `guide`,`update_date`,`create_date`,`cuser_id`,`user_id` | |||||
| </sql> | </sql> | ||||
| <sql id="dynamicWhereConditions"> | <sql id="dynamicWhereConditions"> | ||||
| @@ -83,6 +84,10 @@ | |||||
| and `user_card_status` = #{userCardStatus} | and `user_card_status` = #{userCardStatus} | ||||
| </if> | </if> | ||||
| <if test=" null != cuserId "> | |||||
| and `cuser_id` = #{cuserId} | |||||
| </if> | |||||
| <if test=" null != userId "> | <if test=" null != userId "> | ||||
| and `user_id` = #{userId} | and `user_id` = #{userId} | ||||
| </if> | </if> | ||||