Commit fb4c35c1 authored by 罗林杰's avatar 罗林杰

Merge remote-tracking branch 'origin/master'

parents 49c5e112 a4c6027b
......@@ -37,6 +37,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import java.math.BigInteger;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
......@@ -270,6 +271,11 @@ public class FaceVerifyServiceImpl extends ServiceImpl<MemInfoRepository, MemInf
Integer coinCount = Integer.valueOf(dictData.getDictValue());
memInfo.setMemRealAuthen("1");
memInfo.setMemRealAuthenDate(new Date());
//截取idCard身份证号 获取出生年月日20021029 变成2002-10-29
String birth = idCard.substring(6, 14);
String birthDate = birth.substring(0, 4) + "-" + birth.substring(4, 6) + "-" + birth.substring(6);
memInfo.setMemBirthday(birthDate);
memInfo.setMemConstellation(getConstellation(birthDate));
memInfo.setMemIdcard(CyAESUtils.encrypt(idCard));
memInfo.setMemRealName(CyAESUtils.encrypt(realName));
memInfo.setGoldCoinsCount(coinCount);
......@@ -280,12 +286,13 @@ public class FaceVerifyServiceImpl extends ServiceImpl<MemInfoRepository, MemInf
sysUserRbacRepository.updateById(userRbac);
//增加金币流水记录
MemGoldCoinFlow memGoldCoinFlow = new MemGoldCoinFlow();
memGoldCoinFlow.setCreateBy(userId);
memGoldCoinFlow.setUpdateBy(userId);
memGoldCoinFlow.setCreateBy(String.valueOf(1));
memGoldCoinFlow.setUpdateBy(String.valueOf(1));
memGoldCoinFlow.setCount(coinCount);
memGoldCoinFlow.setEndCount(coinCount);
memGoldCoinFlow.setType("1");
memGoldCoinFlow.setActionType("12");
memGoldCoinFlow.setTargetId(BigInteger.valueOf(Integer.valueOf(userId)));
memGoldCoinFlowRepository.insert(memGoldCoinFlow);
} else {
HttpServletRequest request1 = ((ServletRequestAttributes) (RequestContextHolder.getRequestAttributes())).getRequest();
......@@ -461,4 +468,36 @@ public class FaceVerifyServiceImpl extends ServiceImpl<MemInfoRepository, MemInf
}
}
}
public static String getConstellation(String birth) {
int month = Integer.parseInt(birth.substring(5, 7));
int day = Integer.parseInt(birth.substring(8, 10));
if ((month == 3 && day >= 21) || (month == 4 && day <= 19)) {
return "3";//白羊座
} else if ((month == 4 && day >= 20) || (month == 5 && day <= 20)) {
return "4";//金牛座
} else if ((month == 5 && day >= 21) || (month == 6 && day <= 21)) {
return "5";//双子座
} else if ((month == 6 && day >= 22) || (month == 7 && day <= 22)) {
return "6";//巨蟹座
} else if ((month == 7 && day >= 23) || (month == 8 && day <= 22)) {
return "7";//狮子座
} else if ((month == 8 && day >= 23) || (month == 9 && day <= 22)) {
return "8";//处女座
} else if ((month == 9 && day >= 23) || (month == 10 && day <= 23)) {
return "9";//天秤座
} else if ((month == 10 && day >= 24) || (month == 11 && day <= 22)) {
return "10";//天蝎座
} else if ((month == 11 && day >= 23) || (month == 12 && day <= 21)) {
return "11";//射手座
} else if ((month == 12 && day >= 22) || (month == 1 && day <= 19)) {
return "12";//摩羯座
} else if ((month == 1 && day >= 20) || (month == 2 && day <= 18)) {
return "1";//水瓶座
} else {
// 默认返回双鱼座
return "2";//双鱼座
}
}
}
......@@ -3,46 +3,23 @@ package org.rcisoft.app.appOrder.controller;
/*固定导入*/
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.drew.imaging.ImageMetadataReader;
import com.drew.metadata.Metadata;
import com.drew.metadata.exif.ExifIFD0Directory;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.media.Schema;
import org.jdom.JDOMException;
import org.rcisoft.business.cmsOrder.entity.CmsOrder;
import org.rcisoft.business.cmsOrder.service.CmsOrderService;
import org.rcisoft.business.memInfo.entity.MemInfo;
import org.rcisoft.business.memInfo.service.MemInfoService;
import org.rcisoft.core.anno.CyEncryptSm4Anno;
import org.rcisoft.core.anno.CyOpeLogAnno;
import org.rcisoft.core.component.CyGlobal;
import org.rcisoft.core.constant.CyMessCons;
import org.rcisoft.core.controller.CyPaginationController;
import org.rcisoft.core.exception.CyServiceException;
import org.rcisoft.core.model.CyGridModel;
import org.rcisoft.core.model.CyPersistModel;
import org.rcisoft.core.operlog.enums.CyLogTypeEnum;
import org.rcisoft.core.result.CyResult;
import org.rcisoft.core.result.enums.CyResSysExcEnum;
import org.rcisoft.core.service.CyFileStorageService;
import org.rcisoft.core.util.CyResultGenUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.imageio.ImageIO;
import javax.validation.Valid;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Arrays;
/**
* Created by cy on 2024年12月20日 下午3:35:34.
......
......@@ -182,6 +182,8 @@ public class WxMiniServiceImpl implements WxMiniService {
sysUser.setWxNickName(nickName);
sysUser.setWxAddress(address);
sysUserRbacRepository.updateUserWxByPhone(sysUser);
//修改会员表信息
memInfoRepository.updateMemSexByPhone(sysUser);
//重新生成token
List<SysUserRbac> users = sysUserRbacRepository.selectByPhone(phone);
if (CollectionUtils.isNotEmpty(users)) {
......
package org.rcisoft.business.ScheduledTask.Controller;
/*固定导入*/
import io.swagger.v3.oas.annotations.Operation;
import org.rcisoft.business.ScheduledTask.entity.ScheduledTask;
import org.rcisoft.business.ScheduledTask.service.ScheduledTaskService;
import org.rcisoft.core.anno.CyOpeLogAnno;
import org.rcisoft.core.constant.CyMessCons;
import org.rcisoft.core.model.CyPersistModel;
import org.rcisoft.core.operlog.enums.CyLogTypeEnum;
import org.rcisoft.core.result.CyResult;
import org.rcisoft.core.util.CyResultGenUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* Created by cy on 2025年1月6日 下午1:44:44.
*/
@RestController
@RequestMapping("/scheduledTask")
public class ScheduledTaskController{
@Autowired
private ScheduledTaskService scheduledTaskServiceImpl;
@PreAuthorize("@cyPerm.hasPerm('sys:scheduledTask:list')")
@CyOpeLogAnno(title = "system-定时任务管理-查询定时任务", businessType = CyLogTypeEnum.QUERY)
@Operation(summary="查询所有定时任务列表", description="查询所有定时任务列表")
@GetMapping(value = "/scheduledTaskList")
public CyResult scheduledTaskList(ScheduledTask scheduledTask) {
return CyResultGenUtil.builder(new CyPersistModel(1),
CyMessCons.MESSAGE_ALERT_SUCCESS,
CyMessCons.MESSAGE_ALERT_ERROR,
scheduledTaskServiceImpl.scheduledTaskList(scheduledTask));
}
@PreAuthorize("@cyPerm.hasPerm('sys:scheduledTask:list')")
@CyOpeLogAnno(title = "system-定时任务管理-手动执行定时任务", businessType = CyLogTypeEnum.QUERY)
@Operation(summary="手动执行定时任务", description="手动执行定时任务")
@GetMapping(value = "/executeScheduledTask/{type:\\w+}")
public CyResult executeScheduledTask(@PathVariable String type) {
return CyResultGenUtil.builder(new CyPersistModel(1),
CyMessCons.MESSAGE_ALERT_SUCCESS,
CyMessCons.MESSAGE_ALERT_ERROR,
scheduledTaskServiceImpl.executeScheduledTask(type));
}
}
package org.rcisoft.business.ScheduledTask.entity;
import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import org.rcisoft.core.entity.CyIdNotDataEntity;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* Created with cy on 2025年2月20日 上午11:14:19.
*/
@Data
public class ScheduledTask{
/**
* @desc 任务名称
* @column task_name
* @default
*/
private String taskName;
/**
* @desc 执行时间
* @column task_time
* @default
*/
private String taskTime;
/**
* redis定时任务
* 1:订单落库
* 2:订单关闭
* 3:支付确认补救
* 4:退款接口调用补救
* 5:退款确认补救
* 6:订单缓存清除
* 7:定时更新访问量表
* 8:定时更新话题表 刷新话题表的动态数
* 9:定时更新会员表 刷新会员的被关注数和被点赞数
*/
private String type;
}
package org.rcisoft.business.ScheduledTask.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.rcisoft.business.ScheduledTask.entity.ScheduledTask;
import org.rcisoft.business.sysScheduledTaskLog.entity.SysScheduledTaskLog;
import org.rcisoft.core.model.CyPageInfo;
import org.rcisoft.core.model.CyPersistModel;
import java.util.List;
/**
* Created by cy on 2025年2月20日 上午11:14:19.
*/
public interface ScheduledTaskService {
List<ScheduledTask> scheduledTaskList(ScheduledTask ScheduledTask);
CyPersistModel executeScheduledTask(String type);
}
package org.rcisoft.business.ScheduledTask.service.impl;
import lombok.extern.slf4j.Slf4j;
import org.rcisoft.business.ScheduledTask.entity.ScheduledTask;
import org.rcisoft.business.ScheduledTask.service.ScheduledTaskService;
import org.rcisoft.business.cmsOrder.service.impl.CmsOrderServiceImpl;
import org.rcisoft.business.memInfo.service.impl.MemInfoServiceImpl;
import org.rcisoft.business.memLeaveMessage.service.impl.MemLeaveMessageServiceImpl;
import org.rcisoft.business.memTraffic.service.impl.MemTrafficServiceImpl;
import org.rcisoft.business.opmTopic.service.impl.OpmTopicServiceImpl;
import org.rcisoft.core.model.CyPersistModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
/**
* Created by cy on 2025年2月20日 上午11:14:19.
*/
@Service
@Transactional(readOnly = true,propagation = Propagation.NOT_SUPPORTED)
@Slf4j
public class ScheduledTaskServiceImpl implements ScheduledTaskService {
@Autowired
private MemInfoServiceImpl memInfoService;
@Autowired
private CmsOrderServiceImpl orderService;
@Autowired
private MemLeaveMessageServiceImpl memLeaveMessageService;
@Autowired
private MemTrafficServiceImpl memTrafficService;
@Autowired
private OpmTopicServiceImpl opmTopicServiceImpl;
@Override
public List<ScheduledTask> scheduledTaskList(ScheduledTask ScheduledTask) {
List<ScheduledTask> scheduledTaskList = new ArrayList<>();
//1、订单落库定时任务 type:1
ScheduledTask task1 = new ScheduledTask();
task1.setTaskName("订单落库定时任务");
task1.setTaskTime("每1分钟执行一次");
task1.setType("1");
//2、订单落库定时任务 type:1
ScheduledTask task2 = new ScheduledTask();
task2.setTaskName("订单关闭定时任务");
task2.setTaskTime("每1分钟执行一次");
task2.setType("2");
//3、订单落库定时任务 type:1
ScheduledTask task3 = new ScheduledTask();
task3.setTaskName("支付确认补救定时任务");
task3.setTaskTime("每15分钟执行一次");
task3.setType("3");
//4、订单落库定时任务 type:1
ScheduledTask task4 = new ScheduledTask();
task4.setTaskName("退款接口调用补救定时任务");
task4.setTaskTime("每30分钟执行一次");
task4.setType("4");
//5、订单落库定时任务 type:1
ScheduledTask task5 = new ScheduledTask();
task5.setTaskName("退款确认补救定时任务");
task5.setTaskTime("每30分钟执行一次");
task5.setType("5");
//6、订单落库定时任务 type:1
ScheduledTask task6 = new ScheduledTask();
task6.setTaskName("订单缓存清除定时任务");
task6.setTaskTime("每天1点执行一次");
task6.setType("6");
//7、订单落库定时任务 type:1
ScheduledTask task7 = new ScheduledTask();
task7.setTaskName("定时更新访问量表定时任务");
task7.setTaskTime("每15分钟执行一次");
task7.setType("7");
//8、订单落库定时任务 type:1
ScheduledTask task8 = new ScheduledTask();
task8.setTaskName("定时更新话题表定时任务");
task8.setTaskTime("每2小时执行一次");
task8.setType("8");
//9、订单落库定时任务 type:1
ScheduledTask task9 = new ScheduledTask();
task9.setTaskName("定时更新会员表定时任务");
task9.setTaskTime("每2小时执行一次");
task9.setType("9");
scheduledTaskList.add(task1);
scheduledTaskList.add(task2);
scheduledTaskList.add(task3);
scheduledTaskList.add(task4);
scheduledTaskList.add(task5);
scheduledTaskList.add(task6);
scheduledTaskList.add(task7);
scheduledTaskList.add(task8);
scheduledTaskList.add(task9);
return scheduledTaskList;
}
@Override
public CyPersistModel executeScheduledTask(String type) {
int line = 0;
if (type.equals("1")){
try{
orderService.executeInsertOrder();
line = 1;
} catch (Exception e){
log.error(e.getMessage());
}
} else if (type.equals("2")){
try{
orderService.executeCloseOrder();
line = 1;
} catch (Exception e){
log.error(e.getMessage());
}
} else if (type.equals("3")){
try{
orderService.executePayOrder();
line = 1;
} catch (Exception e){
log.error(e.getMessage());
}
} else if (type.equals("4")){
try{
orderService.executeRefundOrder();
line = 1;
} catch (Exception e){
log.error(e.getMessage());
}
} else if (type.equals("5")){
try{
orderService.executeRefundConfirmOrder();
line = 1;
} catch (Exception e){
log.error(e.getMessage());
}
} else if (type.equals("6")){
try{
orderService.executeDeleteOrder();
line = 1;
} catch (Exception e){
log.error(e.getMessage());
}
} else if (type.equals("7")){
try{
memTrafficService.memTrafficSchedule();
line = 1;
} catch (Exception e){
log.error(e.getMessage());
}
} else if (type.equals("8")){
try{
opmTopicServiceImpl.opmTopicSchedule();
line = 1;
} catch (Exception e){
log.error(e.getMessage());
}
} else if (type.equals("9")){
try{
memInfoService.refreshMemLikeAndFollowCountSchedule();
line = 1;
} catch (Exception e){
log.error(e.getMessage());
}
}
return new CyPersistModel(1);
}
}
......@@ -246,8 +246,13 @@ public interface MemInfoRepository extends CyBaseMapper<MemInfo> {
String getUserIsStop(String userId);
/**
* 根据手机号修改用户信息
* 根据手机号修改会员openid
*/
int updateMemWxByPhone(SysUserRbac var1);
/**
* 根据手机号修改会员性别
*/
int updateMemSexByPhone(SysUserRbac var1);
}
......@@ -418,6 +418,11 @@
</if>
<if test="entity.loginUserId !=null and entity.loginUserId != '' ">
and m.user_id != #{entity.loginUserId}
and m.mem_sex != (
select m.mem_sex
from mem_info m
where m.user_id = #{entity.loginUserId}
)
and m.user_id not in (
select obl.target_id
from opm_black_list obl
......@@ -886,4 +891,10 @@
where 1=1
and mem_phone = #{phone}
</update>
<update id="updateMemSexByPhone" parameterType="org.rcisoft.sys.rbac.user.entity.SysUserRbac">
update mem_info
set mem_sex = #{wxSex}
where 1=1
and mem_phone = #{phone}
</update>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment