huangxiao před 2 měsíci
rodič
revize
ce829e17b5

+ 0 - 5
src/main/java/net/mingsoft/tf/biz/IExhibitorBiz.java

@@ -28,11 +28,6 @@ public interface IExhibitorBiz extends IBaseBiz<ExhibitorEntity> {
     ExhibitorEntity queryByBooth(String exhibition, String booth);
 
     /**
-     * 创建展商邀请码
-     */
-    String invitationCode();
-
-    /**
      * 根据邀请码查展商
      *
      * @param invitationCode 邀请码

+ 1 - 1
src/main/java/net/mingsoft/tf/biz/IGuestBiz.java

@@ -30,5 +30,5 @@ public interface IGuestBiz extends IBaseBiz<GuestEntity> {
      * <p>
      * 可关联邀请
      */
-    void updateGuest(String openid, String icon, String nickName, String code);
+    void updateGuest(String openid, String icon, String nickName, String code,Boolean exhibitor);
 }

+ 9 - 5
src/main/java/net/mingsoft/tf/biz/IPeopleExhibitorBiz.java

@@ -15,12 +15,16 @@ public interface IPeopleExhibitorBiz extends IBaseBiz<PeopleExhibitorEntity> {
     /**
      * 加入邀请
      *
-     * @param user 用户
-     * @param code 邀请码
+     * @param user      用户
+     * @param code      邀请码
+     * @param exhibitor 是否从参展商关联
      */
-    void join(String user, String code);
-
-    IPeopleExhibitorDao getDao();
+    void join(String user, String code, Boolean exhibitor);
 
+    /**
+     * 根据邀请码查用户ID
+     */
+    String queryUserIdByInvitationCode(String code);
 
+    IPeopleExhibitorDao getDao();
 }

+ 7 - 3
src/main/java/net/mingsoft/tf/biz/impl/ExhibitorBizImpl.java

@@ -10,6 +10,8 @@ import net.mingsoft.tf.entity.ExhibitorEntity;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.function.Function;
+
 /**
  * 展商管理持久化层
  *
@@ -43,12 +45,14 @@ public class ExhibitorBizImpl extends BaseBizImpl<IExhibitorDao, ExhibitorEntity
         );
     }
 
-    @Override
-    public String invitationCode() {
+    /**
+     * 创建邀请码
+     */
+    public static String createInvitationCode(Function<String, Object> check) {
         String code;
         for (int i = 0; i <= 5; i++) {
             code = RandomUtil.randomString(9);
-            if (queryByInvitationCode(code) == null) {
+            if (check.apply(code) == null) {
                 return code;
             }
         }

+ 2 - 2
src/main/java/net/mingsoft/tf/biz/impl/GuestBizImpl.java

@@ -50,12 +50,12 @@ public class GuestBizImpl extends BaseBizImpl<IGuestDao, GuestEntity> implements
     }
 
     @Override
-    public void updateGuest(String openid, String icon, String nickName, String code) {
+    public void updateGuest(String openid, String icon, String nickName, String code, Boolean exhibitor) {
         GuestEntity newEntity = new GuestEntity();
         newEntity.setIcon(icon);
         newEntity.setNickName(nickName);
         getDao().update(newEntity, new LambdaQueryWrapper<>(GuestEntity.class)
                 .eq(GuestEntity::getOpenId, openid));
-        peopleExhibitorBiz.join(openid, code);
+        peopleExhibitorBiz.join(openid, code, exhibitor);
     }
 }

+ 27 - 9
src/main/java/net/mingsoft/tf/biz/impl/PeopleExhibitorBizImpl.java

@@ -33,17 +33,35 @@ public class PeopleExhibitorBizImpl extends BaseBizImpl<IPeopleExhibitorDao, Peo
     }
 
     @Override
-    public void join(String user, String code) {
-        Optional.ofNullable(code)
-                .filter(StrUtil::isNotBlank)
-                .map(exhibitorBiz::queryByInvitationCode)
-                .map(ExhibitorEntity::getExhibitorUser)
-                // 稳一手,自己不能邀请自己
-                .filter(exhibitorUser -> !StrUtil.equals(exhibitorUser, user))
+    public String queryUserIdByInvitationCode(String invitationCode) {
+        return queryForList("select LINK_ID from mdiy_model_people_info where INVITATION_CODE=?", invitationCode)
+                .stream()
+                .map(map -> map.get("LINK_ID"))
+                .map(Object::toString)
+                .findFirst()
+                .orElse(null);
+    }
+
+    @Override
+    public void join(String user, String code, Boolean exhibitor) {
+        if (!StrUtil.isAllNotBlank(user, code)) {
+            return;
+        }
+        Optional<String> id;
+        if (exhibitor != null && exhibitor) {
+            id = Optional.ofNullable(code)
+                    .map(exhibitorBiz::queryByInvitationCode)
+                    .map(ExhibitorEntity::getExhibitorUser);
+        } else {
+            id = Optional.ofNullable(code)
+                    .map(this::queryUserIdByInvitationCode);
+        }
+        // 稳一手,自己不能邀请自己
+        id.filter(u -> !StrUtil.equals(u, user))
                 // 判断是否已经邀请过
-                .filter(exhibitorUser -> peopleExhibitorDao.selectOne(new LambdaQueryWrapper<>(PeopleExhibitorEntity.class)
+                .filter(u -> peopleExhibitorDao.selectOne(new LambdaQueryWrapper<>(PeopleExhibitorEntity.class)
                         .eq(PeopleExhibitorEntity::getPeople, user)
-                        .eq(PeopleExhibitorEntity::getExhibitor, exhibitorUser)) == null
+                        .eq(PeopleExhibitorEntity::getExhibitor, u)) == null
                 )
                 .map(exhibitorUser -> {
                     PeopleExhibitorEntity entity = new PeopleExhibitorEntity();

+ 4 - 3
src/main/java/net/mingsoft/tf/wx/ExhibitorAction.java

@@ -17,6 +17,7 @@ import net.mingsoft.tf.biz.IBoothBiz;
 import net.mingsoft.tf.biz.IExhibitionBiz;
 import net.mingsoft.tf.biz.IExhibitorBiz;
 import net.mingsoft.tf.biz.IPeopleExhibitorBiz;
+import net.mingsoft.tf.biz.impl.ExhibitorBizImpl;
 import net.mingsoft.tf.entity.BoothEntity;
 import net.mingsoft.tf.entity.ExhibitionEntity;
 import net.mingsoft.tf.entity.ExhibitorEntity;
@@ -56,8 +57,8 @@ public class ExhibitorAction extends BaseAction {
     })
     @GetMapping(value = "/joinInvitation")
     @ResponseBody
-    public ResultData joinInvitation(String code) {
-        Optional.ofNullable(code).ifPresent(c -> peopleExhibitorBiz.join(PeopleUtil.getPeopleBean().getPeopleId(), c));
+    public ResultData joinInvitation(String code, Boolean exhibitor) {
+        Optional.ofNullable(code).ifPresent(c -> peopleExhibitorBiz.join(PeopleUtil.getPeopleBean().getPeopleId(), c, exhibitor));
         return ResultData.build().success();
     }
 
@@ -124,7 +125,7 @@ public class ExhibitorAction extends BaseAction {
         }
         exhibitor.setExhibitorUser(userId);
         exhibitor.setExhibitorActivities(exhibition.getId());
-        exhibitor.setExhibitorCode(exhibitorBiz.invitationCode());
+        exhibitor.setExhibitorCode(ExhibitorBizImpl.createInvitationCode(exhibitorBiz::queryByInvitationCode));
         return exhibitorAction.save(exhibitor);
     }
 

+ 5 - 2
src/main/java/net/mingsoft/tf/wx/WxPeopleAction.java

@@ -26,6 +26,7 @@ import net.mingsoft.people.action.web.PeopleAction;
 import net.mingsoft.people.biz.IPeopleBiz;
 import net.mingsoft.people.entity.PeopleEntity;
 import net.mingsoft.tf.biz.*;
+import net.mingsoft.tf.biz.impl.ExhibitorBizImpl;
 import net.mingsoft.tf.entity.ExhibitionEntity;
 import net.mingsoft.tf.entity.GuestEntity;
 import net.mingsoft.tf.wx.dto.ExhibitorInfoResponse;
@@ -141,7 +142,7 @@ public class WxPeopleAction extends BaseAction {
     @PostMapping(value = "/guest")
     @ResponseBody
     public ResultData guest(@RequestBody GuestRequest guest) {
-        guestBiz.updateGuest(guest.getOpenid(), guest.getIcon(), guest.getNickName(), guest.getCode());
+        guestBiz.updateGuest(guest.getOpenid(), guest.getIcon(), guest.getNickName(), guest.getCode(),guest.getExhibitor());
         return ResultData.build().success();
     }
 
@@ -220,8 +221,10 @@ public class WxPeopleAction extends BaseAction {
             modelData.put("channel", people.getChannel());
             modelData.put("purpose", people.getPurpose());
             modelData.put("linkId", linkId);
+            // 生成自己的邀请码
+            modelData.put("invitationCode", ExhibitorBizImpl.createInvitationCode(peopleExhibitorBiz::queryUserIdByInvitationCode));
             // 关联邀请
-            peopleExhibitorBiz.join(linkId, people.getInvitationCode());
+            peopleExhibitorBiz.join(linkId, people.getInvitationCode(), people.getExhibitor());
             ModelEntity model = modelBiz.getById(modelId);
             // 保存扩展表数据
             modelDataBiz.spliceInsertSql(model, new CaseInsensitiveMap<>(modelData));

+ 1 - 0
src/main/java/net/mingsoft/tf/wx/dto/GuestRequest.java

@@ -8,4 +8,5 @@ public class GuestRequest {
     private String icon;
     private String nickName;
     private String code;
+    private Boolean exhibitor;
 }

+ 4 - 0
src/main/java/net/mingsoft/tf/wx/dto/WxRegisterRequest.java

@@ -27,4 +27,8 @@ public class WxRegisterRequest extends PeopleBean {
      * 参观目的
      */
     private String purpose;
+    /**
+     * 是从参展商关联
+     */
+    private Boolean exhibitor;
 }

+ 5 - 2
src/main/resources/application-dev.yml

@@ -1,8 +1,11 @@
 spring:
   datasource:
-    url: jdbc:mysql://localhost:3306/user_test?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&autoReconnect=true&allowMultiQueries=true&useSSL=false
+#    url: jdbc:mysql://localhost:3306/user_test?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&autoReconnect=true&allowMultiQueries=true&useSSL=false
+#    username: root
+#    password:
+    url: jdbc:mysql://43.139.28.246:3306/main?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&autoReconnect=true&allowMultiQueries=true&useSSL=false
     username: root
-    password:
+    password: lksdhi46ow68745er87
     filters: wall,mergeStat
     type: com.alibaba.druid.pool.DruidDataSource
 spring.main.allow-bean-definition-overriding: true