Browse Source

Merge remote-tracking branch 'origin/企微聊天' into 企微聊天

ct 3 days ago
parent
commit
e53b27ba7c

+ 10 - 0
fs-admin/src/main/java/com/fs/web/controller/system/SysUserController.java

@@ -2,6 +2,7 @@ package com.fs.web.controller.system;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 import com.fs.common.constant.HttpStatus;
@@ -10,6 +11,7 @@ import com.fs.common.core.domain.model.LoginUser;
 import com.fs.common.core.page.PageDomain;
 import com.fs.common.core.page.TableSupport;
 import com.fs.common.utils.ServletUtils;
+import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.ArrayUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -263,4 +265,12 @@ public class SysUserController extends BaseController
         Boolean isAdmin= SecurityUtils.isAdmin(loginUser.getUser().getUserId());
         return R.ok().put("data",isAdmin);
     }
+
+    @PreAuthorize("@ss.hasPermi('system:user:unBind')")
+    @ApiOperation("解绑微信")
+    @PostMapping("/unBind")
+    public AjaxResult unBind(@RequestBody Map<String, String> userIdMap){
+        String userId = userIdMap.get("userId");
+        return toAjax(userService.unBind(userId));
+    }
 }

+ 8 - 0
fs-company/src/main/java/com/fs/company/controller/company/CompanyUserController.java

@@ -869,4 +869,12 @@ public class CompanyUserController extends BaseController {
         List<com.fs.hisStore.domain.FsUserScrm> userList = companyUserService.selectBoundFsUsersByCompanyUserId(companyUserId);
         return R.ok().put("data", userList);
     }
+
+    @PreAuthorize("@ss.hasPermi('company:user:unBind')")
+    @ApiOperation("解绑微信")
+    @PostMapping("/unBind")
+    public AjaxResult unBind(@RequestBody Map<String, String> userIdMap){
+        String userId = userIdMap.get("userId");
+        return toAjax(companyUserService.unBind(userId));
+    }
 }

+ 1 - 0
fs-service/src/main/java/com/fs/company/mapper/CompanyUserMapper.java

@@ -351,4 +351,5 @@ public interface CompanyUserMapper
      */
     List<com.fs.hisStore.domain.FsUserScrm> selectBoundFsUsersByCompanyUserId(@Param("companyUserId") Long companyUserId);
 
+    int unBind(String userId);
 }

+ 2 - 0
fs-service/src/main/java/com/fs/company/service/ICompanyUserService.java

@@ -264,4 +264,6 @@ public interface ICompanyUserService {
      * @return 绑定的用户列表
      */
     List<com.fs.hisStore.domain.FsUserScrm> selectBoundFsUsersByCompanyUserId(Long companyUserId);
+
+    int unBind(String userId);
 }

+ 5 - 0
fs-service/src/main/java/com/fs/company/service/impl/CompanyUserServiceImpl.java

@@ -1096,4 +1096,9 @@ public class CompanyUserServiceImpl implements ICompanyUserService
     public List<com.fs.hisStore.domain.FsUserScrm> selectBoundFsUsersByCompanyUserId(Long companyUserId) {
         return companyUserMapper.selectBoundFsUsersByCompanyUserId(companyUserId);
     }
+
+    @Override
+    public int unBind(String userId) {
+        return companyUserMapper.unBind(userId);
+    }
 }

+ 3 - 0
fs-service/src/main/java/com/fs/his/mapper/FsStoreOrderMapper.java

@@ -1196,4 +1196,7 @@ public interface FsStoreOrderMapper
     FsStoreOrderAmountStatsVo selectFsStoreOrderAmountStats(FsStoreOrderAmountStatsQueryDto queryDto);
 
     List<FsStoreOrder> selectOutTimeOrderList(@Param("unPayTime")Integer unPayTime);
+
+    List<Map<String, Object>> selectOrderItemsByOrderIds(@Param("orderIds") List<Long> orderIds);
+
 }

+ 28 - 3
fs-service/src/main/java/com/fs/his/service/impl/FsExportTaskServiceImpl.java

@@ -6,6 +6,7 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
@@ -234,12 +235,36 @@ public class FsExportTaskServiceImpl implements IFsExportTaskService
                 if (vo.getUserAddress() != null && !isCheckAddress) {
                     vo.setUserAddress(ParseUtils.parseAddress(vo.getUserAddress()));
                 }
+            }
+
+            if (filter.contains("countGoods")) {
+                List<Long> orderIds = erpList.stream()
+                        .map(FsStoreOrderErpExportVO::getOrderId)
+                        .collect(Collectors.toList());
+
+                if (orderIds.size() > 0) {
+                    List<Map<String, Object>> orderItemList =
+                            fsStoreOrderMapper.selectOrderItemsByOrderIds(orderIds);
+
+                    Map<Long, List<Map<String, Object>>> groupByOrderId = orderItemList.stream()
+                            .collect(Collectors.groupingBy(it -> Long.valueOf(it.get("order_id").toString())));
 
-                if (StringUtils.isNotEmpty(vo.getCountGoods())){
-                    JSONObject jsonInfo = JSONObject.parseObject(vo.getCountGoods());
-                    vo.setCountGoods(jsonInfo.getString("productName") + "*" + vo.getGoodsNum());
+                    for (FsStoreOrderErpExportVO vo : erpList) {
+                        List<Map<String, Object>> items = groupByOrderId.get(vo.getOrderId());
+
+                        if (items != null) {
+                            String goods = items.stream()
+                                    .map(item -> {
+                                        JSONObject jsonInfo = JSONObject.parseObject(item.get("json_info").toString());
+                                        return jsonInfo.getString("productName") + "*" + jsonInfo.getString("num");
+                                    })
+                                    .collect(Collectors.joining(","));
+                            vo.setCountGoods(goods);
+                        }
+                    }
                 }
             }
+
         }
 
         // 动态导出:根据选中的字段生成Excel

+ 2 - 0
fs-service/src/main/java/com/fs/system/mapper/SysUserMapper.java

@@ -132,4 +132,6 @@ public interface SysUserMapper
     public SysUser checkEmailUnique(String email);
 
     List<SysUser> selectUserByPhone(String phone);
+
+    int unBind(String userId);
 }

+ 2 - 0
fs-service/src/main/java/com/fs/system/service/ISysUserService.java

@@ -216,4 +216,6 @@ public interface ISysUserService
     int updateUserInfo(SysUser sysuser);
 
     List<SysUser> selectUserByPhone(String phone);
+
+    int unBind(String userId);
 }

+ 5 - 0
fs-service/src/main/java/com/fs/system/service/impl/SysUserServiceImpl.java

@@ -590,4 +590,9 @@ public class SysUserServiceImpl implements ISysUserService
     public List<SysUser> selectUserByPhone(String phone) {
         return userMapper.selectUserByPhone(phone);
     }
+
+    @Override
+    public int unBind(String userId) {
+        return userMapper.unBind(userId);
+    }
 }

+ 4 - 0
fs-service/src/main/resources/mapper/company/CompanyUserMapper.xml

@@ -725,6 +725,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </foreach>
     </update>
 
+    <update id="unBind">
+        update company_user set union_id=null where user_id=#{userId}
+    </update>
+
     <!-- 根据销售ID查询绑定的fs_user用户列表 -->
     <select id="selectBoundFsUsersByCompanyUserId" resultType="com.fs.hisStore.domain.FsUserScrm">
         SELECT *

+ 10 - 3
fs-service/src/main/resources/mapper/his/FsStoreOrderMapper.xml

@@ -1410,8 +1410,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         cu.nick_name AS company_user_nick_name,
         cts.name AS schedule_name,
         st.store_name,df.login_account as erp_account,
-        soi.json_info countGoods,
-        soi.num goodsNum,
         csc.name miniProgramName
         FROM fs_store_order so
         LEFT JOIN fs_store st ON so.store_id = st.store_id
@@ -1423,7 +1421,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         LEFT JOIN company_tcm_schedule cts ON cts.id = so.schedule_id
         LEFT JOIN fs_patient pat ON pat.patient_id = p.patient_id
         LEFT JOIN fs_store_order_df df on df.order_id=so.order_id
-        LEFT JOIN fs_store_order_item soi on soi.order_id=so.order_id
         LEFT JOIN (
         SELECT
         sp.*,
@@ -2159,4 +2156,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where is_del = 0 and status = 1 and NOW() &gt; DATE_ADD(create_time, INTERVAL ${unPayTime} MINUTE)
     </select>
 
+    <select id="selectOrderItemsByOrderIds" resultType="java.util.Map">
+        SELECT order_id, json_info, num
+        FROM fs_store_order_item
+        WHERE order_id IN
+        <foreach collection="orderIds" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </select>
+
+
 </mapper>

+ 5 - 1
fs-service/src/main/resources/mapper/system/SysUserMapper.xml

@@ -322,7 +322,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  		update sys_user set password = #{password} where user_name = #{userName}
 	</update>
 
-	<delete id="deleteUserById" parameterType="Long">
+    <update id="unBind">
+		update sys_user set union_id = null where user_id = #{userId}
+	</update>
+
+    <delete id="deleteUserById" parameterType="Long">
 		update sys_user set del_flag = '2' where user_id = #{userId}
  	</delete>