浏览代码

Merge remote-tracking branch 'origin/master'

吴树波 1 天之前
父节点
当前提交
6d9c24e6ce

+ 12 - 1
fs-admin/src/main/java/com/fs/his/controller/FsIntegralOrderController.java

@@ -1,6 +1,7 @@
 package com.fs.his.controller;
 
 import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSONObject;
 import com.fs.common.annotation.Log;
 import com.fs.common.core.controller.BaseController;
 import com.fs.common.core.domain.AjaxResult;
@@ -16,6 +17,7 @@ import com.fs.his.enums.ShipperCodeEnum;
 import com.fs.his.param.FsIntegralOrderParam;
 import com.fs.his.service.IFsExpressService;
 import com.fs.his.service.IFsIntegralOrderService;
+import com.fs.his.utils.PhoneUtil;
 import com.fs.his.vo.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -66,8 +68,17 @@ public class FsIntegralOrderController extends BaseController
     {
         List<FsIntegralOrder> list = fsIntegralOrderService.selectFsIntegralOrderList(fsIntegralOrder);
         for (FsIntegralOrder vo : list) {
+            //商品名称以及原价赋值
+            String itemJson = vo.getItemJson();
+            if(StringUtils.isNotBlank(itemJson)){
+                JSONObject jsonObject = JSONObject.parseObject(itemJson);
+                vo.setGoodsName(jsonObject.getString("goodsName"));
+                vo.setOtPrice(jsonObject.getBigDecimal("otPrice"));
+            }
             if (vo.getUserPhone()!=null&&!vo.getUserPhone().equals("")){
-                vo.setUserPhone(vo.getUserPhone().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2"));
+                if(vo.getUserPhone().chars().allMatch(Character::isDigit)){continue;}
+//                vo.setUserPhone(vo.getUserPhone().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2"));
+                vo.setUserPhone(PhoneUtil.decryptPhone(vo.getUserPhone()));
             }
         }
         ExcelUtil<FsIntegralOrder> util = new ExcelUtil<FsIntegralOrder>(FsIntegralOrder.class);

+ 6 - 13
fs-qw-task/src/main/java/com/fs/app/controller/CommonController.java

@@ -19,6 +19,7 @@ import com.fs.sop.mapper.QwSopLogsMapper;
 import com.fs.sop.mapper.QwSopMapper;
 import com.fs.sop.mapper.SopUserLogsMapper;
 import com.fs.sop.service.*;
+import com.fs.sop.vo.ExtCourseSopWatchLogVO;
 import com.fs.sop.vo.QwSopLogsDoSendListTVO;
 import com.fs.store.service.IFsUserCourseCountService;
 import io.swagger.annotations.Api;
@@ -89,6 +90,9 @@ public class CommonController {
     @Autowired
     private IFsUserCourseCountService userCourseCountService;
 
+    @Autowired
+    private ISopUserLogsInfoService iSopUserLogsInfoService;
+
 
     /**
     * 发官方通连
@@ -129,19 +133,8 @@ public class CommonController {
     @GetMapping("/testSop")
     public R testSop() throws Exception {
 
-//        iSopUserLogsService.repairSopUserLogsTimer();
-//        List<QwSopLogsDoSendListTVO> expireded = iQwSopLogsService.expiredMessagesByQwSopLogs();
-//        if (!expireded.isEmpty()) {
-//            processAndInsertQwSopLogs(expireded);
-//        }
-//
-//        // 将标签字符串解析为 List    //客户总标签
-//        List<String> tagIdsList = new ArrayList<>();
-//        tagIdsList.add("etW3ylWQAAcHQ4wJdAOMMZRfQnn3Sp2w");
-//        tagIdsList.add("etW3ylWQAAdRYbwUx0P1kkL7695Vxn3g");
-//        tagIdsList.add("etW3ylWQAAZyu1C9XwtKNaCLJDE8PlBQ");
-
-        return R.ok();
+        List<ExtCourseSopWatchLogVO> tagList = iSopUserLogsInfoService.getExtCourseSopWatchLog(14185L);
+        return R.ok().put("data",tagList);
     }
 
     @GetMapping("/testRatingSop")

+ 1 - 0
fs-service/src/main/java/com/fs/common/param/LoginParam.java

@@ -13,4 +13,5 @@ public class LoginParam implements Serializable {
     private String iv;
     private String rawData;
     private String signature;
+    private String appId;
 }

+ 7 - 0
fs-service/src/main/java/com/fs/his/config/FsSysConfig.java

@@ -38,6 +38,13 @@ public class FsSysConfig {
     String erpHzOMSItenantid;
     String erpHzOMTokenUrl;
     String erpHzOMBaseUrl;
+    //erp 聚水潭
+    String erpJstAppKey;
+    String erpJstAppsecret;
+    String erpJstSid;
+    String erpJstShopCode;
+    String erpJstBaseUrl;
+    String erpJstrehouseCode;
     //非erp 代服管家(多个账号) List<DFConfigVo>
     String dfAccounts;
 

+ 8 - 17
fs-service/src/main/java/com/fs/his/domain/FsIntegralOrder.java

@@ -5,6 +5,7 @@ import com.fs.common.annotation.Excel;
 import com.fs.common.core.domain.BaseEntity;
 import lombok.Data;
 
+import java.math.BigDecimal;
 import java.util.Date;
 
 /**
@@ -45,6 +46,12 @@ public class FsIntegralOrder extends BaseEntity
     @Excel(name = "商品信息")
     private String itemJson;
 
+    @Excel(name = "商品名称")
+    private String goodsName;
+
+    @Excel(name = "原价")
+    private BigDecimal otPrice;
+
     /** 支付积分 */
     @Excel(name = "支付积分")
     private String integral;
@@ -71,21 +78,5 @@ public class FsIntegralOrder extends BaseEntity
     @Excel(name = "发货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date deliveryTime;
 
-    /**
-     * 企业微信ID
-     * **/
-    @Excel(name = "企业微信ID")
-    private Long qwUserId;
-
-    /**
-     * 销售ID
-     * **/
-    @Excel(name = "销售ID")
-    private Long companyUserId;
-
-    /**
-     * 销售公司ID
-     * **/
-    @Excel(name = "销售公司ID")
-    private Long companyId;
+
 }

+ 5 - 0
fs-service/src/main/java/com/fs/his/mapper/FsUserMapper.java

@@ -108,6 +108,11 @@ public interface FsUserMapper
 
     @Select("select * from fs_user where mp_open_id=#{openId}")
     FsUser selectFsUserByOpenId(String openId);
+
+    @Select("select * from fs_user where course_ma_open_id=#{openId}")
+    FsUser selectFsUserByCourseOpenId(String openId);
+
+
     @Select("select * from fs_user where phone=#{phone}")
     FsUser selectFsUserByPhone(String phone);
 

+ 1 - 0
fs-service/src/main/java/com/fs/his/service/IFsUserService.java

@@ -86,6 +86,7 @@ public interface IFsUserService
     List<FsUserVO> selectFsUserListVO(FsUserParam fsUser);
 
     FsUser selectFsUserByOpenId(String openId);
+    FsUser selectFsUserByCourseOpenId(String openId);
 
 
     FsUser selectFsUserByCourseMaOpenId(String openId);

+ 8 - 0
fs-service/src/main/java/com/fs/his/service/impl/FsStoreAfterSalesServiceImpl.java

@@ -108,6 +108,10 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService {
     @Qualifier("wdtErpOrderServiceImpl")
     private IErpOrderService wdtErpOrderService;
 
+    @Autowired
+    @Qualifier("JSTErpOrderServiceImpl")
+    private IErpOrderService jSTOrderService;
+
     @Autowired
     private FsStorePaymentMapper fsStorePaymentMapper;
     @Autowired
@@ -553,6 +557,8 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService {
                         hzOMSerpOrderService.refundUpdate(request);
                     }  else if (erpType == 4) {
                         dfOrderService.refundUpdate(request);
+                    }else if(erpType == 5){
+                        jSTOrderService.refundUpdate(request);
                     }
                 }
             }
@@ -715,6 +721,8 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService {
                 response =  hzOMSerpOrderService.refundUpdate(request);
             } else if (erpType == 4) {
                 response =  dfOrderService.refundUpdate(request);
+            }else if(erpType == 5){
+                response=jSTOrderService.refundUpdate(request);
             }
             if (response.getSuccess()) {
                 return R.ok();

+ 17 - 2
fs-service/src/main/java/com/fs/his/service/impl/FsStoreOrderServiceImpl.java

@@ -199,6 +199,10 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
     @Qualifier("dfOrderServiceImpl")
     private IErpOrderService dfOrderService;
 
+    @Autowired
+    @Qualifier("JSTErpOrderServiceImpl")
+    private IErpOrderService jSTOrderService;
+
     @Autowired
     private IFsStoreAfterSalesService fsStoreAfterSalesService;
     @Autowired
@@ -1544,6 +1548,8 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                 } else if (erpType == 4) {
                     //瀚智
                     erpOrderService = dfOrderService;
+                }else if(erpType == 5){
+                    erpOrderService=jSTOrderService;
                 }
                 if (erpOrderService != null && StringUtils.isNotEmpty(order.getExtendOrderId())) {
                     if (!order.getExtendOrderId().equals("HIS")) {
@@ -1601,8 +1607,11 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             erpOrderService = hzOMSOrderService;
         } else if (erpType == 4) {
             //代服
-            erpOrderService = dfOrderService;
-        } else {
+            erpOrderService =  dfOrderService;
+        } else if (erpType == 5){
+            //聚水潭
+            erpOrderService =  jSTOrderService;
+        }else {
             return;
         }
         FsStoreOrder order = fsStoreOrderMapper.selectFsStoreOrderByOrderId(orderId);
@@ -1932,6 +1941,9 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                     erpOrderService = hzOMSOrderService;
                 } else if (erpType == 4) {
                     erpOrderService = dfOrderService;
+                }else if (erpType == 5){
+                    //聚水潭
+                    erpOrderService =  jSTOrderService;
                 }
                 ErpOrderQueryResponse response = erpOrderService.getOrder(request);
                 if (response.getOrders() != null && response.getOrders().size() > 0) {
@@ -3325,6 +3337,9 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                 } else if (erpType == 4) {
                     //代服
                     erpOrderService = dfOrderService;
+                }else if (erpType == 5){
+                    //聚水潭
+                    erpOrderService =  jSTOrderService;
                 }
                 return erpOrderService;
 

+ 5 - 0
fs-service/src/main/java/com/fs/his/service/impl/FsUserServiceImpl.java

@@ -227,6 +227,11 @@ public class FsUserServiceImpl implements IFsUserService
         return fsUserMapper.selectFsUserByOpenId(openId);
     }
 
+    @Override
+    public FsUser selectFsUserByCourseOpenId(String openId) {
+        return fsUserMapper.selectFsUserByCourseOpenId(openId);
+    }
+
     @Override
     public FsUser selectFsUserByCourseMaOpenId(String openId) {
         return fsUserMapper.selectFsUserByCourseMaOpenId(openId);

+ 4 - 4
fs-service/src/main/resources/application-config-druid-kyt.yml

@@ -28,13 +28,13 @@ wx:
         token: PPKOdAlMO
         aesKey: PKvaxtpSvNGpfT7VUHIK8Wok2ESyYX24qpXJAdMP
   pay:
-    appId: wx73f858d6119 #微信公众号或者小程序等的appid
-    mchId: 161145 #微信支付商户号
-    mchKey: 8cab18997a3547c10898b877f38 #微信支付商户密钥
+    appId: wx034403a0b275a492 #微信公众号或者小程序等的appid
+    mchId: 1722734247 #微信支付商户号
+    mchKey: KUANYITANGDAYAOFANGkuanyitangday #微信支付商户密钥
     subAppId:  #服务商模式下的子商户公众账号ID
     subMchId:  #服务商模式下的子商户号
     keyPath: c:\\cert\\apiclient_cert.p12 # p12证书的位置,可以指定绝对路径,也可以指定类路径(以classpath:开头)
-    notifyUrl: https://usepp.his.runtzh.com/app/wxpay/wxPayNotify
+    notifyUrl: https://userappkyt.ylrzcloud.com/app/wxpay/wxPayNotify
   mp:
     useRedis: false
     redisConfig:

+ 117 - 0
fs-user-app/src/main/java/com/fs/app/controller/WxUserController.java

@@ -25,6 +25,7 @@ import com.fs.his.service.IFsUserWxService;
 import com.fs.his.utils.ConfigUtil;
 import com.fs.system.domain.SysConfig;
 import com.fs.system.mapper.SysConfigMapper;
+import io.netty.util.internal.StringUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.Synchronized;
@@ -187,6 +188,122 @@ public class WxUserController extends AppBaseController{
         }
     }
 
+
+
+    /**
+     * 看课互医小程序登陆接口
+     */
+    @ApiOperation("看课互医小程序登陆接口")
+    @PostMapping("/loginCourseHis")
+    @Transactional
+    public R loginCourseHis( @RequestBody LoginParam param) {
+
+        if (StringUtils.isBlank(param.getCode())) {
+            return R.error("code不存在");
+        }
+
+        String appid="";
+
+        if(!StringUtil.isNullOrEmpty(param.getAppId())){
+            appid=param.getAppId();
+        }else {
+            FsSysConfig con = configUtil.getSysConfig();
+            appid = con.getAppid();
+        }
+
+//        final WxMaService wxService = WxMaConfiguration.getMaService(con.getAppid());
+        final WxMaService wxService = WxMaConfiguration.getMaService(appid);
+        try {
+            WxMaJscode2SessionResult session = wxService.getUserService().getSessionInfo(param.getCode());
+            this.logger.info(session.getSessionKey());
+            this.logger.info(session.getOpenid());
+            // 解密
+            WxMaPhoneNumberInfo phoneNoInfo = wxService.getUserService().getPhoneNoInfo(session.getSessionKey(), param.getEncryptedData(), param.getIv());
+            //三端用户同步,先用unionid查询
+            FsUser user = new FsUser();
+            if (session.getUnionid()!=null){
+                user = userService.selectFsUserByUnionid(session.getUnionid());
+                if (user==null){
+                    user = userService.selectFsUserByCourseOpenId(session.getOpenid());
+                }
+            }else {
+                user = userService.selectFsUserByCourseOpenId(session.getOpenid());
+            }
+
+            if(user==null){
+                //新用户
+                String phoneNumber = phoneNoInfo.getPhoneNumber();
+
+
+                //查询手机号是否存在,如果存在,更新
+                FsUser checkPhone=userService.selectFsUserByPhone(encryptPhone(phoneNumber));
+                if (checkPhone==null){
+                    checkPhone=userService.selectFsUserByPhone(phoneNumber);
+                }
+                if(checkPhone!=null){
+                    user=checkPhone;
+                    FsUser userMap=new FsUser();
+                    userMap.setCourseMaOpenId(session.getOpenid());
+                    userMap.setUserId(checkPhone.getUserId());
+                    userMap.setUpdateTime(new DateTime());
+                    if(session.getUnionid()!=null){
+                        userMap.setUnionId(session.getUnionid());
+                    }
+                    userService.updateFsUser(userMap);
+                }
+                else{
+                    //写入
+                    user=new FsUser();
+                    user.setPhone(phoneNoInfo.getPhoneNumber());
+                    user.setNickName("微信用户"+phoneNoInfo.getPhoneNumber().substring(phoneNoInfo.getPhoneNumber().length()-4));
+                    user.setAvatar("https://hos-1309931967.cos.ap-chongqing.myqcloud.com/fs/20230725/a848605591384ec29d49773dd58d9345.jpg");
+                    user.setStatus(1);
+                    user.setCourseMaOpenId(session.getOpenid());
+                    user.setCreateTime(new Date());
+                    if(session.getUnionid()!=null){
+                        user.setUnionId(session.getUnionid());
+                    }
+                    userService.insertFsUser(user);
+                }
+            }
+            else{
+                if(user.getStatus().equals(0)){
+
+                    return R.error("此会员已禁用");
+                }
+                FsUser userMap=new FsUser();
+                userMap.setUserId(user.getUserId());
+                if(session.getUnionid()!=null){
+                    userMap.setUnionId(session.getUnionid());
+                }
+                userMap.setCourseMaOpenId(session.getOpenid());
+                userMap.setPhone(phoneNoInfo.getPhoneNumber());
+                userMap.setUpdateTime(new DateTime());
+                userService.updateFsUser(userMap);
+            }
+            String token = jwtUtils.generateToken(user.getUserId());
+//            redisCache.setCacheObject("token:"+user.getUserId(),token,365, TimeUnit.DAYS);
+            Map<String,Object> map=new HashMap<>();
+            map.put("token",token);
+            user.setPhone(encryptPhone(phoneNoInfo.getPhoneNumber()));
+            map.put("user",user);
+            FsUserLoginLog log = new FsUserLoginLog();
+            log.setCode(param.getCode());
+            log.setLoginJson(JSON.toJSONString(param));
+//            log.setUserRegisterJson(JSON.toJSONString(jsonMap));
+            log.setStatus(1);
+            log.setUserId(user.getUserId());
+            log.setPhone(user.getPhone());
+            log.setMaOpenId(user.getMaOpenId());
+            log.setCreateTime(DateUtils.getNowDate());
+            fsUserLoginLogMapper.insertFsUserLoginLog(log);
+            return R.ok(map);
+        } catch (WxErrorException e) {
+            //this.logger.error(e.getMessage(), e);
+            return R.error("授权失败,"+e.getMessage());
+        }
+    }
+
     @ApiOperation("小程序看课登录")
     @PostMapping("/courseLogin")
     @Transactional