修改完整代码

master
bynt 6 months ago
parent b2197404a3
commit 1242153724

@ -38,4 +38,9 @@ public class WeChatEquipment implements Serializable {
private Long equipmentId;
@Schema(title = "用户ID")
private Long userId;
}

@ -83,7 +83,7 @@ public interface LoginEquipmentMapper extends ExtendMapper<LoginEquipment> {
default Long countFreeEquipment(Long currentUserId, Integer number) {
return this.selectCount
(WrappersX.lambdaQueryX(LoginEquipment.class).eq
(LoginEquipment::getUserId, currentUserId).eq(LoginEquipment::getPackageType, DefaultNumberConstants.TWO_NUMBER));
(LoginEquipment::getUserId, currentUserId).eq(LoginEquipment::getPackageType, number));
}

@ -1,6 +1,7 @@
package com.baiye.modules.distribute.mapper;
import com.baiye.extend.mybatis.plus.mapper.ExtendMapper;
import com.baiye.extend.mybatis.plus.toolkit.WrappersX;
import com.baiye.modules.distribute.entity.WeChatEquipment;
import org.apache.ibatis.annotations.Mapper;
@ -12,6 +13,19 @@ import org.apache.ibatis.annotations.Mapper;
public interface WeChatEquipmentMapper extends ExtendMapper<WeChatEquipment> {
/**
*
*
* @param accountId
* @param equipmentId
* @return
*/
default Long countEquipment(Long accountId, Long equipmentId) {
return this.selectCount
(WrappersX.lambdaQueryX(WeChatEquipment.class).eq
(WeChatEquipment::getAccountId, accountId).eq(WeChatEquipment::getEquipmentId, equipmentId));
}
}

@ -86,8 +86,7 @@ public class AliPayServiceImpl extends ExtendServiceImpl<PayOrderMapper, PayOrde
log.info("========== the order notify success date as {} ==========", DateUtil.date());
order.setPayTime(DateUtil.date());
order.setStatus(DefaultNumberConstants.ONE_NUMBER);
if (Boolean.TRUE.equals(order.getIsRenew())) {
if (Boolean.FALSE.equals(order.getIsRenew())) {
// 创建设备
weChatService.createEquipment(order.getNum(), order.getPayType(), order.getUserId());
}
@ -136,29 +135,25 @@ public class AliPayServiceImpl extends ExtendServiceImpl<PayOrderMapper, PayOrde
Integer packageType = aliPayPcDTO.getPackageType();
// 结算金额
if (packageType == DefaultNumberConstants.TWO_NUMBER) {
// 九折
amount = NumberUtil.mul(NumberUtil.mul
(String.valueOf(DefaultNumberConstants.THIRTY), String.valueOf(DefaultNumberConstants.THREE_NUMBER)), 0.9);
// 季度
amount = NumberUtil.mul
(String.valueOf(DefaultNumberConstants.THIRTY), String.valueOf(DefaultNumberConstants.THREE_NUMBER));
}
if (packageType == DefaultNumberConstants.THREE_NUMBER) {
// 八折
// 年度八折
amount = NumberUtil.mul(NumberUtil.mul
(String.valueOf(DefaultNumberConstants.THIRTY), String.valueOf(DefaultNumberConstants.TWELVE_NUMBER)), 0.8);
}
amount = NumberUtil.mul(amount, num);
// amount = new BigDecimal("0.01");
// 雪花算法id
String orderNo = String.valueOf(IdUtil.getSnowflake(workerId, datacenterId).nextId());
// 创建订单
savePayOrder(num, isRenew, robotId, packageType, amount, orderNo);
if (packageType == DefaultNumberConstants.ONE_NUMBER) {
if (num > DefaultNumberConstants.THREE_NUMBER) {
throw new BadRequestException("至多创建三台免费设备!");
}
Long countFreeEquipment = loginEquipmentService.countFreeEquipment(userId, DefaultNumberConstants.ONE_NUMBER);
if (ObjectUtil.isNotNull(countFreeEquipment)
&& countFreeEquipment + num >= DefaultNumberConstants.THREE_NUMBER) {
&& countFreeEquipment + num > DefaultNumberConstants.THREE_NUMBER) {
throw new BadRequestException("至多创建三台免费设备!");
}
// 创建设备

@ -6,7 +6,6 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.http.HttpStatus;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONUtil;
import com.baiye.constant.DefaultNumberConstants;
import com.baiye.constant.WeChatRequestConstants;
import com.baiye.domain.PageParam;
import com.baiye.domain.PageResult;

@ -125,10 +125,10 @@ public class WeChatServiceImpl extends ExtendServiceImpl<WeChatAccountMapper, We
// 创建账号
LoginEquipment equipment = new LoginEquipment();
equipment.setUserId(userId);
equipment.setPackageType(packageType);
equipment.setExpirationTime(dateTime);
equipment.setRobotId(botDTO.getRobotId());
equipment.setPit(botDTO.getRobotAccount());
equipment.setPackageType(DefaultNumberConstants.ONE_NUMBER);
// equipment.setDeviceNumber(botDTO.getRobotAccount());
loginEquipmentService.save(equipment);
}
@ -146,7 +146,6 @@ public class WeChatServiceImpl extends ExtendServiceImpl<WeChatAccountMapper, We
if (loginEquipment.getExpirationTime().before(DateUtil.date())) {
throw new BadRequestException("当前设备已过期请续费后使用!");
}
}
Map<String, Object> beanToMap = BeanUtil.beanToMap(pushCodeDTO);
String pushQrCodeResult = HttpUtil.get
@ -184,12 +183,22 @@ public class WeChatServiceImpl extends ExtendServiceImpl<WeChatAccountMapper, We
byWxId.setHeaderUrl(userLoginDTO.getBigHeadImgUrl());
byWxId.setId(saveId);
byWxId.setUserId(userId);
equipment.setUserId(userId);
equipment.setEquipmentId(id);
equipment.setAccountId(saveId);
weChatEquipmentMapper.insert(equipment);
return this.save(byWxId);
}
BeanUtil.copyProperties(userLoginDTO, byWxId);
byWxId.setUserId(userId);
Long counted = weChatEquipmentMapper.countEquipment(byWxId.getId(), id);
if (counted == DefaultNumberConstants.ZERO_NUMBER) {
WeChatEquipment equipment = new WeChatEquipment();
equipment.setEquipmentId(id);
equipment.setUserId(userId);
equipment.setAccountId(byWxId.getId());
weChatEquipmentMapper.insert(equipment);
}
byWxId.setStatus(status == WechatCallbackConstant.LOGIN_SUCCESS ?
DefaultNumberConstants.ONE_NUMBER : DefaultNumberConstants.MINUS_ONE_NUMBER);
return this.updateById(byWxId);
@ -288,7 +297,7 @@ public class WeChatServiceImpl extends ExtendServiceImpl<WeChatAccountMapper, We
WeChatAccountDTO dto = BeanUtil.toBean(weChatResponse.getData(), WeChatAccountDTO.class);
if (ObjectUtil.isNotNull(dto) &&
dto.getStatus() == DefaultNumberConstants.ONE_NUMBER
&& !onlineList.contains(dto.getPit())) {
&& !onlineList.contains(dto.getPit())) {
onlineList.add(dto.getPit());
onlineNum += DefaultNumberConstants.ONE_NUMBER;
}

@ -13,6 +13,9 @@ import java.util.Date;
@Data
public class WeChatAccountVO {
@Schema(title = "id")
private Long id;
@Schema(title = "用户id")
private Long userId;

@ -42,3 +42,7 @@ mybatis-plus:
configuration:
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #开启sql日志
log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl #关闭sql日志
wechat:
gatewayHost: https://fission-server.scrm-ai.com
appKey: SFkWRAued71GvCeClj8efDhAG6bJ2rzT

@ -28,8 +28,12 @@ alipay:
# 填支付宝公钥,注意不是生成的应用公钥
aliPayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyvegkGCrz1i5/K7VzQxvoZm4G73pSPNu9R5ET8YonIuDVoHkHaYvQQizLdRkTyBsYIik8FXsSDmVsw5MLMQ7OAlZ97nQBkz5TxOX6Px766nUpSVoWXoAz6cpIlWnwgir4t1ph88Ph56l+qmqW3gUj/U6MIuzjxBJlijTMHl96its95Nd4cEFx4j+sFuRYob6D0kcemC7xEFuty7bdupda51Z56GYI1YjuUTryTlFOHZbOSThc2ZMzNC1gPG25bn2Lx6sDuPByk4KW4rQ2v7mSfeUuZZRdjtVSC0WV2M2Cv5L8eLFvZRgNYnXrUJYhnRpT+OBAvJZXaWU2nv/bNe/UQIDAQAB
# 回调地址
notifyUrl: https://count.byffp.top/pay/aliPay/pay-notify
notifyUrl: https://count.byffp.top/api/pay/aliPay/pay-notify
# 支付宝成功支付跳转页面
returnUrl: https://count.byffp.top/dashboard
# 可设置AES密钥调用AES加解密相关接口时需要可选
encryptKey:
wechat:
gatewayHost: https://fission-server.scrm-ai.com
appKey: Dn4emsLhVFaZ4aw2sQSmWoh2oz0n1taa

@ -5,7 +5,7 @@ spring:
application:
name: @artifactId@
profiles:
active: dev
active: prod
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
@ -104,6 +104,4 @@ snowflake:
workerId: 10
datacenterId: 10
wechat:
gatewayHost: http://43.143.56.20:1620
appKey: Dn4emsLhVFaZ4aw2sQSmWoh2oz0n1taa

@ -47,11 +47,16 @@
</select>
<select id="queryByDate" resultType="com.baiye.modules.distribute.vo.WeChatAddFriendVo">
SELECT DATE_FORMAT(create_time, '%m-%d') dayStr
, count(1) as num
SELECT DATE_FORMAT(f.create_time, '%m-%d') dayStr
, count(1) as num
, add_friend_type
FROM tb_wechat_friend
WHERE DATE_SUB(CURDATE(), INTERVAL #{dayNum} DAY) &lt;= date (create_time) and robot_wx_id = #{wxId} and user_id = #{userId}
FROM tb_wechat_friend f,
tb_wechat_account a,
tb_wechat_equipment e
WHERE f.robot_wx_id = a.wx_id
and a.id = e.account_id and DATE_SUB(CURDATE(), INTERVAL #{dayNum} DAY) &lt;= date (f.create_time)
and f.robot_wx_id = #{wxId}
and e.user_id = #{userId}
GROUP BY dayStr, add_friend_type
ORDER BY dayStr
</select>

@ -16,7 +16,7 @@ public enum PackageEnum {
/**
*
*/
MONTH(1, 30),
MONTH(1, 3),
/**
*

@ -1,124 +1,94 @@
package com.baiye.system.service.impl;
import cn.hutool.core.collection.ListUtil;
import com.baiye.security.constant.UserAttributeNameConstants;
import com.baiye.security.userdetails.User;
import com.baiye.security.util.SecurityUtils;
import com.baiye.system.checker.AdminUserChecker;
import com.baiye.system.enums.RoleCodeEnum;
import com.baiye.domain.PageParam;
import com.baiye.domain.PageResult;
import com.baiye.domain.SelectData;
import com.baiye.exception.BusinessException;
import com.baiye.extend.mybatis.plus.service.impl.ExtendServiceImpl;
import com.baiye.result.BaseResultCode;
import com.baiye.system.mapper.SysRoleMapper;
import com.baiye.system.model.entity.SysRole;
import com.baiye.system.model.qo.SysRoleQO;
import com.baiye.system.model.vo.SysRolePageVO;
import com.baiye.system.service.SysRoleMenuService;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
import com.baiye.exception.BusinessException;
import com.baiye.result.BaseResultCode;
import com.baiye.system.mapper.SysRoleMapper;
import com.baiye.system.service.SysRoleService;
import com.baiye.domain.PageParam;
import com.baiye.domain.PageResult;
import com.baiye.domain.SelectData;
import com.baiye.extend.mybatis.plus.service.impl.ExtendServiceImpl;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.Serializable;
import java.util.*;
import java.util.List;
import java.util.stream.Collectors;
@Service
@RequiredArgsConstructor
public class SysRoleServiceImpl extends ExtendServiceImpl<SysRoleMapper, SysRole> implements SysRoleService {
private final SysRoleMenuService sysRoleMenuService;
private final AdminUserChecker adminUserChecker;
private final SysRoleMenuService sysRoleMenuService;
/**
*
*
* @param pageParam
* @param qo
* @return
*/
@Override
public PageResult<SysRolePageVO> queryPage(PageParam pageParam, SysRoleQO qo) {
return baseMapper.queryPage(pageParam, qo);
}
/**
* ID,
*
* @param id ID
* @return boolean
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean removeById(Serializable id) {
SysRole role = getById(id);
sysRoleMenuService.deleteByRoleCode(role.getCode());
return SqlHelper.retBool(baseMapper.deleteById(id));
}
/**
*
*
* @param pageParam
* @param qo
* @return
*/
@Override
public PageResult<SysRolePageVO> queryPage(PageParam pageParam, SysRoleQO qo) {
return baseMapper.queryPage(pageParam, qo);
}
/**
*
*
* @return List<SelectData < ?>>
*/
@Override
public List<SelectData<Void>> listSelectData() {
List<SelectData<Void>> selectData = baseMapper.listSelectData();
/**
* ID,
*
* @param id ID
* @return boolean
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean removeById(Serializable id) {
SysRole role = getById(id);
sysRoleMenuService.deleteByRoleCode(role.getCode());
return SqlHelper.retBool(baseMapper.deleteById(id));
}
User user = SecurityUtils.getUser();
@SuppressWarnings("unchecked")
Collection<String> roleCodeList = (Collection<String>) user.getAttributes().get(UserAttributeNameConstants.ROLE_CODES);
/**
*
*
* @return List<SelectData < ?>>
*/
@Override
public List<SelectData<Void>> listSelectData() {
List<SelectData<Void>> selectData = baseMapper.listSelectData();
String salesExecutive = RoleCodeEnum.find(14L);
String storeExecutive = RoleCodeEnum.find(22L);
String entryClerk = RoleCodeEnum.find(15L);
String directExecutive = RoleCodeEnum.find(24L);
Set<String> list = new HashSet<>();
if (adminUserChecker.isAdminUser(user.getUserId())) {
list.addAll(ListUtil.of(salesExecutive, storeExecutive, directExecutive));
}
if (roleCodeList.contains(salesExecutive)) {
list.add(entryClerk);
}
if (roleCodeList.contains(storeExecutive)) {
List<String> excludeRoleCode = ListUtil.of(RoleCodeEnum.find(1L), salesExecutive, storeExecutive, entryClerk);
List<String> collect = selectData.stream().map(SelectData::getValue).filter(value -> !excludeRoleCode.contains(String.valueOf(value))).map(String::valueOf).collect(Collectors.toList());
list.addAll(collect);
}
if (roleCodeList.contains(directExecutive)) {
list.addAll(ListUtil.of(RoleCodeEnum.find(25L), RoleCodeEnum.find(26L)));
}
return selectData.stream().filter(c -> list.contains(String.valueOf(c.getValue()))).collect(Collectors.toList());
}
return selectData.stream().filter(c -> "2".equals(c.getType())).collect(Collectors.toList());
}
/**
* code
*
* @param roleCode code
* @return boolean
*/
@Override
public boolean existsRoleCode(String roleCode) {
return baseMapper.existsRoleCode(roleCode);
}
/**
* code
*
* @param roleCode code
* @return boolean
*/
@Override
public boolean existsRoleCode(String roleCode) {
return baseMapper.existsRoleCode(roleCode);
}
/**
*
*
* @param sysRole
* @return boolean
*/
@Override
public boolean save(SysRole sysRole) {
if (existsRoleCode(sysRole.getCode())) {
throw new BusinessException(BaseResultCode.LOGIC_CHECK_ERROR, "角色标识已存在!");
}
return SqlHelper.retBool(getBaseMapper().insert(sysRole));
}
/**
*
*
* @param sysRole
* @return boolean
*/
@Override
public boolean save(SysRole sysRole) {
if (existsRoleCode(sysRole.getCode())) {
throw new BusinessException(BaseResultCode.LOGIC_CHECK_ERROR, "角色标识已存在!");
}
return SqlHelper.retBool(getBaseMapper().insert(sysRole));
}
}

@ -4,7 +4,8 @@
<select id="listSelectData" resultType="com.baiye.domain.SelectData">
select
name, code as value
name, code as value,
type
from
sys_role
where

Loading…
Cancel
Save