|
|
@@ -59,6 +59,10 @@ import com.zhongzheng.modules.grade.service.IClassGradeUserService;
|
|
|
import com.zhongzheng.modules.grade.service.impl.ClassGradeServiceImpl;
|
|
|
import com.zhongzheng.modules.grade.vo.ClassGradeUserGoodsVo;
|
|
|
import com.zhongzheng.modules.mock.service.IMockApplyService;
|
|
|
+import com.zhongzheng.modules.order.domain.Order;
|
|
|
+import com.zhongzheng.modules.order.domain.OrderGoods;
|
|
|
+import com.zhongzheng.modules.order.service.IOrderGoodsService;
|
|
|
+import com.zhongzheng.modules.order.service.IOrderService;
|
|
|
import com.zhongzheng.modules.order.vo.OrderListVo;
|
|
|
import com.zhongzheng.modules.system.domain.SysTask;
|
|
|
import com.zhongzheng.modules.system.domain.SysTenant;
|
|
|
@@ -192,6 +196,10 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
|
|
|
private ICourseProjectTypeService iCourseProjectTypeService;
|
|
|
@Autowired
|
|
|
private ICourseBusinessService iCourseBusinessService;
|
|
|
+ @Autowired
|
|
|
+ private IOrderService iOrderService;
|
|
|
+ @Autowired
|
|
|
+ private IOrderGoodsService iOrderGoodsService;
|
|
|
@Value("${liveGotoURL}")
|
|
|
private String liveGotoURL;
|
|
|
@Value("${oldSys.goods}")
|
|
|
@@ -2566,6 +2574,111 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
|
|
|
return map;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public User queryByOpenId(String openId) {
|
|
|
+ return baseMapper.queryByOpenId(openId);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> liveAccount_login(ActivityExamApplyBo bo) {
|
|
|
+ if(Validator.isEmpty(bo.getUserCard())){
|
|
|
+ throw new CustomException("账号不能为空");
|
|
|
+ }
|
|
|
+ //根据身份证查询账号
|
|
|
+ User user = getOne(new LambdaQueryWrapper<User>()
|
|
|
+ .eq(User::getIdCard, EncryptHandler.encrypt(bo.getUserCard())).eq(User::getStatus, 1).last("limit 1"));
|
|
|
+ if (ObjectUtils.isNull(user)){
|
|
|
+ //新增
|
|
|
+ //检测手机号是否重复
|
|
|
+ User user1 = getOne(new LambdaQueryWrapper<User>()
|
|
|
+ .eq(User::getTelphone, EncryptHandler.encrypt(bo.getUserPhone())).eq(User::getStatus, 1).last("limit 1"));
|
|
|
+ if (ObjectUtils.isNotNull(user1)){
|
|
|
+ //手机号码重复
|
|
|
+ bo.setUserPhone(TelPhoneUtils.createMobile());
|
|
|
+ }
|
|
|
+ User inertData = new User();
|
|
|
+ inertData.setTelphone(bo.getUserPhone());
|
|
|
+ //隐藏手机号作为初始昵称
|
|
|
+ inertData.setNickname(TelPhoneUtils.hideTelPhone(bo.getUserPhone(),1));
|
|
|
+ //雪花算法产生账号ID
|
|
|
+ SnowflakeIdUtils idWorker = new SnowflakeIdUtils(3, 1);
|
|
|
+ inertData.setUserAccount(String.valueOf(idWorker.nextId()));
|
|
|
+ inertData.setSex(1);
|
|
|
+ inertData.setEduLevel("本科");
|
|
|
+ inertData.setSex(getGenderByIdCard(bo.getUserCard()));
|
|
|
+ inertData.setIdCard(bo.getUserCard());
|
|
|
+ inertData.setRealname(bo.getUserName());
|
|
|
+ inertData.setStatus(1);
|
|
|
+ inertData.setRegisterPlat("6");
|
|
|
+ inertData.setAvatar(Constants.DEFAULT_AVATAR);
|
|
|
+ inertData.setLastLoginIp(IpUtils.getIpAddr(ServletUtils.getRequest()));
|
|
|
+ inertData.setLastLoginTime(DateUtils.getNowTime());
|
|
|
+ inertData.setCreateTime(DateUtils.getNowTime());
|
|
|
+ inertData.setUpdateTime(DateUtils.getNowTime());
|
|
|
+ String pwd = "";
|
|
|
+ if (ObjectUtils.isNotNull(bo.getUserCard())){
|
|
|
+ pwd = bo.getUserCard().substring(bo.getUserCard().length() - 6);
|
|
|
+ }else {
|
|
|
+ pwd = bo.getUserPhone().substring(bo.getUserPhone().length() - 6);
|
|
|
+ }
|
|
|
+ inertData.setPasswordAes(EncryptHandler.encrypt(pwd));
|
|
|
+ inertData.setPassword(SecurityUtils.encryptPassword(pwd));
|
|
|
+ if(!save(inertData)){
|
|
|
+ throw new CustomException("注册失败");
|
|
|
+ }
|
|
|
+ user = inertData;
|
|
|
+ }
|
|
|
+
|
|
|
+ //是否领取直播课程
|
|
|
+ String goodsId = configService.selectConfigByKey("live.gzh.goodsid");
|
|
|
+ if (StringUtils.isNotBlank(goodsId)){
|
|
|
+ Long number = iOrderService.countByGoodsId(user.getUserId(),Long.valueOf(goodsId));
|
|
|
+ if (number <= 0){
|
|
|
+ //没有领取,创建订单
|
|
|
+ Goods goods = iGoodsService.getById(goodsId);
|
|
|
+ //生成订单号
|
|
|
+ String out_trade_no = DateUtils.getDateOrderSn();
|
|
|
+ Order order = new Order();
|
|
|
+ order.setOrderSn(out_trade_no);
|
|
|
+ order.setUserId(user.getUserId());
|
|
|
+ order.setOrderPrice(goods.getStandPrice());
|
|
|
+ order.setOrderStatus(1);
|
|
|
+ order.setCreateTime(DateUtils.getNowTime());
|
|
|
+ order.setUpdateTime(DateUtils.getNowTime());
|
|
|
+ order.setPayType(1);
|
|
|
+ order.setStatus(1);
|
|
|
+ order.setOrderType(2);
|
|
|
+ order.setPayPrice(goods.getStandPrice());
|
|
|
+ order.setOrderFrom(3);
|
|
|
+ order.setPayStatus(3);
|
|
|
+ order.setCheckStatus(1);
|
|
|
+ order.setOrderRefundStatus(1);
|
|
|
+ order.setFinishStatus(1);
|
|
|
+
|
|
|
+ //订单商品
|
|
|
+ OrderGoods orderGoods = new OrderGoods();
|
|
|
+ orderGoods.setOrderSn(out_trade_no);
|
|
|
+ orderGoods.setGoodsYear("2026");
|
|
|
+ orderGoods.setStatus(1);
|
|
|
+ orderGoods.setPayStatus(4);
|
|
|
+ orderGoods.setCreateTime(DateUtils.getNowTime());
|
|
|
+ orderGoods.setUpdateTime(DateUtils.getNowTime());
|
|
|
+ orderGoods.setGoodsId(Long.valueOf(goodsId));
|
|
|
+
|
|
|
+ iOrderGoodsService.save(orderGoods);
|
|
|
+ iOrderService.save(order);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ ClientLoginUser loginUser = new ClientLoginUser();
|
|
|
+ loginUser.setUser(user);
|
|
|
+ Map<String,Object> map = new HashMap<>();
|
|
|
+ map.put(Constants.TOKEN,wxTokenService.createToken(loginUser));
|
|
|
+ map.put("user_account",user.getUserAccount());
|
|
|
+ map.put("full_info",Validator.isEmpty(user.getIdCard())?false:true); //是否完善身份信息
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 根据身份证号码判断性别
|
|
|
*
|