소스 검색

Merge remote-tracking branch 'origin/master'

yfh 3 주 전
부모
커밋
373b1d2995

+ 1 - 1
fs-admin/src/main/java/com/fs/qw/controller/QwSopTempController.java

@@ -134,7 +134,7 @@ public class QwSopTempController extends BaseController
         if(qwSopTemp.getSendType() == 11){
             //筛选选课程数据
             if(ObjectUtils.isNotNull(qwSopTemp.getTimeList()) && !qwSopTemp.getTimeList().isEmpty()){
-                qwSopTemp.setTimeList(new ArrayList<>(qwSopTemp.getTimeList().stream().filter(t->ObjectUtils.isNotNull(t) && !t.isEmpty()).collect(Collectors.toSet())));
+                qwSopTemp.setTimeList(new ArrayList<>(qwSopTemp.getTimeList().stream().filter(t->ObjectUtils.isNotNull(t) && !t.isEmpty()).collect(Collectors.toList())));
             }
             new Thread(() -> qwSopTempService.createSopTempRules(qwSopTemp)).start();
         }

+ 1 - 1
fs-company/src/main/java/com/fs/company/controller/qw/QwSopTempController.java

@@ -141,7 +141,7 @@ public class QwSopTempController extends BaseController
         if(qwSopTemp.getSendType() == 11){
             //筛选选课程数据
             if(ObjectUtils.isNotNull(qwSopTemp.getTimeList()) && !qwSopTemp.getTimeList().isEmpty()){
-                qwSopTemp.setTimeList(new ArrayList<>(qwSopTemp.getTimeList().stream().filter(t->ObjectUtils.isNotNull(t) && !t.isEmpty()).collect(Collectors.toSet())));
+                qwSopTemp.setTimeList(new ArrayList<>(qwSopTemp.getTimeList().stream().filter(t->ObjectUtils.isNotNull(t) && !t.isEmpty()).collect(Collectors.toList())));
             }
             new Thread(() -> qwSopTempService.createSopTempRules(qwSopTemp)).start();
         }

+ 15 - 7
fs-service/src/main/java/com/fs/course/service/impl/FsCourseProductOrderServiceImpl.java

@@ -33,6 +33,7 @@ import com.fs.his.param.FsCourseProductOrderDoPayParam;
 import com.fs.his.param.FsCourseProductOrderRefundParam;
 import com.fs.his.service.IFsStorePaymentService;
 import com.fs.his.service.IFsUserService;
+import com.fs.his.service.IFsUserWxService;
 import com.fs.his.utils.PhoneUtil;
 import com.fs.huifuPay.domain.HuiFuCreateOrder;
 import com.fs.huifuPay.domain.HuiFuRefundResult;
@@ -124,6 +125,9 @@ public class FsCourseProductOrderServiceImpl extends ServiceImpl<FsCourseProduct
 
     private static final int CODE_LENGTH = 12;
 
+    @Autowired
+    private IFsUserWxService userWxService;
+
 
     /**
      * 查询拍单商品订单
@@ -267,7 +271,9 @@ public class FsCourseProductOrderServiceImpl extends ServiceImpl<FsCourseProduct
             return R.error("订单状态不正确");
         }
         FsUser user = userService.selectFsUserByUserId(courseProductOrder.getUserId());
-        if (user != null && StringUtils.isNotEmpty(user.getMaOpenId())) {
+        FsUserWx fsUserWx = userWxService.selectByAppIdAndUserId(param.getAppId(), user.getUserId(), 1);
+        logger.info("用户微信信息==============={}",fsUserWx);
+        if (user != null && fsUserWx != null && StringUtils.isNotEmpty(fsUserWx.getOpenId())) {
             Map<String,Object> moneys= Maps.newHashMap();
             FsCourseProduct courseProduct = JSONUtil.toBean(courseProductOrder.getProductJson(), FsCourseProduct.class);
             moneys.put("payPrice",courseProduct.getProductPrice());
@@ -310,7 +316,9 @@ public class FsCourseProductOrderServiceImpl extends ServiceImpl<FsCourseProduct
         }
         FsUser user = userService.selectFsUserByUserId(param.getUserId());
         logger.info("用户信息==============={}",user);
-        if (user != null && StringUtils.isNotEmpty(user.getCourseMaOpenId())) {
+        FsUserWx fsUserWx = userWxService.selectByAppIdAndUserId(param.getAppId(), user.getUserId(), 1);
+        logger.info("用户微信信息==============={}",fsUserWx);
+        if (user != null && fsUserWx != null && StringUtils.isNotEmpty(fsUserWx.getOpenId())) {
             if (courseProduct.getProductPrice().compareTo(new BigDecimal(0))==1) {
                 String json = configService.selectConfigByKey("his.pay");
                 PayConfigDTO payConfigDTO = JSONUtil.toBean(json, PayConfigDTO.class);
@@ -330,7 +338,7 @@ public class FsCourseProductOrderServiceImpl extends ServiceImpl<FsCourseProduct
                 storePayment.setCompanyId(courseProductOrder.getCompanyId());
                 storePayment.setCompanyUserId(courseProductOrder.getCompanyUserId());
                 storePayment.setRemark("拍商品订单支付");
-                storePayment.setOpenId(user.getCourseMaOpenId());
+                storePayment.setOpenId(fsUserWx.getOpenId());
                 storePayment.setUserId(user.getUserId());
                 storePayment.setBusinessId(courseProductOrder.getCourseOrderId().toString());
                 if (storePaymentService.insertFsStorePayment(storePayment) > 0) {
@@ -348,7 +356,7 @@ public class FsCourseProductOrderServiceImpl extends ServiceImpl<FsCourseProduct
                         payConfig.setNotifyUrl(wxPayProperties.getNotifyUrl());
                         wxPayService.setConfig(payConfig);
                         WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest();
-                        orderRequest.setOpenid(user.getCourseMaOpenId());//公众号支付提供用户openid
+                        orderRequest.setOpenid(fsUserWx.getOpenId());//公众号支付提供用户openid
                         orderRequest.setBody("拍商品订单支付");
                         orderRequest.setOutTradeNo("product-" + storePayment.getPayCode());
                         orderRequest.setTotalFee(WxPayUnifiedOrderRequest.yuanToFen(storePayment.getPayMoney().toString()));//测试
@@ -370,7 +378,7 @@ public class FsCourseProductOrderServiceImpl extends ServiceImpl<FsCourseProduct
                         p.setLowOrderId("product-" + storePayment.getPayCode());
                         p.setBody("拍商品订单支付");
                         p.setIsMinipg("1");
-                        p.setOpenId(user.getCourseMaOpenId());
+                        p.setOpenId(fsUserWx.getOpenId());
                         p.setAttach("");
                         p.setStoreid("0");
                         CreateWxOrderResult wxOrder = payService.createWxOrder(p);
@@ -400,7 +408,7 @@ public class FsCourseProductOrderServiceImpl extends ServiceImpl<FsCourseProduct
                         }
                         o.setPayerName("微信用户"+phone);
                         o.setGoodsInfo("拍商品订单支付"); // 订单信息
-                        o.setOpenId(user.getCourseMaOpenId());
+                        o.setOpenId(fsUserWx.getOpenId());
                         o.setOrderType(3);
                         o.setOrderId(courseProductOrder.getCourseOrderId().toString());
                         TzBankResult<PayCreateOrderResult> result = tzBankService.createOrder(o);
@@ -413,7 +421,7 @@ public class FsCourseProductOrderServiceImpl extends ServiceImpl<FsCourseProduct
                         logger.info("创建汇付订单");
                         HuiFuCreateOrder o = new HuiFuCreateOrder();
                         o.setTradeType("T_MINIAPP");
-                        o.setOpenid(user.getCourseMaOpenId());
+                        o.setOpenid(fsUserWx.getOpenId());
                         o.setReqSeqId("product-"+storePayment.getPayCode());
                         o.setTransAmt(storePayment.getPayMoney().toString());
                         o.setGoodsDesc("拍商品订单支付");

+ 14 - 0
fs-service/src/main/java/com/fs/fastGpt/service/impl/AiHookServiceImpl.java

@@ -1831,6 +1831,20 @@ public class AiHookServiceImpl implements AiHookService {
                     }
                 }
             }
+            // 客服进行回复后就转人工10分钟
+            if(fastGptChatSession != null){
+                Calendar calendar = Calendar.getInstance();
+                //定时任务会处理10分钟以内的,所以设置20分钟
+                calendar.add(Calendar.MINUTE, 30);
+                Date expireTime = calendar.getTime();
+
+                FastGptChatSession chatSession = new FastGptChatSession();
+                chatSession.setLastTime(expireTime);
+                chatSession.setIsArtificial(1);
+                chatSession.setSessionId(fastGptChatSession.getSessionId());
+
+                fastGptChatSessionMapper.updateFastGptChatSession(chatSession);
+            }
         }
         return R.ok();
     }

+ 3 - 2
fs-service/src/main/java/com/fs/his/mapper/FsUserMapper.java

@@ -80,8 +80,9 @@ public interface FsUserMapper
     public int deleteFsUserByUserIds(Long[] userIds);
     @Select({"<script> " +
                 "select f1.*,f2.nick_name tui_name,f2.phone tui_phone,cu.nick_name AS companyUserNickName,co.company_name FROM fs_user f1 LEFT JOIN fs_user f2 ON f1.tui_user_id =f2.user_id "+
-            " LEFT JOIN company_user cu ON cu.user_id = f1.company_user_id"+
-            " LEFT JOIN company co on co.company_id = f1.company_id"+
+            " LEFT JOIN fs_user_company_user cuc ON cuc.user_id = f1.user_id\n" +
+            " LEFT JOIN company_user cu ON cu.user_id = cuc.company_user_id\n" +
+            " LEFT JOIN company co ON co.company_id = cuc.company_id "+
             " where f1.is_del=0 "+
             "  <if test=\"nickName != null  and nickName != ''\"> and f1.nick_name like concat( #{nickName}, '%')</if>\n" +
             "            <if test=\"avatar != null  and avatar != ''\"> and f1.avatar = #{avatar}</if>\n" +

+ 2 - 0
fs-service/src/main/java/com/fs/his/param/FsCourseProductOrderComputeParam.java

@@ -8,4 +8,6 @@ public class FsCourseProductOrderComputeParam {
     private Long userId;
 
     private Long orderId;
+
+    private String appId;
 }

+ 2 - 0
fs-service/src/main/java/com/fs/his/param/FsCourseProductOrderDoPayParam.java

@@ -11,4 +11,6 @@ public class FsCourseProductOrderDoPayParam {
     private Long orderId;
 
     private Long userId;
+
+    private String appId;
 }

+ 1 - 1
fs-service/src/main/java/com/fs/qw/mapper/QwExternalContactMapper.java

@@ -280,7 +280,7 @@ public interface QwExternalContactMapper extends BaseMapper<QwExternalContact> {
                 "and (cu.nick_name like concat('%', #{companyUser}, '%') or cu.phonenumber= #{companyUser})"+
             "</if> " +
             "        </where>"+
-            "order by ec.register_time desc,ec.create_time desc,ec.id desc"+
+            "order by ec.create_time desc,ec.id desc"+
             "</script>"})
     List<QwExternalContactVO> selectQwExternalContactListVO(QwExternalContactParam qwExternalContact);
 

+ 1 - 1
fs-service/src/main/resources/application-config-druid-hcl.yml

@@ -85,7 +85,7 @@ cloud_host:
   company_name: 恒春来
 #看课授权时显示的头像
 headerImg:
-  imgUrl: http://hcl-1b2b.obs.cn-south-1.myhuaweicloud.com/fs/20250808/1754640068227.png
+  imgUrl: http://hcl-1b2b.obs.cn-south-1.myhuaweicloud.com/fs/20250815/1755228988455.png
 ipad:
   ipadUrl: http://ipad.cdwjyyh.com
   aiApi:

+ 2 - 2
fs-service/src/main/resources/application-config-druid-hzyy.yml

@@ -60,8 +60,8 @@ watch:
   password3: v9xsKuqn_$d2y
 
 fs :
-  commonApi: http://172.16.0.16:8010
-  h5CommonApi: http://119.29.195.254:8010
+  commonApi: http://127.0.0.1:7771
+  h5CommonApi: http://127.0.0.1:7771
 nuonuo:
   key: 10924508
   secret: A2EB20764D304D16

+ 11 - 23
fs-user-app/src/main/java/com/fs/app/controller/WxH5MpController.java

@@ -253,6 +253,8 @@ public class WxH5MpController {
         return R.ok(result);
     }
 
+
+
     @ApiOperation("处理用户与小程序的绑定")
     @PostMapping("/handleFsUserWx")
     public R handleFsUserWx(@RequestBody FsUserLoginByMpParam param) {
@@ -274,29 +276,15 @@ public class WxH5MpController {
     }
     private void handleFsUserWx(FsUser user, FsUserLoginByMpParam param, WxMaJscode2SessionResult session) {
         if (user == null) return;
-        // 尝试更新
-        boolean updated = fsUserWxService.lambdaUpdate()
-                .eq(FsUserWx::getFsUserId, user.getUserId())
-                .eq(FsUserWx::getAppId, param.getAppId())
-                .eq(FsUserWx::getOpenId, session.getOpenid())
-//                .set(FsUserWx::getCompanyId, user.getCompanyId())
-                .set(FsUserWx::getUnionId, session.getUnionid() == null ? "" : session.getUnionid())
-                .set(FsUserWx::getUpdateTime, new Date())
-                .update();
-
-        // 如果更新失败(记录不存在),则插入
-        if (!updated) {
-            FsUserWx fsUserWx = new FsUserWx();
-            fsUserWx.setType(1);
-            fsUserWx.setFsUserId(user.getUserId());
-//            fsUserWx.setCompanyId(user.getCompanyId());
-            fsUserWx.setAppId(param.getAppId());
-            fsUserWx.setOpenId(session.getOpenid());
-            fsUserWx.setUnionId(session.getUnionid() == null ? "" : session.getUnionid());
-            fsUserWx.setCreateTime(new Date());
-            fsUserWx.setUpdateTime(new Date());
-            fsUserWxService.save(fsUserWx);
-        }
+        FsUserWx fsUserWx = new FsUserWx();
+        fsUserWx.setType(1);
+        fsUserWx.setFsUserId(user.getUserId());
+        fsUserWx.setAppId(param.getAppId());
+        fsUserWx.setOpenId(session.getOpenid());
+        fsUserWx.setUnionId(session.getUnionid() != null ? session.getUnionid() : null);
+        fsUserWx.setCreateTime(new Date());
+        fsUserWx.setUpdateTime(new Date());
+        fsUserWxService.saveOrUpdateByUniqueKey(fsUserWx);
     }
 
 }

+ 9 - 24
fs-user-app/src/main/java/com/fs/app/controller/course/CourseFsUserLoginController.java

@@ -224,30 +224,15 @@ public class CourseFsUserLoginController extends AppBaseController {
      * 处理用户与小程序的绑定
      */
     private void handleFsUserWx(FsUser user, LoginMaWxParam param, WxMaJscode2SessionResult session) {
-        if (user == null) return;
-        // 尝试更新
-        boolean updated = fsUserWxService.lambdaUpdate()
-                .eq(FsUserWx::getFsUserId, user.getUserId())
-                .eq(FsUserWx::getAppId, param.getAppId())
-                .eq(FsUserWx::getOpenId, session.getOpenid())
-                .set(FsUserWx::getCompanyId, param.getCompanyId())
-                .set(FsUserWx::getUnionId, session.getUnionid() == null ? "" : session.getUnionid())
-                .set(FsUserWx::getUpdateTime, new Date())
-                .update();
-
-        // 如果更新失败(记录不存在),则插入
-        if (!updated) {
-            FsUserWx fsUserWx = new FsUserWx();
-            fsUserWx.setType(1);
-            fsUserWx.setFsUserId(user.getUserId());
-            fsUserWx.setCompanyId(param.getCompanyId());
-            fsUserWx.setAppId(param.getAppId());
-            fsUserWx.setOpenId(session.getOpenid());
-            fsUserWx.setUnionId(session.getUnionid() == null ? "" : session.getUnionid());
-            fsUserWx.setCreateTime(new Date());
-            fsUserWx.setUpdateTime(new Date());
-            fsUserWxService.save(fsUserWx);
-        }
+        FsUserWx fsUserWx = new FsUserWx();
+        fsUserWx.setType(1);
+        fsUserWx.setFsUserId(user.getUserId());
+        fsUserWx.setAppId(param.getAppId());
+        fsUserWx.setOpenId(session.getOpenid());
+        fsUserWx.setUnionId(session.getUnionid() != null ? session.getUnionid() : null);
+        fsUserWx.setCreateTime(new Date());
+        fsUserWx.setUpdateTime(new Date());
+        fsUserWxService.saveOrUpdateByUniqueKey(fsUserWx);
     }
 
 }

+ 9 - 22
fs-user-app/src/main/java/com/fs/app/controller/course/CourseQwLoginController.java

@@ -157,28 +157,15 @@ public class CourseQwLoginController extends AppBaseController {
      * 处理用户与小程序的绑定
      */
     private void handleFsUserWx(FsUser user, LoginParam param,WxMaJscode2SessionResult session) {
-        if (user == null) return;
-        // 尝试更新
-        boolean updated = fsUserWxService.lambdaUpdate()
-                .eq(FsUserWx::getFsUserId, user.getUserId())
-                .eq(FsUserWx::getAppId, param.getAppId())
-                .eq(FsUserWx::getOpenId, session.getOpenid())
-                .set(FsUserWx::getUnionId, session.getUnionid() == null ? "" : session.getUnionid())
-                .set(FsUserWx::getUpdateTime, new Date())
-                .update();
-
-        // 如果更新失败(记录不存在),则插入
-        if (!updated) {
-            FsUserWx fsUserWx = new FsUserWx();
-            fsUserWx.setType(1);
-            fsUserWx.setFsUserId(user.getUserId());
-            fsUserWx.setAppId(param.getAppId());
-            fsUserWx.setOpenId(session.getOpenid());
-            fsUserWx.setUnionId(session.getUnionid() == null ? "" : session.getUnionid());
-            fsUserWx.setCreateTime(new Date());
-            fsUserWx.setUpdateTime(new Date());
-            fsUserWxService.save(fsUserWx);
-        }
+        FsUserWx fsUserWx = new FsUserWx();
+        fsUserWx.setType(1);
+        fsUserWx.setFsUserId(user.getUserId());
+        fsUserWx.setAppId(param.getAppId());
+        fsUserWx.setOpenId(session.getOpenid());
+        fsUserWx.setUnionId(session.getUnionid() != null ? session.getUnionid() : null);
+        fsUserWx.setCreateTime(new Date());
+        fsUserWx.setUpdateTime(new Date());
+        fsUserWxService.saveOrUpdateByUniqueKey(fsUserWx);
         logger.info("zyp \n 【更新或插入用户与小程序{}的绑定关系】:{}", param.getAppId(), user.getUserId());
 
     }