|  | @@ -9,6 +9,7 @@ import java.util.*;
 | 
	
		
			
				|  |  |  import java.util.function.Function;
 | 
	
		
			
				|  |  |  import java.util.stream.Collectors;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
 | 
	
		
			
				|  |  |  import cn.hutool.json.JSONUtil;
 | 
	
		
			
				|  |  |  import com.baomidou.mybatisplus.core.conditions.Wrapper;
 | 
	
		
			
				|  |  |  import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 | 
	
	
		
			
				|  | @@ -18,6 +19,7 @@ import com.fs.common.core.domain.R;
 | 
	
		
			
				|  |  |  import com.fs.common.core.domain.ResponseResult;
 | 
	
		
			
				|  |  |  import com.fs.common.core.domain.entity.SysDictData;
 | 
	
		
			
				|  |  |  import com.fs.common.core.page.TableDataInfo;
 | 
	
		
			
				|  |  | +import com.fs.common.param.LoginMaWxParam;
 | 
	
		
			
				|  |  |  import com.fs.common.utils.DateUtils;
 | 
	
		
			
				|  |  |  import com.fs.common.utils.DictUtils;
 | 
	
		
			
				|  |  |  import com.fs.common.utils.ParseUtils;
 | 
	
	
		
			
				|  | @@ -48,12 +50,14 @@ import com.fs.his.param.FsUserAddIntegralTemplateParam;
 | 
	
		
			
				|  |  |  import com.fs.his.param.FsUserParam;
 | 
	
		
			
				|  |  |  import com.fs.his.service.IFsUserIntegralLogsService;
 | 
	
		
			
				|  |  |  import com.fs.his.service.IFsUserProjectTagService;
 | 
	
		
			
				|  |  | +import com.fs.his.service.IFsUserWxService;
 | 
	
		
			
				|  |  |  import com.fs.his.vo.FsUserVO;
 | 
	
		
			
				|  |  |  import com.fs.his.vo.FsUserExportListVO;
 | 
	
		
			
				|  |  |  import com.fs.his.vo.FsUserFollowDoctorVO;
 | 
	
		
			
				|  |  |  import com.fs.his.vo.UserVo;
 | 
	
		
			
				|  |  |  import com.fs.hisStore.domain.FsStoreOrderScrm;
 | 
	
		
			
				|  |  |  import com.fs.hisStore.domain.FsUserBillScrm;
 | 
	
		
			
				|  |  | +import com.fs.hisStore.domain.FsUserScrm;
 | 
	
		
			
				|  |  |  import com.fs.hisStore.enums.BillDetailEnum;
 | 
	
		
			
				|  |  |  import com.fs.hisStore.mapper.FsStoreOrderScrmMapper;
 | 
	
		
			
				|  |  |  import com.fs.hisStore.service.IFsUserBillScrmService;
 | 
	
	
		
			
				|  | @@ -162,6 +166,9 @@ public class FsUserServiceImpl implements IFsUserService
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private FsStoreOrderScrmMapper storeOrderMapper;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private IFsUserWxService fsUserWxService;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  |       * 查询用户
 | 
	
	
		
			
				|  | @@ -1235,4 +1242,32 @@ public class FsUserServiceImpl implements IFsUserService
 | 
	
		
			
				|  |  |          return fsUserMapper.selectFsUserListLimit(fsUser);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    @Override
 | 
	
		
			
				|  |  | +    public 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);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  }
 |