Forráskód Böngészése

账户2.0——导入账户初版

zhaoxian 3 éve
szülő
commit
bf8a46001a

+ 68 - 2
ruixuan-live/src/main/java/com/ruixuan/live/entity/KuaishouLiveUserAccount.java

@@ -6,7 +6,10 @@ import io.swagger.annotations.ApiModel;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.util.Arrays;
 import java.util.Date;
+import java.util.List;
+import java.util.UUID;
 
 /**
  * 快手直播账户对象 kuaishou_live_user_account
@@ -123,6 +126,7 @@ public class KuaishouLiveUserAccount implements Serializable {
      * 创建人ID
      */
     private String createrId;
+    private String projectName;
 
     /**
      * 协作人集
@@ -142,12 +146,74 @@ public class KuaishouLiveUserAccount implements Serializable {
 
     private Integer count;
 
-    public KuaishouLiveUserAccount(JSONObject object) {
-
+    public KuaishouLiveUserAccount() {
 
+    }
 
+    public KuaishouLiveUserAccount(JSONObject obj) {
+        this.setId(UUID.randomUUID().toString().replace("-", ""));
+        this.setAccountName(obj.getString("0"));//账户名称
+        this.setAccountId(obj.getLong("1"));//广告主 ID
+        this.setQualificationStatus(obj.getString("2"));//资质状态
+        //快手昵称与快手 ID
+        String ksIdAndName = obj.getString("3").replace("(", "(").replace(")", ")").trim();
+
+        String collaborators = "小齐菩提(潘家园带货)(352615857)".replace("(", "(").replace(")", ")").trim();
+        String[] split = ksIdAndName.split("(");
+        this.setKsName(ksIdAndName.substring(0, ksIdAndName.lastIndexOf("(")));
+        this.setKsId(Long.valueOf(ksIdAndName.substring(ksIdAndName.lastIndexOf("(") + 1).replace(")", "")));
+        this.setAccountType(AccountTypeEnum.getByName(obj.getString("4")));//账户类型
+        this.setPaymentMethod(obj.getString("5"));//付款方式
+        this.setProjectName(obj.getString("6"));//产品名
+        this.setEnterpriseName(obj.getString("7"));//企业名称
+        this.setFirstIndustry(obj.getString("9"));//一级行业
+        this.setSecondaryIndustry(obj.getString("10"));//二级行业
+        this.setAccountStatus(obj.getString("21"));//账户状态
+        this.setOperatorLeader(getUserName(obj.getString("24")));//优化师责任人
+        this.setSaleLeader(getUserName(obj.getString("25")));//销售责任人
+        this.setCollaboratorList(obj.getString("26"));//协作人列表
+        this.setPortName(obj.getString("29"));//端口名称
+    }
 
+    private String getUserName(String name) {
+        if (name == null) {
+            return "";
+        }
+        name = name.replace("(", "(").replace(")", ")").trim();
+        return name.split("(")[0];
+    }
 
 
+    private enum AccountTypeEnum {
+        CLJN("cljn", "磁力金牛"),
+        CLJN_YD("cljnydd", "磁力金牛移动端"),
+        INFOR("xxl", "信息流");
+
+        private final String code;
+        private final String name;
+
+        AccountTypeEnum(String code, String name) {
+            this.code = code;
+            this.name = name;
+        }
+
+        // 每次取枚举用for循环遍历
+        public static String getByName(String name) {
+            for (AccountTypeEnum it : AccountTypeEnum.values()) {
+                if (it.getName().equals(name)) {
+                    return it.getCode();
+                }
+            }
+            return "";
+        }
+
+        public String getCode() {
+            return code;
+        }
+
+        public String getName() {
+            return name;
+        }
     }
+
 }

+ 1 - 0
ruixuan-live/src/main/java/com/ruixuan/live/mapper/KuaishouLiveUserAccountMapper.java

@@ -67,4 +67,5 @@ public interface KuaishouLiveUserAccountMapper {
 
     KuaishouLiveUserAccount getOne(@Param("ksId") Long ksId, @Param("accountName") String accountName);
 
+    void replaceBatch(@Param(value = "accountList")  List<KuaishouLiveUserAccount> accountList);
 }

+ 50 - 4
ruixuan-live/src/main/java/com/ruixuan/live/service/impl/KuaishouLiveUserAccountServiceImpl.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.ruixuan.common.core.domain.ResultResponse;
+import com.ruixuan.common.core.domain.entity.SysUser;
 import com.ruixuan.common.utils.Check;
 import com.ruixuan.data.utils.LiveDataExcelUtils;
 import com.ruixuan.live.entity.KuaishouLiveProject;
@@ -17,6 +18,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.UUID;
 
@@ -120,19 +123,62 @@ public class KuaishouLiveUserAccountServiceImpl implements IKuaishouLiveUserAcco
 
     @Override
     public ResultResponse insertByExcel(MultipartFile file) {
-        String fileName = file.getOriginalFilename();
+        List<KuaishouLiveUserAccount> accountList = new ArrayList<>();
         try {
+            String fileName = file.getOriginalFilename();
             List<JSONObject> list = LiveDataExcelUtils.analysisFile(file, fileName);
             for (JSONObject object : list) {
-            KuaishouLiveUserAccount k = new KuaishouLiveUserAccount(object);
+                KuaishouLiveUserAccount account = new KuaishouLiveUserAccount(object);
+                account.setOperatorLeaderId(getUserIdByName(account.getOperatorLeader()));
+                account.setSaleLeaderId(getUserIdByName(account.getSaleLeader()));
+                account.setProjectId(getAndInsertProject(account.getKsId(), account.getProjectName()));
+                insertAccountPart(account);
+                accountList.add(account);
             }
-
-
         } catch (Exception e) {
             e.printStackTrace();
+            return ResultResponse.error("导入异常");
+        }
+        if (Check.isNotNull(accountList)) {
+            kuaishouLiveUserAccountMapper.replaceBatch(accountList);
         }
+        return ResultResponse.success();
+    }
 
 
+    private void insertAccountPart(KuaishouLiveUserAccount account) {
+        String collaborators = account.getCollaboratorList();
+        if (Check.isNotNull(collaborators)) {
+            List<String> users = Arrays.asList(collaborators.split(";"));
+            List<JSONObject> list = new ArrayList<>();
+            for (String user : users) {
+                JSONObject obj = new JSONObject();
+                obj.put("ksId", account.getKsId());
+                obj.put("ksName", account.getKsName());
+                obj.put("accountId", account.getAccountId());
+                obj.put("accountName", account.getAccountName());
+                obj.put("createrId", account.getCreaterId());
+                String idAndName = user.replace("(", "(").replace(")", ")").trim();
+                String[] split = idAndName.split("(");
+                obj.put("userId", getUserIdByName(split[0]));
+                obj.put("nickName", split[0]);
+                list.add(obj);
+            }
+            if (Check.isNotNull(collaborators)) {
+                accountPartMapper.replaceBatch(list);
+            }
+        }
+    }
+
+    // 通过人员名字查询人员ID
+    private String getUserIdByName(String name) {
+        if (Check.isNull(name)) {
+            return null;
+        }
+        SysUser user = sysUserService.selectUserByUserName(name);
+        if (Check.isNotNull(user)) {
+            return user.getUserId().toString();
+        }
         return null;
     }
 

+ 55 - 1
ruixuan-live/src/main/resources/mapper/live/KuaishouLiveUserAccountMapper.xml

@@ -213,4 +213,58 @@
         </foreach>
     </delete>
 
-</mapper>
+
+    <insert id="replaceBatch">
+        replace into kuaishou_live_user_account(
+        id,
+        project_id,
+        ks_id,
+        ks_name,
+        account_id,
+        account_name,
+        account_type,
+        payment_method,
+        sale_leader_id,
+        sale_leader,
+        operator_leader_id,
+        operator_leader,
+        designer_leader_id,
+        designer_leader,
+        enterprise_name,
+        first_industry,
+        secondary_industry,
+        qualification_status,
+        account_status,
+        port_name,
+        creater_id
+        )
+        values
+        <foreach collection="accountList" item="account" separator=",">
+            (
+            #{account.id},
+            #{account.projectId},
+            #{account.ksId},
+            #{account.ksName},
+            #{account.accountId},
+            #{account.accountName},
+            #{account.accountType},
+            #{account.paymentMethod},
+            #{account.saleLeaderId},
+            #{account.saleLeader},
+            #{account.operatorLeaderId},
+            #{account.operatorLeader},
+            #{account.designerLeaderId},
+            #{account.designerLeader},
+            #{account.enterpriseName},
+            #{account.firstIndustry},
+            #{account.secondaryIndustry},
+            #{account.qualificationStatus},
+            #{account.accountStatus},
+            #{account.portName},
+            #{account.createrId}
+            )
+        </foreach>
+    </insert>
+
+
+</mapper>

+ 7 - 9
ruixuan-system/src/main/java/com/ruixuan/system/service/ISysUserService.java

@@ -1,17 +1,16 @@
 package com.ruixuan.system.service;
 
-import java.util.List;
-
 import com.alibaba.fastjson.JSONObject;
 import com.ruixuan.common.core.domain.entity.SysUser;
 
+import java.util.List;
+
 /**
  * 用户 业务层
  *
  * @author ruixuan
  */
-public interface ISysUserService
-{
+public interface ISysUserService {
     /**
      * 根据条件分页查询用户列表
      *
@@ -133,7 +132,7 @@ public interface ISysUserService
     /**
      * 用户授权角色
      *
-     * @param userId 用户ID
+     * @param userId  用户ID
      * @param roleIds 角色组
      */
     public void insertUserAuth(Long userId, Long[] roleIds);
@@ -158,7 +157,7 @@ public interface ISysUserService
      * 修改用户头像
      *
      * @param userName 用户名
-     * @param avatar 头像地址
+     * @param avatar   头像地址
      * @return 结果
      */
     public boolean updateUserAvatar(String userName, String avatar);
@@ -199,9 +198,9 @@ public interface ISysUserService
     /**
      * 导入用户数据
      *
-     * @param userList 用户数据列表
+     * @param userList        用户数据列表
      * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据
-     * @param operName 操作用户
+     * @param operName        操作用户
      * @return 结果
      */
     public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName);
@@ -216,7 +215,6 @@ public interface ISysUserService
 
     List<JSONObject> queryUserByIds(List<String> userIds);
 
-
     List<JSONObject> getUserRoleByUserId(Long userId);
 
     List<JSONObject> getUserByRoleName(List<String> roleCodeList);