Kaynağa Gözat

Merge remote-tracking branch 'origin/master'

yfh 1 gün önce
ebeveyn
işleme
d8db448afe

+ 20 - 0
fs-company/src/main/java/com/fs/company/controller/course/FsUserCoursePeriodController.java

@@ -5,6 +5,7 @@ import com.fs.common.annotation.Log;
 import com.fs.common.core.controller.BaseController;
 import com.fs.common.core.domain.AjaxResult;
 import com.fs.common.core.domain.R;
+import com.fs.common.core.domain.entity.SysDictData;
 import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.enums.BusinessType;
 import com.fs.common.exception.CustomException;
@@ -72,6 +73,25 @@ public class FsUserCoursePeriodController extends BaseController {
         return getDataTable(list);
     }
 
+
+    /**
+     * @Description: 营期key value 值
+     * @Param:
+     * @Return:
+     * @Author xgb
+     * @Date 2025/11/18 14:59
+     */
+    @GetMapping("/listLabel")
+    public TableDataInfo listLabel(FsUserCoursePeriod fsUserCoursePeriod)
+    {
+        startPage();
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        fsUserCoursePeriod.setCompanyId(loginUser.getCompany().getCompanyId().toString());
+        List<SysDictData> list = fsUserCoursePeriodService.selectFsUserCoursePeriodListLabel(fsUserCoursePeriod);
+        return getDataTable(list);
+    }
+
+
     @PostMapping("/page")
     @ApiOperation("自定义查询主列表分页")
     public R pageList(@RequestBody FsUserCoursePeriod fsUserCoursePeriod)

+ 9 - 0
fs-service/src/main/java/com/fs/course/mapper/FsUserCoursePeriodDaysMapper.java

@@ -122,4 +122,13 @@ public interface FsUserCoursePeriodDaysMapper extends BaseMapper<FsUserCoursePer
 
     @Select("SELECT distinct period_id from fs_user_course_period_days  where day_date >=#{periodSTime} and day_date <=#{periodETime} ")
     List<Long> selectFsUserCoursePeriodDaysByTime(@Param("periodSTime") String periodSTime,@Param("periodETime") String periodETime);
+
+    /**
+     * @Description: 根据id获取当前营期的所有的大于该id数据lesson的id
+     * @Param:
+     * @Return:
+     * @Author xgb
+     * @Date 2025/11/18 11:04
+     */
+    List<Long> selectFsUserCoursePeriodDaysForLastById(FsUserCoursePeriodDays param);
 }

+ 3 - 0
fs-service/src/main/java/com/fs/course/mapper/FsUserCoursePeriodMapper.java

@@ -1,5 +1,6 @@
 package com.fs.course.mapper;
 
+import com.fs.common.core.domain.entity.SysDictData;
 import com.fs.course.domain.FsUserCoursePeriod;
 import com.fs.course.param.CompanyRedPacketParam;
 import com.fs.course.param.PeriodStatisticCountParam;
@@ -170,4 +171,6 @@ public interface FsUserCoursePeriodMapper
             "</foreach> " +
             "</script> ")
     List<Long> selectFsUserCoursePeriodListByPeriodId(@Param("periodIds") List<Long> qwUserIds,@Param("companyId") Long companyId);
+
+    List<SysDictData> selectFsUserCoursePeriodListLabel(FsUserCoursePeriod fsUserCoursePeriod);
 }

+ 2 - 0
fs-service/src/main/java/com/fs/course/param/FsCourseWatchLogListParam.java

@@ -69,6 +69,8 @@ public class FsCourseWatchLogListParam implements Serializable {
 
     private List<Long> periodIds;//训练营期ID
 
+    private Long periodId;//训练营期ID
+
     private String customPageStr;
 
     private Long lastId;

+ 3 - 0
fs-service/src/main/java/com/fs/course/service/IFsUserCoursePeriodService.java

@@ -1,5 +1,6 @@
 package com.fs.course.service;
 
+import com.fs.common.core.domain.entity.SysDictData;
 import com.fs.course.domain.FsUserCoursePeriod;
 import com.fs.course.param.PeriodStatisticCountParam;
 import com.fs.course.vo.FsCourseStaticsCountVO;
@@ -102,4 +103,6 @@ public interface IFsUserCoursePeriodService
     List<Long> selectFsUserCoursePeriodListByPeriodId(List<Long> periodIds,Long companyId);
 
     int editIsNeedRegisterMember(FsUserCoursePeriod fsUserCoursePeriod);
+
+    List<SysDictData> selectFsUserCoursePeriodListLabel(FsUserCoursePeriod fsUserCoursePeriod);
 }

+ 78 - 24
fs-service/src/main/java/com/fs/course/service/impl/FsUserCoursePeriodDaysServiceImpl.java

@@ -344,35 +344,89 @@ public class FsUserCoursePeriodDaysServiceImpl extends ServiceImpl<FsUserCourseP
 
     @Override
     public R updateCourseTime(UpdateCourseTimeVo vo) {
-        List<FsUserCoursePeriodDays> list = fsUserCoursePeriodDaysMapper.selectBatchIds(vo.getIds());
-        list.forEach(day -> {
+        // 批量更新
+        if(vo.getBatchUpdateSwitch()!=null && vo.getBatchUpdateSwitch()==1
+                && vo.getIds()!=null && vo.getIds().size()==1){
+            Long id=vo.getIds().get(0);
+
+            FsUserCoursePeriodDays info= fsUserCoursePeriodDaysMapper.selectFsUserCoursePeriodDaysById(id);
+
+            if(info==null || info.getPeriodId()==null || info.getLesson()==null){
+                return R.error(400, "该课程参数异常,请联系管理员");
+            }
+            // 根据id获取当前营期的所有的大于该id数据lesson的id
+            FsUserCoursePeriodDays param = new FsUserCoursePeriodDays();
+            param.setPeriodId(info.getPeriodId());
+            param.setLesson(info.getLesson());
+            List<Long> ids = fsUserCoursePeriodDaysMapper.selectFsUserCoursePeriodDaysForLastById(param);
+            List<FsUserCoursePeriodDays> list = fsUserCoursePeriodDaysMapper.selectBatchIds(ids);
+            list.forEach(day -> {
+
+                // 调整时间为直接接收前端传入的年月日,不使用营期的日期(2025年6月11日 10点41分)
+                day.setStartDateTime(vo.getStartTime());
+                day.setEndDateTime(vo.getEndTime1());
+
+
+                SysConfig config = sysConfigMapper.selectConfigByConfigKey("joinTime.switch.config");
+                if (ObjectUtils.isNotEmpty(config)&&config.getConfigValue().equals("1")){
+                    day.setLastJoinTime(vo.getEndTime1());
+                }else {
+                    day.setLastJoinTime(vo.getJoinTime());
+                }
+
+                // 把营期时间改成开始时间
+                day.setDayDate(vo.getStartTime().toLocalDate());
+                // 设置状态
+                LocalDateTime compareDayTime = LocalDateTime.now();
+                if(compareDayTime.isAfter(day.getStartDateTime()) && compareDayTime.isBefore(day.getEndDateTime())){
+                    day.setStatus(1);
+                } else if(compareDayTime.isBefore(day.getStartDateTime())){
+                    day.setStatus(0);
+                } else {
+                    day.setStatus(2);
+                }
+                fsUserCoursePeriodDaysMapper.updateById(day);
+
+                // 时间加一天
+                vo.setStartTime(vo.getStartTime().plusDays(1));
+                vo.setEndTime1(vo.getEndTime1().plusDays(1));
+                vo.setJoinTime(vo.getJoinTime().plusDays(1));
+            });
+
+        }else {
+            List<FsUserCoursePeriodDays> list = fsUserCoursePeriodDaysMapper.selectBatchIds(vo.getIds());
+            list.forEach(day -> {
 //            day.setStartDateTime(LocalDateTime.of(day.getDayDate(), vo.getStartTime()));
 //            day.setEndDateTime(LocalDateTime.of(day.getDayDate(), vo.getEndTime1()));
 //            day.setLastJoinTime(LocalDateTime.of(day.getDayDate(), vo.getJoinTime()));
-            // 调整时间为直接接收前端传入的年月日,不使用营期的日期(2025年6月11日 10点41分)
-            day.setStartDateTime(vo.getStartTime());
-            day.setEndDateTime(vo.getEndTime1());
+                // 调整时间为直接接收前端传入的年月日,不使用营期的日期(2025年6月11日 10点41分)
+                day.setStartDateTime(vo.getStartTime());
+                day.setEndDateTime(vo.getEndTime1());
+
+                SysConfig config = sysConfigMapper.selectConfigByConfigKey("joinTime.switch.config");
+                if (ObjectUtils.isNotEmpty(config)&&config.getConfigValue().equals("1")){
+                    day.setLastJoinTime(vo.getEndTime1());
+                }else {
+                    day.setLastJoinTime(vo.getJoinTime());
+                }
+
+                // 把营期时间改成开始时间
+                day.setDayDate(vo.getStartTime().toLocalDate());
+                // 设置状态
+                LocalDateTime compareDayTime = LocalDateTime.now();
+                if(compareDayTime.isAfter(day.getStartDateTime()) && compareDayTime.isBefore(day.getEndDateTime())){
+                    day.setStatus(1);
+                } else if(compareDayTime.isBefore(day.getStartDateTime())){
+                    day.setStatus(0);
+                } else {
+                    day.setStatus(2);
+                }
+                fsUserCoursePeriodDaysMapper.updateById(day);
+            });
+        }
+
 
-            SysConfig config = sysConfigMapper.selectConfigByConfigKey("joinTime.switch.config");
-            if (ObjectUtils.isNotEmpty(config)&&config.getConfigValue().equals("1")){
-                day.setLastJoinTime(vo.getEndTime1());
-            }else {
-                day.setLastJoinTime(vo.getJoinTime());
-            }
 
-            // 把营期时间改成开始时间
-            day.setDayDate(vo.getStartTime().toLocalDate());
-            // 设置状态
-            LocalDateTime compareDayTime = LocalDateTime.now();
-            if(compareDayTime.isAfter(day.getStartDateTime()) && compareDayTime.isBefore(day.getEndDateTime())){
-                day.setStatus(1);
-            } else if(compareDayTime.isBefore(day.getStartDateTime())){
-                day.setStatus(0);
-            } else {
-                day.setStatus(2);
-            }
-            fsUserCoursePeriodDaysMapper.updateById(day);
-        });
         return R.ok();
     }
 

+ 6 - 0
fs-service/src/main/java/com/fs/course/service/impl/FsUserCoursePeriodServiceImpl.java

@@ -3,6 +3,7 @@ package com.fs.course.service.impl;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.fs.common.core.domain.entity.SysDictData;
 import com.fs.common.core.redis.RedisCache;
 import com.fs.common.exception.CustomException;
 import com.fs.common.exception.ServiceException;
@@ -315,4 +316,9 @@ public class FsUserCoursePeriodServiceImpl implements IFsUserCoursePeriodService
     public int editIsNeedRegisterMember(FsUserCoursePeriod fsUserCoursePeriod) {
         return fsUserCoursePeriodMapper.updateFsUserCoursePeriod(fsUserCoursePeriod);
     }
+
+    @Override
+    public List<SysDictData> selectFsUserCoursePeriodListLabel(FsUserCoursePeriod fsUserCoursePeriod) {
+        return fsUserCoursePeriodMapper.selectFsUserCoursePeriodListLabel(fsUserCoursePeriod);
+    }
 }

+ 3 - 0
fs-service/src/main/java/com/fs/course/vo/UpdateCourseTimeVo.java

@@ -21,4 +21,7 @@ public class UpdateCourseTimeVo {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime joinTime;
     private LocalDate dayDate;
+
+    // 批量修改开关 0 关闭 1 开启 默认关闭 打开的话修改时间,后续的时间会一起改变
+    private Integer batchUpdateSwitch;
 }

+ 3 - 3
fs-service/src/main/java/com/fs/his/service/impl/FsIntegralOrderServiceImpl.java

@@ -356,7 +356,7 @@ public class FsIntegralOrderServiceImpl implements IFsIntegralOrderService
         order.setIntegral(totalIntegral.toString());
         order.setItemJson(JSONUtil.toJsonStr(goodsItem));
         order.setUserName(address.getRealName());
-        order.setUserAddress(address.getProvince()+address.getCity()+address.getDistrict()+address.getDetail());
+        order.setUserAddress(address.getProvince()+" "+address.getCity()+" "+address.getDistrict()+" "+address.getDetail());
         order.setUserPhone(address.getPhone());
         order.setCreateTime(new Date());
         order.setCompanyUserId(companyUserId);
@@ -855,7 +855,7 @@ public class FsIntegralOrderServiceImpl implements IFsIntegralOrderService
         List<ErpOrderPayment> payments = new ArrayList<>();
         ErpOrderPayment payment = new ErpOrderPayment();
         payment.setPay_type_code("weixin");
-        payment.setPayment(order.getPayMoney().doubleValue());
+        payment.setPayment(0d);
         if (order.getPayTime() != null) {
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
             String timeString = sdf.format(Date.from((order.getPayTime().atZone(ZoneId.systemDefault()).toInstant())));
@@ -935,7 +935,7 @@ public class FsIntegralOrderServiceImpl implements IFsIntegralOrderService
             JSONObject jsonObject = (JSONObject) obj;
             ErpOrderItem item = new ErpOrderItem();
             item.setOid(jsonObject.getString("goodsId"));
-            item.setItem_code(jsonObject.getString("barCode").trim());//商品编码
+            item.setItem_code(jsonObject.getString("barCode"));//商品编码
             item.setPrice(jsonObject.getString("otPrice"));//市场价
             item.setQty(jsonObject.getInteger("num"));//数量
             item.setRefund(0);

+ 2 - 0
fs-service/src/main/java/com/fs/hisStore/domain/FsMenuScrm.java

@@ -33,5 +33,7 @@ public class FsMenuScrm extends BaseEntity
 
     private Integer menuType;//菜单类型
 
+    private String appId;
+
 
 }

+ 3 - 1
fs-service/src/main/resources/mapper/course/FsCourseWatchLogMapper.xml

@@ -151,7 +151,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="maps.sopId != null  and maps.sopId != '' ">
                 and l.sop_id = #{maps.sopId}
             </if>
-
+            <if test="maps.periodId != null">
+                and l.period_id = #{maps.periodId}
+            </if>
             <if test="maps.periodIds != null and maps.periodIds.size() > 0">
                 and l.period_id in
                 <foreach item="periodId" index="index" collection="maps.periodIds" open="(" separator="," close=")">

+ 4 - 0
fs-service/src/main/resources/mapper/course/FsUserCoursePeriodDaysMapper.xml

@@ -239,4 +239,8 @@
         ORDER BY
             a.day_date
     </select>
+
+    <select id="selectFsUserCoursePeriodDaysForLastById" resultType="java.lang.Long">
+       select id from fs_user_course_period_days where del_flag ='0' and period_id = #{periodId} and lesson &gt;= #{lesson} order by lesson
+    </select>
 </mapper>

+ 6 - 0
fs-service/src/main/resources/mapper/course/FsUserCoursePeriodMapper.xml

@@ -401,4 +401,10 @@
         group by
         `period`.period_id
     </select>
+
+    <select id="selectFsUserCoursePeriodListLabel" resultType="com.fs.common.core.domain.entity.SysDictData">
+        select period_id as dictValue,period_name as dictLabel from fs_user_course_period
+                 where del_flag = '0'
+         <if test="companyId != null">and FIND_IN_SET (#{companyId},company_id) &gt; 0</if>
+    </select>
 </mapper>

+ 6 - 1
fs-service/src/main/resources/mapper/hisStore/FsMenuScrmMapper.xml

@@ -15,10 +15,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateTime"    column="update_time"    />
         <result property="sort"    column="sort"    />
         <result property="menuType"    column="menu_type"    />
+        <result property="appId"    column="app_id"    />
     </resultMap>
 
     <sql id="selectFsMenuVo">
-        select menu_id, menu_name,menu_type, icon, is_show,link_type,link_url, create_time, update_time,sort from fs_menu
+        select menu_id, menu_name,menu_type, icon, is_show,link_type,link_url, create_time, update_time,sort,app_id from fs_menu
     </sql>
 
     <select id="selectFsMenuList" parameterType="FsMenuScrm" resultMap="FsMenuResult">
@@ -31,6 +32,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="linkUrl != null "> and link_url = #{linkUrl}</if>
             <if test="sort != null "> and sort = #{sort}</if>
             <if test="menuType != null "> and menu_type = #{menuType}</if>
+            <if test="appId != null and appId != ''"> and app_id = #{appId}</if>
         </where>
         order by sort asc
     </select>
@@ -52,6 +54,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="linkUrl != null">link_url,</if>
             <if test="sort != null">sort,</if>
             <if test="menuType != null">menu_type,</if>
+            <if test="appId != null">app_id,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="menuName != null">#{menuName},</if>
@@ -63,6 +66,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="linkUrl != null">#{linkUrl},</if>
             <if test="sort != null">#{sort},</if>
             <if test="menuType != null">#{menuType},</if>
+            <if test="appId != null">#{appId},</if>
          </trim>
     </insert>
 
@@ -78,6 +82,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="linkUrl != null">link_url = #{linkUrl},</if>
             <if test="sort != null">sort = #{sort},</if>
             <if test="menuType != null">menu_type = #{menuType},</if>
+            <if test="appId != null and appId != ''">app_id = #{appId},</if>
         </trim>
         where menu_id = #{menuId}
     </update>