Merge remote-tracking branch 'xfsg/cc_partner_init' into cc_partner_init

This commit is contained in:
苏竹红
2024-04-30 09:26:14 +08:00
80 changed files with 2605 additions and 220 deletions

View File

@@ -131,7 +131,6 @@ public class CommonConstants {
public static final String OPEN = "open";
public static final String ALLOCATION = "allocation";
public static final String TRANSFER = "transfer";
@@ -155,4 +154,23 @@ public class CommonConstants {
public static final String DEAULT_SELECT_SITE_MANAGER = "020125244825417786";
public static final int MAX_LENGTH_ONE_HUNDRED = 100;
public static final String YUN_XUE_TANG_SUC_CODE = "10000";
//鲜丰
//设计阶段+施工阶段
public static final String CONSTRUCTION_PHASE = "施工阶段";
public static final String MEASURING_THE_ROOM = "量房";
public static final String CONSTRUCTION_DRAWING = "施工图+预算";
public static final String FLOOR_PLAN = "平面图+门头效果图";
public static final String APPROACH="进场";
public static final String ONE_DAY="第一天-进场拆除、基础材料下单、物料设备下单";
public static final String TWO_DAY="第二天-水电预埋、地砖铺贴";
public static final String THREE_DAY="第三天-橱窗隔断、木工包柱、电工布线";
public static final String FOUR_DAY="第四天-护墙板安装、空调安装";
public static final String FIVE_DAY="第五天-吊顶隔断、木工铝塑板";
public static final String SIX_DAY="第六天-灯具安装、室内广告安装、冷柜安装、道具卸货";
public static final String SEVEN_DAY="第七天-道具安装、室外招牌安装";
public static final String EIGHT_DAY="第八天-卫生保洁、网络及收银设备安装、撤场交接";
public static final String WITHDRAWAL="撤场";
}

View File

@@ -273,4 +273,8 @@ public class RedisConstant {
*/
public static final String INVESTMENT_MANAGER_CACHE = "investment_manager_cache_";
/**
* 招商经理轮询key
*/
public static final String YUN_XUE_TANG_ACCESS_TOKEN = "yun_xue_tang_access_token_";
}

View File

@@ -9,6 +9,7 @@ public enum AuditTypeEnum {
SITE_SELECTION(5, "选址"),
UPLOAD_RENT_CONTRACT(6, "上传租赁合同"),
PAY_FRANCHISE_FEE(7,"缴纳加盟费"),
SIGN_FRANCHISE(8,"加盟合同签约"),
;
private Integer code;

View File

@@ -169,6 +169,10 @@ public enum ErrorCodeEnum {
FOOD_BUSINESS_LICENSE_PARSE_FAIL(109007, "食营证照解析失败", null),
STORE_NUM_NOT_FOUND(109008, "未找到门店编码", null),
INSERT_OPENING_OPERATION_PLAN_AUDIT_FALSE(103001,"插入运营方案审核信息失败",null),
INSERT_OPENING_OPERATION_PLAN_FALSE(103002,"插入运营方案失败",null),
SHOP_ID_IS_NULL(103003,"验参shopId失败为空",null),

View File

@@ -0,0 +1,50 @@
package com.cool.store.enums;
/**
* 加盟商类型" +
* "0-新加盟商开单店;1-老加盟商开单店;" +
* "2-新加盟商开新区域单店;" +
* "3-新加盟商开老区域单店;" +
* "4-老加盟商开新区域单店;" +
* "5-老加盟商开老区域单店;" +
* "6-直营门店;" +
* "7-同异业转化;" +
* "8-老加盟商迁址开新店
*/
public enum FranchiseeTypeEnum {
ONE(0,"新加盟商开单店"),
TWO(1,"老加盟商开单店"),
THREE(2,"新加盟商开新区域单店"),
FOUR(4,"新加盟商开老区域单店"),
FIVE(5,"老加盟商开老区域单店"),
SIX(6,"直营门店"),
SEVEN(7,"同异业转化"),
EIGHT(8,"老加盟商迁址开新店"),
;
private Integer code;
private String message;
FranchiseeTypeEnum(Integer code, String message) {
this.code = code;
this.message = message;
}
public Integer getCode() {
return code;
}
public String getMessage() {
return message;
}
public static FranchiseeTypeEnum getByCode(Integer code) {
for (FranchiseeTypeEnum franchiseeTypeEnum : FranchiseeTypeEnum.values()) {
if (franchiseeTypeEnum.getCode().equals(code)) {
return franchiseeTypeEnum;
}
}
return null;
}
}

View File

@@ -0,0 +1,37 @@
package com.cool.store.enums;
/**
* 营业执照类型 0.个体工商户 1.有限责任公司 2.独资企业 3.自然人经营
*/
public enum LicenseTypeEnum {
ZERO(0, "个体工商户"),
ONE(1,"有限责任公司"),
TWO(2,"独资企业"),
THREE(3,"自然人经营");
private Integer code;
private String message;
public Integer getCode() {
return code;
}
public String getMessage() {
return message;
}
LicenseTypeEnum(Integer code, String message) {
this.code = code;
this.message = message;
}
public static LicenseTypeEnum match(Integer code) {
for (LicenseTypeEnum type : LicenseTypeEnum.values()) {
if (type.getCode().equals(code)) {
return type;
}
}
return null;
}
}

View File

@@ -7,8 +7,21 @@ package com.cool.store.enums;
*/
public enum SMSMsgEnum {
MODIFY_INTERVIEW_TIME("修改面审时间","", "SMS_464760909"),
SECOND_INTERVIEW_PASS("二审面试通过","", "SMS_464760909"),
INTERVIEW_APPOINTMENT_SUCCESS("邀约面谈成功", "", "SMS_465930408"),
FIRST_INTERVIEW_APPOINTMENT_SUCCESS("一次面审待预约", "", "SMS_465915456"),
FIRST_INTERVIEW_REMIND("一次面审1小时提醒", "", "SMS_465935440"),
FIRST_INTERVIEW_REAPPOINTMENT("一次面审重新预约", "", "SMS_465935442"),
INTENTION_PAYMENT("意向金待缴费", "", "SMS_465950414"),
INTENTION_PAYMENT_FAIL("意向金缴费失败", "", "SMS_465975442"),
INTENTION_PAYMENT_SUCCESS("意向金审核通过", "", "SMS_465885415"),
INTENTION_PROTOCOL_FAIL("意向协议审核未通过", "", "SMS_465910434"),
SECOND_INTERVIEW_APPOINTMENT("二审面审待预约", "", "SMS_465950416"),
SECOND_INTERVIEW_REMIND("二审前1小时提醒", "", "SMS_465925428"),
SECOND_INTERVIEW_REAPPOINTMENT("二审重新预约", "", "SMS_465940421"),
SECOND_INTERVIEW_SUCCESS("二审面审成功", "", "SMS_465980397"),
SELECT_SUCCESS("选铺成功", "", "SMS_465890428"),
RENT_CONTRACT_AUDIT_FAIL("租赁合同上传未通过", "", "SMS_465955429"),
SHOP_EXPERIENCE("门店体验安排", "", "SMS_465900449"),
;
private String title;

View File

@@ -0,0 +1,45 @@
package com.cool.store.dao;
import com.cool.store.entity.AcceptanceInfoDO;
import com.cool.store.mapper.AcceptanceInfoMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
import java.util.List;
import java.util.Objects;
/**
* @Auther: WangShuo
* @Date: 2024/04/29/下午7:47
* @Version 1.0
* @注释:
*/
@Repository
public class AcceptanceInfoDAO {
@Resource
private AcceptanceInfoMapper acceptanceInfoMapper;
public Long insertAcceptanceInfo(AcceptanceInfoDO acceptanceInfoDO){
if (Objects.isNull(acceptanceInfoDO)){
return null;
}
acceptanceInfoMapper.insert(acceptanceInfoDO);
return acceptanceInfoDO.getId();
}
public List<AcceptanceInfoDO> selectAcceptanceInfo(){
return acceptanceInfoMapper.selectShopIdListBySignatures();
}
public Integer updateAcceptanceInfo(AcceptanceInfoDO acceptanceInfoDO){
if (Objects.isNull(acceptanceInfoDO)){
return 0;
}
return acceptanceInfoMapper.updateByShopIDSelective(acceptanceInfoDO);
}
public AcceptanceInfoDO selectByShopId (Long shopId){
if (Objects.isNull(shopId)){
return null;
}
return acceptanceInfoMapper.selectByShopId(shopId);
}
}

View File

@@ -0,0 +1,38 @@
package com.cool.store.dao;
import com.cool.store.entity.AssessmentDataDO;
import com.cool.store.mapper.AssessmentDataMapper;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* @Auther: WangShuo
* @Date: 2024/04/29/下午10:38
* @Version 1.0
* @注释: AssessmentDataDO
*/
@Repository
public class AssessmentDataDAO {
@Resource
private AssessmentDataMapper assessmentDataMapper;
public Boolean batchInsert(List<AssessmentDataDO> assessmentDataDOS) {
if (CollectionUtils.isEmpty(assessmentDataDOS) && assessmentDataDOS.size() > 0) {
for (AssessmentDataDO assessmentDataDO : assessmentDataDOS) {
assessmentDataMapper.insert(assessmentDataDO);
}
return Boolean.TRUE;
}
return Boolean.FALSE;
}
public Integer batchUpdate(List<AssessmentDataDO> assessmentDataDOS) {
if (CollectionUtils.isEmpty(assessmentDataDOS) && assessmentDataDOS.size() > 0) {
return assessmentDataMapper.batchUpdate(assessmentDataDOS);
}
return 0;
}
}

View File

@@ -0,0 +1,19 @@
package com.cool.store.dao;
import com.cool.store.mapper.EmployeeTrainingMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
/**
* @author byd
* @date 2024-04-29 16:06
*/
@Slf4j
@Repository
public class EmployeeTrainingDAO {
@Resource
private EmployeeTrainingMapper employeeTrainingMapper;
}

View File

@@ -0,0 +1,35 @@
package com.cool.store.dao;
import com.cool.store.entity.TempUserDetailDO;
import com.cool.store.mapper.TempUserDetailMapper;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
import java.util.List;
/**
* @author byd
* @date 2024-04-29 16:06
*/
@Repository
public class TempUserDetailDAO {
@Resource
private TempUserDetailMapper tempUserDetailMapper;
public List<TempUserDetailDO> userList(Long shopId) {
return tempUserDetailMapper.select(TempUserDetailDO.builder().deleted(false).shopId(shopId).build());
}
public TempUserDetailDO selectByIdCard(String idCard) {
return tempUserDetailMapper.selectOne(TempUserDetailDO.builder().deleted(false).idCard(idCard).build());
}
public int insertSelective(TempUserDetailDO detailDO) {
return tempUserDetailMapper.insertSelective(detailDO);
}
public TempUserDetailDO selectById(Long id) {
return tempUserDetailMapper.selectOne(TempUserDetailDO.builder().id(id).build());
}
}

View File

@@ -1,7 +1,24 @@
package com.cool.store.mapper;
import com.cool.store.entity.AcceptanceInfoDO;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface AcceptanceInfoMapper extends Mapper<AcceptanceInfoDO> {
/**
* @Auther: wangshuo
* @Date: 2024/4/29
* @description:根据shopid查询
*/
List<AcceptanceInfoDO> selectShopIdListBySignatures();
/**
* @Auther: wangshuo
* @Date: 2024/4/29
* @description:根据shopID修改
*/
Integer updateByShopIDSelective(AcceptanceInfoDO acceptanceInfoDO);
AcceptanceInfoDO selectByShopId(@Param("shopId") Long shopId);
}

View File

@@ -1,7 +1,12 @@
package com.cool.store.mapper;
import com.cool.store.entity.AssessmentDataDO;
import com.cool.store.entity.ShopStageInfoDO;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface AssessmentDataMapper extends Mapper<AssessmentDataDO> {
Integer batchUpdate( List<AssessmentDataDO> AssessmentDataDOS);
}

View File

@@ -0,0 +1,7 @@
package com.cool.store.mapper;
import com.cool.store.entity.EmployeeTrainingDO;
import tk.mybatis.mapper.common.Mapper;
public interface EmployeeTrainingMapper extends Mapper<EmployeeTrainingDO> {
}

View File

@@ -3,6 +3,7 @@ package com.cool.store.mapper;
import com.cool.store.dto.Preparation.PreparationDTO;
import com.cool.store.dto.openPreparation.OpenPlanShopInfoDTO;
import com.cool.store.dto.point.LineCountDTO;
import com.cool.store.entity.PointInfoDO;
import com.cool.store.entity.ShopInfoDO;
import com.cool.store.request.PlanListRequest;
import com.cool.store.request.PreparationRequest;
@@ -67,12 +68,6 @@ public interface ShopInfoMapper extends Mapper<ShopInfoDO> {
*/
List<ShopInfoDO> getShopListByIds(@Param("shopIds")List<Long> shopIds);
/**
* @Auther: wangshuo
* @Date: 2024/4/25
* @description:获取筹建阶段shopid
*/
List<Long> queryShopIdListByStage();
/**
* @Auther: wangshuo
* @Date: 2024/4/25
@@ -86,4 +81,5 @@ public interface ShopInfoMapper extends Mapper<ShopInfoDO> {
List<PreparationDTO> ListByCondition(@Param("request") PreparationRequest request);
Long getRegionIdByid(@Param("shopId") Long shopId);
}
ShopInfoDO selectByStoreNum(@Param("storeNum") String storeNum);}

View File

@@ -1,8 +1,10 @@
package com.cool.store.mapper;
import com.cool.store.entity.SignFranchiseDO;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
public interface SignFranchiseMapper extends Mapper<SignFranchiseDO> {
SignFranchiseDO selectByShopId(@Param("shopId") Long shopId);
}

View File

@@ -2,7 +2,10 @@ package com.cool.store.mapper;
import com.cool.store.entity.SystemBuildingShopDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface SystemBuildingShopMapper extends tk.mybatis.mapper.common.Mapper<SystemBuildingShopDO> {
void updateAuditByShopId(@Param("auditId") Long auditId,
@Param("shopId") Long shopId);
}

View File

@@ -0,0 +1,7 @@
package com.cool.store.mapper;
import com.cool.store.entity.TempUserDetailDO;
import tk.mybatis.mapper.common.Mapper;
public interface TempUserDetailMapper extends Mapper<TempUserDetailDO> {
}

View File

@@ -20,4 +20,62 @@
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="deleted" jdbcType="BIT" property="deleted" />
</resultMap>
<sql id="baseColumn">
id,shop_id,actual_entry_time,planned_completion_time,planned_start_time,decoration_planned_completion_time,
decoration_planned_start_time,construction_completion_time,engineering_acceptance_signatures,
operations_acceptance_signatures,partner_acceptance_signatures,
create_time,update_time,deleted
</sql>
<update id="updateByShopIDSelective">
update xfsg_acceptance_info
<set>
<if test="actualEntryTime != null">
actual_entry_time = #{actualEntryTime} ,
</if>
<if test="plannedCompletionTime != null">
planned_completion_time = #{plannedCompletionTime} ,
</if>
<if test="plannedStartTime != null">
planned_start_time = #{plannedStartTime} ,
</if>
<if test="decorationPlannedCompletionTime != null">
decoration_planned_completion_time = #{decorationPlannedCompletionTime} ,
</if>
<if test="decorationPlannedStartTime != null">
decoration_planned_start_time = #{decorationPlannedStartTime} ,
</if>
<if test="constructionCompletionTime != null">
construction_completion_time = #{constructionCompletionTime} ,
</if>
<if test="engineeringAcceptanceSignatures != null">
engineering_acceptance_signatures = #{engineeringAcceptanceSignatures} ,
</if>
<if test="operationsAcceptanceSignatures != null">
operations_acceptance_signatures = #{operationsAcceptanceSignatures} ,
</if>
<if test="partnerAcceptanceSignatures != null">
partner_acceptance_signatures = #{partnerAcceptanceSignatures} ,
</if>
<if test="updateTime != null">
update_time = #{updateTime} ,
</if>
<if test="deleted != null">
deleted = #{deleted} ,
</if>
</set>
where shop_id = #{shopId}
</update>
<select id="selectShopIdListBySignatures" resultType="com.cool.store.entity.AcceptanceInfoDO">
select <include refid="baseColumn"/>
from xfsg_acceptance_info a
left join join xfsg_shop_stage_info b on a.shop_id = b.shop_id
where b.shop_sub_stage_status = 1200 and a.deleted = 0
</select>
<select id="selectByShopId" resultType="com.cool.store.entity.AcceptanceInfoDO">
select
<include refid="baseColumn"/>
from xfsg_acceptance_info
where shop_id = #{shopId}
</select>
</mapper>

View File

@@ -14,4 +14,31 @@
<result column="reason" jdbcType="VARCHAR" property="reason" />
<result column="comments" jdbcType="VARCHAR" property="comments" />
</resultMap>
<update id="batchUpdate">
update xfsg_assessment_data
<set>
qualified = CASE id
<foreach collection="AssessmentDataDOS" separator=" " item="item">
WHEN #{item.id} THEN #{item.qualified}
</foreach>,
score = CASE id
<foreach collection="AssessmentDataDOS" separator=" " item="item">
WHEN #{item.id} THEN #{item.score}
</foreach>,
reason = CASE id
<foreach collection="AssessmentDataDOS" separator=" " item="item">
WHEN #{item.id} THEN #{item.reason}
</foreach>,
comments = CASE id
<foreach collection="AssessmentDataDOS" separator=" " item="item">
WHEN #{item.id} THEN #{item.comments}
</foreach>
END
</set>
where id in (
<foreach collection="addShopStageList" item="item" separator=",">
#{item.id}
</foreach>
)
</update>
</mapper>

View File

@@ -99,15 +99,15 @@
<where>
<if test="keyWord != null and keyWord != ''">
AND (
l.username = #{keyWord}
OR l.mobile = #{keyWord}
l.username like CONCAT('%',#{keyWord},'%')
OR l.mobile like CONCAT('%',#{keyWord},'%')
)
</if>
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
AND lai.create_time BETWEEN #{startTime} AND #{endTime}
</if>
<if test="region != null and region != ''">
AND l.want_shop_area_id = #{region}
and l.want_shop_area_id in (select id from xfsg_open_area_info where area_path like concat(#{region}, '%'))
</if>
<if test="checkStatus != null">
AND a.audit_status = #{checkStatus}

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cool.store.mapper.EmployeeTrainingMapper">
<resultMap id="BaseResultMap" type="com.cool.store.entity.EmployeeTrainingDO">
<!--
WARNING - @mbg.generated
-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="shop_id" jdbcType="BIGINT" property="shopId" />
<result column="region_id" jdbcType="BIGINT" property="regionId" />
<result column="xfsg_user_detail_id" jdbcType="BIGINT" property="xfsgUserDetailId" />
<result column="assign_flag" jdbcType="TINYINT" property="assignFlag" />
<result column="training_start_time" jdbcType="TIMESTAMP" property="trainingStartTime" />
<result column="training_end_time" jdbcType="TIMESTAMP" property="trainingEndTime" />
<result column="training_store_id" jdbcType="VARCHAR" property="trainingStoreId" />
<result column="training_teacher_user_id" jdbcType="VARCHAR" property="trainingTeacherUserId" />
<result column="practical_assessment_user_id" jdbcType="VARCHAR" property="practicalAssessmentUserId" />
<result column="estimated_assessment_time" jdbcType="TIMESTAMP" property="estimatedAssessmentTime" />
<result column="actual_assessment_time" jdbcType="TIMESTAMP" property="actualAssessmentTime" />
<result column="assessment_num" jdbcType="INTEGER" property="assessmentNum" />
<result column="assessment_total_num" jdbcType="INTEGER" property="assessmentTotalNum" />
<result column="theoretical_exam_status" jdbcType="TINYINT" property="theoreticalExamStatus" />
<result column="theoretical_exam_score" jdbcType="INTEGER" property="theoreticalExamScore" />
<result column="practical_exam_status" jdbcType="TINYINT" property="practicalExamStatus" />
<result column="practical_exam_score" jdbcType="INTEGER" property="practicalExamScore" />
<result column="assessment_status" jdbcType="TINYINT" property="assessmentStatus" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="deleted" jdbcType="BIT" property="deleted" />
</resultMap>
</mapper>

View File

@@ -127,7 +127,8 @@
convenient_score = #{update.convenientScore},
environment_score = #{update.environmentScore},
rent_contract = #{update.rentContract},
map_evaluation_report = #{update.mapEvaluationReport}
map_evaluation_report = #{update.mapEvaluationReport},
picture_obj = #{update.pictureObj},
where id = #{update.id}
</update>

View File

@@ -73,12 +73,7 @@
</foreach>
</select>
<select id="queryShopIdListByStage" resultType="java.lang.Long">
select id
from xfsg_shop_info
where shop_stage = 2
and deleted = 0
</select>
<select id="queryStoreNumeListByid" resultType="com.cool.store.dto.openPreparation.OpenPlanShopInfoDTO">
select id as shopId,store_num as storeNum
from xfsg_shop_info
@@ -155,6 +150,11 @@
join region_${enterpriseId} r on r.id = xsi.region_id
where xsi.id = #{shopId}
</select>
<select id="selectByStoreNum" resultType="com.cool.store.entity.ShopInfoDO">
select <include refid="allColumn"/>
from xfsg_shop_info
where store_num = #{storeNum}
</select>
</mapper>

View File

@@ -1,4 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cool.store.mapper.SignFranchiseMapper">
<select id="selectByShopId" resultType="com.cool.store.entity.SignFranchiseDO">
select *
from xfsg_sign_franchise
where shop_id = #{shopId}
</select>
</mapper>

View File

@@ -8,5 +8,10 @@
<sql id="Base_Column_List">
</sql>
<update id="updateAuditByShopId">
update xfsg_system_building_shop
set audit_id = #{auditId}
where shop_id = #{shopId}
</update>
</mapper>

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cool.store.mapper.TempUserDetailMapper">
<resultMap id="BaseResultMap" type="com.cool.store.entity.TempUserDetailDO">
<!--
WARNING - @mbg.generated
-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="line_id" jdbcType="BIGINT" property="lineId" />
<result column="shop_id" jdbcType="BIGINT" property="shopId" />
<result column="region_id" jdbcType="BIGINT" property="regionId" />
<result column="mobile" jdbcType="VARCHAR" property="mobile" />
<result column="username" jdbcType="VARCHAR" property="username" />
<result column="sex" jdbcType="VARCHAR" property="sex" />
<result column="age" jdbcType="INTEGER" property="age" />
<result column="id_card" jdbcType="VARCHAR" property="idCard" />
<result column="status" jdbcType="VARCHAR" property="status" />
<result column="educational" jdbcType="TINYINT" property="educational" />
<result column="role_id" jdbcType="BIGINT" property="roleId" />
<result column="id_card_positive_url" jdbcType="VARCHAR" property="idCardPositiveUrl" />
<result column="id_card_negative_url" jdbcType="VARCHAR" property="idCardNegativeUrl" />
<result column="health_certificate_url" jdbcType="VARCHAR" property="healthCertificateUrl" />
<result column="register_time" jdbcType="TIMESTAMP" property="registerTime" />
<result column="source" jdbcType="VARCHAR" property="source" />
<result column="submit_time" jdbcType="TIMESTAMP" property="submitTime" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="deleted" jdbcType="BIT" property="deleted" />
</resultMap>
</mapper>

View File

@@ -1,5 +1,6 @@
package com.cool.store.dto.openPreparation;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -19,6 +20,7 @@ public class FirstOrderDTO {
private Long shopId;
@ApiModelProperty("首批订货金总额")
private String totalOrderDeposit;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("最晚打款时间")
private Date latestPaymentDate;
@@ -34,7 +36,7 @@ public class FirstOrderDTO {
@ApiModelProperty("更新人")
private String updateUserId;
@ApiModelProperty("结果")
private Integer resultType;
@ApiModelProperty("订货金阶段状态1500 待上传, 1505 带缴纳,1510 已完成")
private Integer firstOrderSubStage;
}

View File

@@ -0,0 +1,31 @@
package com.cool.store.dto.yun;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2024/3/25 17:03
* @Version 1.0
*/
@Data
public class StudentResultDTO {
private String userId;
/**
* 用户考试状态 0未开始1考试中2已提交3批阅中4已完成
*/
private Integer userExamStatus;
/**
* 最新分
*/
private Float newScore;
/**
* 是否通过0不是1
*/
private Integer passed;
}

View File

@@ -0,0 +1,144 @@
package com.cool.store.entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import javax.persistence.*;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "xfsg_employee_training")
public class EmployeeTrainingDO {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* shop_info.id
*/
@Column(name = "shop_id")
private Long shopId;
/**
* 区域ID
*/
@Column(name = "region_id")
private Long regionId;
/**
* xfsg_temp_user_detail.id
*/
@Column(name = "xfsg_user_detail_id")
private Long xfsgUserDetailId;
/**
* 是否分配 0-待分配 1-已分配
*/
@Column(name = "assign_flag")
private Byte assignFlag;
/**
* 实训开始时间
*/
@Column(name = "training_start_time")
private Date trainingStartTime;
/**
* 实训结束时间
*/
@Column(name = "training_end_time")
private Date trainingEndTime;
/**
* 实训门店ID
*/
@Column(name = "training_store_id")
private String trainingStoreId;
/**
* 带教老师ID
*/
@Column(name = "training_teacher_user_id")
private String trainingTeacherUserId;
/**
* 实操考核人员ID
*/
@Column(name = "practical_assessment_user_id")
private String practicalAssessmentUserId;
/**
* 预计考核时间
*/
@Column(name = "estimated_assessment_time")
private Date estimatedAssessmentTime;
/**
* 实际考核时间
*/
@Column(name = "actual_assessment_time")
private Date actualAssessmentTime;
/**
* 考核项数
*/
@Column(name = "assessment_num")
private Integer assessmentNum;
/**
* 考核总项数
*/
@Column(name = "assessment_total_num")
private Integer assessmentTotalNum;
/**
* 理论考试状态 0-未开始 1-合格 2-不合格
*/
@Column(name = "theoretical_exam_status")
private Byte theoreticalExamStatus;
/**
* 理论考试分值
*/
@Column(name = "theoretical_exam_score")
private Integer theoreticalExamScore;
/**
* 实操考试状态 0-未开始 1-合格 2-不合格
*/
@Column(name = "practical_exam_status")
private Byte practicalExamStatus;
/**
* 实操考试分值
*/
@Column(name = "practical_exam_score")
private Integer practicalExamScore;
/**
* 考核状态 0-培训中 1-带考核 2-考核通过 3-考核不通过
*/
@Column(name = "assessment_status")
private Byte assessmentStatus;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 更新时间
*/
@Column(name = "update_time")
private Date updateTime;
/**
* 是否删除0.否 1.是
*/
private Boolean deleted;
}

View File

@@ -18,8 +18,10 @@ public class SignFranchiseDO {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "xfsg_shop_info.id")
@Column(name = "shop_id")
private Long shopId;
@Column(name = "audit_id")
private Long auditId;
@Column(name = "sign_type")
private Integer signType;
@Column(name = "brand_fee")

View File

@@ -0,0 +1,129 @@
package com.cool.store.entity;
import io.swagger.models.auth.In;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import javax.persistence.*;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "xfsg_temp_user_detail")
public class TempUserDetailDO {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* line_info.id
*/
@Column(name = "line_id")
private Long lineId;
/**
* shop_info.id
*/
@Column(name = "shop_id")
private Long shopId;
/**
* 区域ID
*/
@Column(name = "region_id")
private Long regionId;
/**
* 手机号
*/
private String mobile;
/**
* 申请人姓名
*/
private String username;
/**
* 性别0未选,1男,2女
*/
private String sex;
/**
* 年龄
*/
private Integer age;
private Integer status;
/**
* 身份证号码
*/
@Column(name = "id_card")
private String idCard;
/**
* 学历 0-小学 1-初中 2-高中 3-中专 4-大专 5-本科 6-硕士 7-硕士以上
*/
private Integer educational;
/**
* 角色id 170000000-店长 180000000-店员
*/
@Column(name = "role_id")
private Long roleId;
/**
* 身份证正面url
*/
@Column(name = "id_card_positive_url")
private String idCardPositiveUrl;
/**
* 身份证反面url
*/
@Column(name = "id_card_negative_url")
private String idCardNegativeUrl;
/**
* 健康证url
*/
@Column(name = "health_certificate_url")
private String healthCertificateUrl;
/**
* 登记时间
*/
@Column(name = "register_time")
private Date registerTime;
/**
* 来源create-创建 sync-钉钉同步
*/
private String source;
/**
* 提交时间
*/
@Column(name = "submit_time")
private Date submitTime;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 更新时间
*/
@Column(name = "update_time")
private Date updateTime;
/**
* 是否删除0.否 1.是
*/
private Boolean deleted;
}

View File

@@ -0,0 +1,8 @@
package com.cool.store.request;
import lombok.Data;
@Data
public class LicenseBizContentRequest {
private String storeNum;
}

View File

@@ -25,7 +25,7 @@ public class LinePaySubmitRequest {
@ApiModelProperty("支付方式 1微信 2银行转账")
private Integer payType;
@ApiModelProperty("付款人姓名")
@ApiModelProperty("付款人姓名/加盟商姓名")
private String payUserName;
@ApiModelProperty("付款账号")

View File

@@ -91,6 +91,7 @@ public class OperationAuditRequest {
pointDetailInfo.setClerkFee(request.getClerkFee());
pointDetailInfo.setOperationUserSign(request.getOperationUserSign());
pointDetailInfo.setOperationUserSignTime(new Date());
pointDetailInfo.setStaffFee(String.valueOf((request.getShopManagerNum() * request.getShopManagerFee()) + (request.getClerkNum() * request.getClerkFee())));
return pointDetailInfo;
}

View File

@@ -0,0 +1,57 @@
package com.cool.store.request;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* 员工详细信息数据接口
*
* @author byd
*/
@NoArgsConstructor
@Data
public class TempUserDetailRequest {
@ApiModelProperty("店铺id")
private Long shopId;
@ApiModelProperty("姓名")
private String name;
@ApiModelProperty("身份证")
private String idCard;
@ApiModelProperty("性别 0未选,1男,2女")
private String sex;
@ApiModelProperty("年龄")
private Integer age;
@ApiModelProperty("学历 0-小学 1-初中 2-高中 3-中专 4-大专 5-本科 6-硕士 7-硕士以上")
private Integer highestDegree;
@ApiModelProperty("手机号OA侧绑定的手机号")
private String phone;
@ApiModelProperty("岗位Id")
private Long jobId;
@ApiModelProperty("身份证-人像面")
private String idNumPhoto;
@ApiModelProperty("身份证-国徽面")
private String emblemPhoto;
@ApiModelProperty("健康证")
private String healthCertificate;
@ApiModelProperty("登记时间")
private Date registerTime;
}

View File

@@ -0,0 +1,21 @@
package com.cool.store.request;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Auther: WangShuo
* @Date: 2024/04/29/下午11:35
* @Version 1.0
* @注释:三方验收
*/
@Data
public class ThreeAcceptanceRequest {
private Long shopId;
@ApiModelProperty("工程部验收签名 {pic\":\"\",\"acceptanceTime\":\"\",\"result\":\"\",\"remark\":\"\",\"status\":1}")
private String engineeringAcceptanceSignatures;
@ApiModelProperty("营运部验收签名 {\"pic\":\"\",\"acceptanceTime\":\"\",\"result\":\"\",\"remark\":\"\",\"status\":1}")
private String operationsAcceptanceSignatures;
@ApiModelProperty("加密商验收签名 {\"pic\":\"\",\"acceptanceTime\":\"\",\"result\":\"\",\"remark\":\"\",\"status\":0}")
private String partnerAcceptanceSignatures;
}

View File

@@ -0,0 +1,156 @@
package com.cool.store.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
@ApiModel("提交加盟合同签约请求体")
public class AddSignFranchiseResponse {
@ApiModelProperty("主键,更新时才存在")
private Long id;
private Long shopId;
/**
* SignTypeEnum
*/
@ApiModelProperty("签约类型,0.转让 1.新签 2.续签 3.迁址 5.新签同异业转化")
private Integer signType;
@ApiModelProperty("品牌使用费比例")
private String brandFee;
@ApiModelProperty("是否有营业执照 0-是 1-否")
private Integer isBusinessLicense;
@ApiModelProperty("是否有食营 0-是 1-否")
private Integer isFoodLicense;
@ApiModelProperty("合同开始日期")
private Date contractStartTime;
@ApiModelProperty("合同结束日期")
private Date contractStartEndTime;
@ApiModelProperty("用印次数")
private String impressionNum;
@ApiModelProperty("营业开始时间(日期不重要传分秒即可)")
private Date businessStartHours;
@ApiModelProperty("营业结束时间(日期不重要传分秒即可)")
private Date businessEndHours;
@ApiModelProperty("非常规营业时间原因")
private String irregularReason;
@ApiModelProperty("备注")
private String remark;
@ApiModelProperty("是否补签")
private Integer resign;
@ApiModelProperty("加盟商联系方式")
private String mobile;
@ApiModelProperty("门店名称")
private String storeName;
@ApiModelProperty("门店地址")
private String storeAddress;
@ApiModelProperty("所属大区")
private String bigRegion;
@ApiModelProperty("大区分总")
private String bigRegionManager;
@ApiModelProperty("加盟商类型")
private String franchiseeType;
@ApiModelProperty("交款人")
private String payName;
@ApiModelProperty("营业执照名称")
private String licenseName;
@ApiModelProperty("经营者")
private String operator;
@ApiModelProperty("类型")
private String type;
@ApiModelProperty("社会信用代码")
private String licenseCode;
@ApiModelProperty("经营场所")
private String opeAddress;
@ApiModelProperty("加盟商姓名")
private String partnerName;
@ApiModelProperty("加盟商身份证号")
private String idCardNo;
@ApiModelProperty("加盟商结算账户")
private String bankCardNo;
@ApiModelProperty("开户行")
private String bank;
@ApiModelProperty("支行")
private String subBank;
@ApiModelProperty("身份证地址")
private String idCardAddress;
@ApiModelProperty("交款日期")
private Date payDate;
@ApiModelProperty("每年加盟费")
private String yearFranchiseFee;
@ApiModelProperty("每年加盟费大写")
private String bigYearFranchiseFee;
@ApiModelProperty("贷款保证金")
private String loanMargin;
@ApiModelProperty("贷款保证金大写")
private String bigLoanMargin;
@ApiModelProperty("1开")
private Date firstYearStartTime;
@ApiModelProperty("1结")
private Date firstYearEndTime;
@ApiModelProperty("1费")
private String firstYearFee;
@ApiModelProperty("2开")
private Date secondYearStartTime;
@ApiModelProperty("2结")
private Date secondYearEndTime;
@ApiModelProperty("2费")
private String secondYearFee;
@ApiModelProperty("3开")
private Date thirdYearStartTime;
@ApiModelProperty("3结")
private Date thirdYearEndTime;
@ApiModelProperty("3费")
private String thirdYearFee;
@ApiModelProperty("履约保证金")
private String performanceBond;
@ApiModelProperty("履约保证金大写")
private String bigPerformanceBond;
@ApiModelProperty("享受加盟费和保证金优惠原因")
private String reasons;
@ApiModelProperty("状态 0通过,1拒绝")
private Integer status;
@ApiModelProperty("原因")
private String result;
@ApiModelProperty("失败时间")
private Date resultTime;
}

View File

@@ -0,0 +1,113 @@
package com.cool.store.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@ApiModel("证照信息回调响应体")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class LicenseApiResponse {
/**
* 营业执照经营场所/住所
*/
@ApiModelProperty("营业执照经营场所/住所")
private String storeBusinessAdd;
/**
* 营业执照发证日期
*/
@ApiModelProperty("营业执照发证日期")
private String storeBusinessDate;
/**
* 营业执照图片
*/
@ApiModelProperty("营业执照图片")
private String storeBusinessImg;
/**
* 营业执照名称
*/
@ApiModelProperty("营业执照名称")
private String storeBusinessName;
/**
* 营业执照统一社会信用代码
*/
@ApiModelProperty("营业执照统一社会信用代码")
private String storeBusinessNumber;
/**
* 营业执照类型
*/
@ApiModelProperty("营业执照类型")
private String storeBusinessType;
/**
* 营业执照有效期, 非OCR识别手填。9=长期有效非长期有效则为具体日期2026-06-01
*/
@ApiModelProperty("营业执照有效期, 非OCR识别手填。9=长期有效非长期有效则为具体日期2026-06-01")
private String storeBusinessValidPeriod;
/**
* 门店代码
*/
@ApiModelProperty("门店代码")
private String storeCode;
/**
* 营业执照经营者/法人
*/
@ApiModelProperty("营业执照经营者/法人")
private String storeDirector;
/**
* 食品流通经营许可证编号
*/
@ApiModelProperty("食品流通经营许可证编号")
private String storeFoodLicense;
/**
* 食品流通/经营许可证有效期开始日期
*/
@ApiModelProperty("食品流通/经营许可证有效期开始日期")
private String storeFoodLicenseBeginDate;
/**
* 食品经营许可证经营场所
*/
@ApiModelProperty("食品经营许可证经营场所")
private String storeFoodLicenseBusinessAddress;
/**
* 食品经营许可证经营项目
*/
@ApiModelProperty("食品经营许可证经营项目")
private String storeFoodLicenseBusinessScope;
/**
* 食品流通/经营许可证有效期结束日期
*/
@ApiModelProperty("食品流通/经营许可证有效期结束日期")
private String storeFoodLicenseEndDate;
/**
* 食品经营许可证照片
*/
@ApiModelProperty("食品经营许可证照片")
private String storeFoodLicenseImg;
/**
* 食品经营许可证法定代表人(负责人)
*/
@ApiModelProperty("食品经营许可证法定代表人(负责人)")
private String storeFoodLicenseLegalRepresentative;
/**
* 食品经营许可证主体业态
*/
@ApiModelProperty("食品经营许可证主体业态")
private String storeFoodLicenseMainBusiness;
/**
* 食品经营许可证经营者名称
*/
@ApiModelProperty("食品经营许可证经营者名称")
private String storeFoodLicenseOperatorName;
/**
* 备注
*/
@ApiModelProperty("备注")
private String storeRemark;
}

View File

@@ -0,0 +1,31 @@
package com.cool.store.response;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @Auther: WangShuo
* @Date: 2024/04/29/下午11:51
* @Version 1.0
* @注释:
*/
@Data
public class ThreeAcceptanceResponse {
@ApiModelProperty("工程部验收签名 {pic\":\"\",\"acceptanceTime\":\"\",\"result\":\"\",\"remark\":\"\",\"status\":1}")
private String engineeringAcceptanceSignatures;
@ApiModelProperty("营运部验收签名 {\"pic\":\"\",\"acceptanceTime\":\"\",\"result\":\"\",\"remark\":\"\",\"status\":1}")
private String operationsAcceptanceSignatures;
@ApiModelProperty("加密商验收签名 {\"pic\":\"\",\"acceptanceTime\":\"\",\"result\":\"\",\"remark\":\"\",\"status\":0}")
private String partnerAcceptanceSignatures;
@ApiModelProperty("验收日期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date acceptanceTime;
@ApiModelProperty("验收结果")
private Byte resultType;
@ApiModelProperty("验收评语")
private String acceptanceComments;
}

View File

@@ -0,0 +1,38 @@
package com.cool.store.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @Auther: WangShuo
* @Date: 2024/04/29/下午4:24
* @Version 1.0
* @注释:
*/
@Data
public class DecorationModelVO {
@ApiModelProperty("支付状态 45:待缴费 50:已缴费 55缴费失败")
private Integer payStatus;
@ApiModelProperty("付款人姓名/加盟商姓名")
private String payUserName;
@ApiModelProperty("付款账号")
private String payAccount;
@ApiModelProperty("付款截图")
private String payPic;
@ApiModelProperty("支行名称")
private String branchBankName;
@ApiModelProperty("开户行名称")
private String bankName;
@ApiModelProperty("缴纳金额")
private String amount;
@ApiModelProperty("缴纳时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date payTime;
@ApiModelProperty("上传时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
}

View File

@@ -4,7 +4,7 @@ import com.cool.store.dto.decoration.AttachmentsDTO;
import com.cool.store.dto.decoration.BudgetDTO;
import com.cool.store.dto.decoration.ConstructionScheduleDTO;
import com.cool.store.dto.decoration.DesignSchemeDTO;
import com.cool.store.vo.log.DesignLogVo;
import lombok.Data;
import java.util.List;

View File

@@ -42,6 +42,8 @@ public class OpeningOperationPlanVO {
@ApiModelProperty("提交人")
private String submittedUserId;
@ApiModelProperty("提交人名字")
private String submittedUserName;
@ApiModelProperty("通过原因")
private String passReason;

View File

@@ -0,0 +1,117 @@
package com.cool.store.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.util.Date;
/**
* @author byd
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TempUserDetailInfoVO {
@ApiModelProperty("id")
private Long id;
/**
* line_info.id
*/
@ApiModelProperty("线索id")
private Long lineId;
/**
* shop_info.id
*/
@ApiModelProperty("店铺id")
private Long shopId;
/**
* 区域ID
*/
@ApiModelProperty("区域ID")
private Long regionId;
/**
* 手机号
*/
@ApiModelProperty("手机号")
private String mobile;
/**
* 申请人姓名
*/
@ApiModelProperty("姓名")
private String username;
/**
* 性别0未选,1男,2女
*/
@ApiModelProperty("性别0未选,1男,2女")
private String sex;
/**
* 年龄
*/
@ApiModelProperty("年龄")
private Integer age;
@ApiModelProperty("0-待审核 1-已登记 2-审核未通过")
private Integer status;
/**
* 身份证号码
*/
@ApiModelProperty("身份证号码")
private String idCard;
/**
* 学历 0-小学 1-初中 2-高中 3-中专 4-大专 5-本科 6-硕士 7-硕士以上
*/
@ApiModelProperty("学历 0-小学 1-初中 2-高中 3-中专 4-大专 5-本科 6-硕士 7-硕士以上")
private Integer educational;
/**
* 角色id 170000000-店长 180000000-店员
*/
@ApiModelProperty("角色id 170000000-店长 180000000-店员")
private Long roleId;
/**
* 身份证正面url
*/
@ApiModelProperty("身份证正面url")
private String idCardPositiveUrl;
/**
* 身份证反面url
*/
@ApiModelProperty("身份证反面url")
private String idCardNegativeUrl;
/**
* 健康证url
*/
@ApiModelProperty("健康证url")
private String healthCertificateUrl;
/**
* 登记时间
*/
@ApiModelProperty("登记时间")
private Date registerTime;
/**
* 来源create-创建 sync-钉钉同步
*/
@ApiModelProperty("来源create-创建 sync-钉钉同步")
private String source;
}

View File

@@ -0,0 +1,23 @@
package com.cool.store.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author byd
* @date 2024-04-29 17:33
*/
@Data
public class TempUserDetailListVO {
@ApiModelProperty("员工列表")
private List<TempUserDetailVO> userList;
@ApiModelProperty("店铺id")
private Long shopId;
@ApiModelProperty("店铺code")
private String storeNum;
}

View File

@@ -0,0 +1,77 @@
package com.cool.store.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.util.Date;
/**
* @author byd
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TempUserDetailVO {
@ApiModelProperty("id")
private Long id;
/**
* line_info.id
*/
@ApiModelProperty("line_info.id")
private Long lineId;
/**
* shop_info.id
*/
@ApiModelProperty("店铺id")
private Long shopId;
/**
* 区域ID
*/
@ApiModelProperty("区域ID")
private Long regionId;
/**
* 手机号
*/
@ApiModelProperty("手机号")
private String mobile;
/**
* 申请人姓名
*/
@ApiModelProperty("姓名")
private String username;
/**
* 身份证号码
*/
@ApiModelProperty("身份证号码")
private String idCard;
/**
* 角色id 170000000-店长 180000000-店员
*/
@ApiModelProperty("角色id 170000000-店长 180000000-店员")
private Long roleId;
/**
* 登记时间
*/
@ApiModelProperty("登记时间")
private Date registerTime;
/**
* 来源create-创建 sync-钉钉同步
*/
@ApiModelProperty("来源create-创建 sync-钉钉同步")
private String source;
}

View File

@@ -1,20 +0,0 @@
package com.cool.store.vo.log;
import lombok.Data;
import java.util.List;
/**
* @Auther: WangShuo
* @Date: 2024/04/28/下午4:02
* @Version 1.0
* @注释:设计阶段跟踪日志
*/
@Data
public class DesignLogVo {
private String logTime;
private String name;
private String description;
private List<String> attachmentUrl;
}

View File

@@ -0,0 +1,18 @@
package com.cool.store.service;
import com.cool.store.entity.AssessmentDataDO;
import io.swagger.models.auth.In;
import java.util.List;
/**
* @Auther: WangShuo
* @Date: 2024/04/29/下午10:46
* @Version 1.0
* @注释:
*/
public interface AssessmentDataService {
Boolean batchInsert(List<AssessmentDataDO> assessmentDataDOS);
Integer batchUpdate(List<AssessmentDataDO> assessmentDataDOS);
}

View File

@@ -2,8 +2,12 @@ package com.cool.store.service;
import com.cool.store.dto.decoration.ConstructionScheduleDTO;
import com.cool.store.dto.decoration.DecorationModelDTO;
import com.cool.store.entity.AcceptanceInfoDO;
import com.cool.store.request.DecorationPayRequest;
import com.cool.store.request.LinePaySubmitRequest;
import com.cool.store.request.ThreeAcceptanceRequest;
import com.cool.store.response.ThreeAcceptanceResponse;
import com.cool.store.vo.DecorationModelVO;
import com.cool.store.vo.DesignInfoVo;
import com.cool.store.vo.PartnerUserInfoVO;
@@ -16,12 +20,13 @@ import java.util.List;
* @注释:
*/
public interface DecorationService {
/**
* @Auther: wangshuo
* @Date: 2024/4/28
* @description:获取装修阶段子阶段信息
* @Date: 2024/4/29
* @description:刷新
*/
List<DesignInfoVo> decorations();
Boolean flush(Long shopId );
/**
* @Auther: wangshuo
* @Date: 2024/4/28
@@ -40,10 +45,35 @@ public interface DecorationService {
* @description:提交装修款付款凭证
*/
String submitDecorationModel(LinePaySubmitRequest LinePaySubmitRequest, PartnerUserInfoVO partnerUserInfoVO);
/**
* @Auther: wangshuo
* @Date: 2024/4/29
* @description:获得装修款信息
*/
DecorationModelVO getDecorationModel(Long shopId,PartnerUserInfoVO partnerUserInfoVO);
/**
* @Auther: wangshuo
* @Date: 2024/4/28
* @description:施工阶段
* @description:施工阶段下信息
*/
List<ConstructionScheduleDTO> getConstruction(Long shopId);
/**
* @Auther: wangshuo
* @Date: 2024/4/29
* @description:获取施工阶段信息
*/
ConstructionScheduleDTO getConstructionInfo(Long shopId);
/**
* @Auther: wangshuo
* @Date: 2024/4/29
* @description:提交三方验收
*/
Integer submitAcceptance(ThreeAcceptanceRequest request);
/**
* @Auther: wangshuo
* @Date: 2024/4/29
* @description:查看三方验收
*/
ThreeAcceptanceResponse getThreeAcceptance(Long shopId);
}

View File

@@ -2,6 +2,7 @@ package com.cool.store.service;
import com.cool.store.request.AuditResultRequest;
import com.cool.store.request.SysBuildResultRequest;
import com.cool.store.response.LicenseApiResponse;
public interface KdzApiService {
/**
@@ -11,4 +12,6 @@ public interface KdzApiService {
*/
boolean auditResult(AuditResultRequest request);
LicenseApiResponse license(String storeNum);
}

View File

@@ -1,13 +1,19 @@
package com.cool.store.service;
import com.cool.store.request.AddSignFranchiseRequest;
import com.cool.store.response.AddSignFranchiseResponse;
import com.cool.store.response.ResponseResult;
public interface SignFranchiseService {
/**
* 提交加盟合同签约
*
* @param request
* @return
*/
ResponseResult submitSignFranchise(AddSignFranchiseRequest request);
AddSignFranchiseResponse getSignFranchise(Long shopId);
}

View File

@@ -0,0 +1,22 @@
package com.cool.store.service;
import com.cool.store.request.TempUserDetailRequest;
import com.cool.store.vo.TempUserDetailInfoVO;
import com.cool.store.vo.TempUserDetailListVO;
import com.cool.store.vo.TempUserDetailVO;
import java.util.List;
/**
* @author byd
* @date 2024-04-29 16:13
*/
public interface TempUserDetailService {
TempUserDetailListVO userList(Long shopId);
void addTempUserDetail(TempUserDetailRequest tempUserDetailRequest);
TempUserDetailInfoVO getUserInfoByIdUserDetailId(Long id);
}

View File

@@ -19,6 +19,6 @@ public interface YlfService {
* @Date: 2024/4/25
* @description:项目列表
*/
ProjectDTO getProjectList(String shopCode);
ProjectDTO getProjectList(String storeNum);
}

View File

@@ -0,0 +1,18 @@
package com.cool.store.service;
import com.cool.store.dto.yun.StudentResultDTO;
import java.util.List;
import java.util.Map;
/**
* @author byd
* @date 2024-04-29 9:55
*/
public interface YunXueTangApiService {
String getAccessToken();
Map<String, StudentResultDTO> studentResultUserList(List<String> userIdList);
}

View File

@@ -82,8 +82,8 @@ public class ApplyLicenseServiceImpl implements ApplyLicenseService {
shopAuditInfoDO.setSubmittedUserName(user.getName());
shopAuditInfoDO.setDataType(0);
shopAuditInfoMapper.insertSelective(shopAuditInfoDO);
}
shopStageInfoDAO.updateShopStageAndAuditInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_41,null);
}
return true;
}

View File

@@ -0,0 +1,30 @@
package com.cool.store.service.impl;
import com.cool.store.dao.AssessmentDataDAO;
import com.cool.store.entity.AssessmentDataDO;
import com.cool.store.service.AssessmentDataService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* @Auther: WangShuo
* @Date: 2024/04/29/下午10:47
* @Version 1.0
* @注释:
*/
@Service
public class AssessmentDataServiceImpl implements AssessmentDataService {
@Resource
private AssessmentDataDAO assessmentDataDAO;
@Override
public Boolean batchInsert(List<AssessmentDataDO> assessmentDataDOS) {
return assessmentDataDAO.batchInsert(assessmentDataDOS);
}
@Override
public Integer batchUpdate(List<AssessmentDataDO> assessmentDataDOS) {
return assessmentDataDAO.batchUpdate(assessmentDataDOS);
}
}

View File

@@ -7,10 +7,7 @@ import com.cool.store.dao.EnterpriseUserDAO;
import com.cool.store.dao.HyOpenAreaInfoDAO;
import com.cool.store.dao.LineAuditInfoDAO;
import com.cool.store.dao.LineInfoDAO;
import com.cool.store.entity.AuditStatusDO;
import com.cool.store.entity.LineAuditInfoDO;
import com.cool.store.entity.LineInfoDO;
import com.cool.store.entity.LineInterviewDO;
import com.cool.store.entity.*;
import com.cool.store.enums.AuditResultTypeEnum;
import com.cool.store.mapper.AuditStatusMapper;
import com.cool.store.mapper.LineInterviewMapper;
@@ -20,18 +17,15 @@ import com.cool.store.response.AuditDetailResponse;
import com.cool.store.response.CheckListResponse;
import com.cool.store.service.AuditStatusService;
import com.cool.store.utils.poi.DateUtils;
import com.cool.store.vo.BaseInfoVO;
import com.cool.store.vo.LineListVO;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
@Service
@@ -104,11 +98,16 @@ public class AuditStatusServiceImpl implements AuditStatusService {
LineInterviewDO lineInterviewDO = lineInterviewMapper.selectByPrimaryKey(auditStatusDO.getInterviewId());
LineAuditInfoDO auditInfo = lineAuditInfoDAO.getAuditInfo(auditStatusDO.getAuditId());
response.setVideoUrl(JSONObject.parseArray(lineInterviewDO.getVideoUrl(), String.class));
if (Objects.nonNull(lineInterviewDO.getActualStartTime())){
response.setStartTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, lineInterviewDO.getActualStartTime()));
}
if (Objects.nonNull(lineInterviewDO.getActualEndTime())){
response.setEndTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, lineInterviewDO.getActualEndTime()));
response.setCheckUser(auditStatusDO.getAuditUserName());
}
if (Objects.nonNull(auditStatusDO.getCreateTime())){
response.setCheckTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, auditStatusDO.getCreateTime()));
}
response.setCheckUser(auditStatusDO.getAuditUserName());
response.setCheckStatus(auditStatusDO.getAuditStatus());
if (auditInfo.getResultType() > 0) {
response.setCheckResult(auditInfo.getRejectPublicReason());
@@ -128,6 +127,12 @@ public class AuditStatusServiceImpl implements AuditStatusService {
Integer checkStage,
Integer pageNum,
Integer pageSize) {
if (Objects.nonNull(region)) {
HyOpenAreaInfoDO areaInfo = hyOpenAreaInfoDAO.selectById(Long.valueOf(region));
if (Objects.nonNull(areaInfo)) {
region = areaInfo.getAreaPath();
}
}
PageHelper.startPage(pageNum, pageSize);
List<CheckListResponse> checkListResponses = auditStatusMapper.checkList(partnerNameOrPhone, startTime, endTime, region, checkStatus, checkStage, pageNum, pageSize);
//意向区域

View File

@@ -2,15 +2,15 @@ package com.cool.store.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.constants.CommonConstants;
import com.cool.store.context.PartnerUserHolder;
import com.cool.store.dao.LineInfoDAO;
import com.cool.store.dao.LinePayDAO;
import com.cool.store.dao.RegionQrcodeConfigDao;
import com.cool.store.dao.ShopInfoDAO;
import com.cool.store.dao.*;
import com.cool.store.dto.decoration.*;
import com.cool.store.dto.openPreparation.OpenPlanShopInfoDTO;
import com.cool.store.entity.AcceptanceInfoDO;
import com.cool.store.entity.LineInfoDO;
import com.cool.store.entity.LinePayDO;
import com.cool.store.entity.ShopInfoDO;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.enums.WorkflowSubStageStatusEnum;
import com.cool.store.enums.point.PayBusinessTypeEnum;
@@ -18,14 +18,19 @@ import com.cool.store.enums.point.PayTypeEnum;
import com.cool.store.exception.ServiceException;
import com.cool.store.request.DecorationPayRequest;
import com.cool.store.request.LinePaySubmitRequest;
import com.cool.store.request.ThreeAcceptanceRequest;
import com.cool.store.response.ThreeAcceptanceResponse;
import com.cool.store.service.DecorationService;
import com.cool.store.service.LinePayService;
import com.cool.store.service.PreparationService;
import com.cool.store.service.YlfService;
import com.cool.store.utils.poi.StringUtils;
import com.cool.store.utils.poi.constant.Constants;
import com.cool.store.vo.DecorationModelVO;
import com.cool.store.vo.DesignInfoVo;
import com.cool.store.vo.LinePayVO;
import com.cool.store.vo.PartnerUserInfoVO;
import com.cool.store.vo.log.DesignLogVo;
import org.apache.poi.ss.formula.functions.T;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -54,29 +59,34 @@ public class DecorationServiceImpl implements DecorationService {
@Resource
private ShopInfoDAO shopInfoDAO;
@Resource
private LineInfoDAO lineInfoDAO;
private AcceptanceInfoDAO acceptanceInfoDAO;
@Resource
private PreparationService preparationService;
@Resource
private LinePayService linePayService;
private static String MEASURING_THE_ROOM = "量房";
private static String CONSTRUCTION_DRAWING = "施工图+预算";
@Override
public List<DesignInfoVo> decorations() {
return Collections.emptyList();
public Boolean flush(Long shopId) {
//TODO
return null;
}
@Override
public DesignInfoVo DesignInfo(Long shopId) {
DecorationDTO decoration = getDecorationDTO(shopId);
if (decoration == null) {
log.error("DecorationModel shopCode is null");
return null;
}
List<DesignSchemeDTO> designScheme = decoration.getDesignScheme();
List<ConstructionScheduleDTO> constructionSchedule = decoration.getConstructionSchedule();
Map<String, ConstructionScheduleDTO> constructionScheduleMap = constructionSchedule.stream().collect(Collectors.toMap(ConstructionScheduleDTO::getName,
dto -> dto));
//量房
ConstructionScheduleDTO measuringRoom = constructionScheduleMap.get(MEASURING_THE_ROOM);
ConstructionScheduleDTO measuringRoom = constructionScheduleMap.get(CommonConstants.MEASURING_THE_ROOM);
//施工图
ConstructionScheduleDTO ConstructionDrawings = constructionScheduleMap.get(CONSTRUCTION_DRAWING);
ConstructionScheduleDTO ConstructionDrawings = constructionScheduleMap.get(CommonConstants.CONSTRUCTION_DRAWING);
//预算
List<BudgetDTO> proposedBookBudget = decoration.getProposedBookBudget();
Collections.sort(decoration.getProposedBookBudget(), (x1, x2) -> x2.getId().compareTo(x1.getId()));
@@ -97,7 +107,10 @@ public class DecorationServiceImpl implements DecorationService {
throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR);
}
DecorationDTO decoration = getDecorationDTO(shopId);
//TODO 验证
if (decoration == null) {
log.error("DecorationModel shopCode is null");
return null;
}
//预算
List<BudgetDTO> proposedBookBudget = decoration.getProposedBookBudget();
Collections.sort(decoration.getProposedBookBudget(), (x1, x2) -> x2.getId().compareTo(x1.getId()));
@@ -110,31 +123,117 @@ public class DecorationServiceImpl implements DecorationService {
decorationModelDTO.setTotalAmount(totalAmount);
return decorationModelDTO;
}
@Transactional(rollbackFor = Exception.class)
@Override
public String submitDecorationModel(LinePaySubmitRequest request, PartnerUserInfoVO partnerUserInfoVO) {
DecorationDTO decoration = getDecorationDTO(request.getShopId());
if (decoration == null) {
log.error("DecorationModel shopCode is null");
return null;
}
if (decoration.getPayment() != null && decoration.getPayment().size() > 0) {
request.setPayStatus(WorkflowSubStageStatusEnum.PAY_DEPOSIT_50.getCode());
} else {
request.setPayStatus(WorkflowSubStageStatusEnum.PAY_DEPOSIT_45.getCode());
}
Long payId = linePayService.submitPayInfo(request, partnerUserInfoVO);
return payId.toString();
}
@Override
public DecorationModelVO getDecorationModel(Long shopId, PartnerUserInfoVO partnerUserInfoVO) {
ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(shopId);
Long lineId = shopInfo.getLineId();
LinePayVO linePayInfo = linePayService.getLinePayInfo(lineId);
if (Objects.isNull(linePayInfo)) {
return null;
}
if (Objects.isNull(partnerUserInfoVO)) {
partnerUserInfoVO = new PartnerUserInfoVO();
BeanUtil.copyProperties(shopInfo, partnerUserInfoVO);
}
DecorationDTO decoration = getDecorationDTO(shopId);
if (decoration == null) {
log.error("DecorationModel shopCode is null");
return null;
}
List<BudgetDTO> proposedBookBudget = decoration.getProposedBookBudget();
Collections.sort(decoration.getProposedBookBudget(), (x1, x2) -> x2.getId().compareTo(x1.getId()));
String totalAmount = proposedBookBudget.get(0).getTotalAmount();
if (decoration.getPayment() != null && decoration.getPayment().size() > 0
&& (byte) WorkflowSubStageStatusEnum.PAY_DEPOSIT_50.getCode().intValue() == linePayInfo.getPayStatus()) {
linePayInfo.setPayStatus((byte) WorkflowSubStageStatusEnum.PAY_DEPOSIT_50.getCode().intValue());
LinePaySubmitRequest submitRequest = new LinePaySubmitRequest();
BeanUtil.copyProperties(linePayInfo, submitRequest);
linePayService.submitPayInfo(submitRequest, partnerUserInfoVO);
}
DecorationModelVO decorationModelVO = new DecorationModelVO();
BeanUtil.copyProperties(linePayInfo, decorationModelVO);
decorationModelVO.setAmount(totalAmount);
return decorationModelVO;
}
@Override
public List<ConstructionScheduleDTO> getConstruction(Long shopId) {
DecorationDTO decoration = getDecorationDTO(shopId);
if (decoration == null) {
log.error("DecorationModel shopCode is null");
return null;
}
List<ConstructionScheduleDTO> constructionSchedule = decoration.getConstructionSchedule();
Map<String, ConstructionScheduleDTO> constructionScheduleMap = constructionSchedule.stream().collect(Collectors.toMap(ConstructionScheduleDTO::getName,
dto -> dto));
constructionScheduleMap.remove(MEASURING_THE_ROOM);
constructionScheduleMap.remove(CONSTRUCTION_DRAWING);
List<ConstructionScheduleDTO> collect = constructionScheduleMap.values().stream().collect(Collectors.toList());
List<ConstructionScheduleDTO> collect = new ArrayList<>();
collect.add(constructionScheduleMap.get(CommonConstants.APPROACH));
collect.add(constructionScheduleMap.get(CommonConstants.ONE_DAY));
collect.add(constructionScheduleMap.get(CommonConstants.TWO_DAY));
collect.add(constructionScheduleMap.get(CommonConstants.THREE_DAY));
collect.add(constructionScheduleMap.get(CommonConstants.FOUR_DAY));
collect.add(constructionScheduleMap.get(CommonConstants.FIVE_DAY));
collect.add(constructionScheduleMap.get(CommonConstants.SIX_DAY));
collect.add(constructionScheduleMap.get(CommonConstants.SEVEN_DAY));
collect.add(constructionScheduleMap.get(CommonConstants.EIGHT_DAY));
collect.add(constructionScheduleMap.get(CommonConstants.WITHDRAWAL));
collect.sort(Comparator.comparing(ConstructionScheduleDTO::getId));
return collect;
}
@Override
public ConstructionScheduleDTO getConstructionInfo(Long shopId) {
DecorationDTO decoration = getDecorationDTO(shopId);
if (decoration == null) {
log.error("DecorationModel shopCode is null");
return null;
}
List<ConstructionScheduleDTO> constructionSchedule = decoration.getConstructionSchedule();
Map<String, ConstructionScheduleDTO> constructionScheduleMap = constructionSchedule.stream().collect(Collectors.toMap(ConstructionScheduleDTO::getName,
dto -> dto));
ConstructionScheduleDTO constructionScheduleDTO = constructionScheduleMap.get(CommonConstants.CONSTRUCTION_PHASE);
return constructionScheduleDTO;
}
@Transactional(rollbackFor = Exception.class)
@Override
public Integer submitAcceptance(ThreeAcceptanceRequest request) {
AcceptanceInfoDO acceptanceInfoDO = new AcceptanceInfoDO();
BeanUtil.copyProperties(request, acceptanceInfoDO);
acceptanceInfoDO.setUpdateTime(new Date());
Integer flag = acceptanceInfoDAO.updateAcceptanceInfo(acceptanceInfoDO);
if (flag != null && flag > 0) {
preparationService.whetherToOpenForAcceptance(request.getShopId());
}
return flag;
}
@Override
public ThreeAcceptanceResponse getThreeAcceptance(Long shopId) {
AcceptanceInfoDO acceptanceInfoDO = acceptanceInfoDAO.selectByShopId(shopId);
ThreeAcceptanceResponse response = new ThreeAcceptanceResponse();
BeanUtil.copyProperties(acceptanceInfoDO, response);
response.setAcceptanceTime(acceptanceInfoDO.getUpdateTime());
return response;
}
private DecorationDTO getDecorationDTO(Long shopId) {
List<Long> shopIds = new ArrayList<>();
shopIds.add(shopId);

View File

@@ -111,7 +111,7 @@ public class FirstOrderServiceImp implements FirstOrderService {
FirstOrderDTO order = firstOrderDAO.selectFirstOrderByShopId(shopId);
ShopStageInfoDO firstOrderStageInfo = shopStageInfoDAO.
getShopSubStageInfo(shopId, ShopSubStageEnum.SHOP_STAGE_15);
order.setResultType(firstOrderStageInfo.getShopSubStageStatus());
order.setFirstOrderSubStage(firstOrderStageInfo.getShopSubStageStatus());
return order;
}

View File

@@ -51,7 +51,7 @@ public class FranchiseFeeServiceImpl implements FranchiseFeeService {
public Boolean submitLicense(FranchiseFeeRequest request) {
log.info("submitLicense request{}", JSONObject.toJSONString(request));
FranchiseFeeDO franchiseFeeDO = request.toFranchiseFeeDO();
shopStageInfoDAO.updateShopStageInfo(request.getShopId(),ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_72);
shopStageInfoDAO.updateShopStageInfo(request.getShopId(),ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_71);
return franchiseFeeMapper.insertSelective(franchiseFeeDO) == 1 ? true:false;
}
@@ -59,7 +59,7 @@ public class FranchiseFeeServiceImpl implements FranchiseFeeService {
public FranchiseFeeResponse getDetail(Long shopId) {
FranchiseFeeDO franchiseFeeDO = new FranchiseFeeDO();
franchiseFeeDO.setShopId(shopId);
FranchiseFeeDO result = franchiseFeeMapper.selectOneByExample(franchiseFeeDO);
FranchiseFeeDO result = franchiseFeeMapper.selectOne(franchiseFeeDO);
LinePayDO linePayDO = linePayMapper.selectByPrimaryKey(result.getPayId());
LineInfoDO lineInfoDO = lineInfoMapper.getByLineId(linePayDO.getLineId());
FranchiseFeeResponse resp = FranchiseFeeResponse.from(result);

View File

@@ -1,12 +1,23 @@
package com.cool.store.service.impl;
import com.cool.store.entity.LicenseTransactDO;
import com.cool.store.entity.ShopInfoDO;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.enums.LicenseTypeEnum;
import com.cool.store.exception.ServiceException;
import com.cool.store.mapper.ApplyLicenseMapper;
import com.cool.store.mapper.PointInfoMapper;
import com.cool.store.mapper.ShopInfoMapper;
import com.cool.store.request.AuditResultRequest;
import com.cool.store.response.LicenseApiResponse;
import com.cool.store.service.KdzApiService;
import com.cool.store.utils.StringUtil;
import com.cool.store.utils.poi.DateUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
import springfox.documentation.swagger2.mappers.LicenseMapper;
import javax.annotation.Resource;
import java.util.Objects;
@@ -18,6 +29,12 @@ public class KdzApiServiceImpl implements KdzApiService {
@Resource
private CommonService commonService;
@Resource
private ShopInfoMapper shopInfoMapper;
@Resource
ApplyLicenseMapper applyLicenseMapper;
@Override
public boolean auditResult(AuditResultRequest request) {
if (Objects.isNull(request) || StringUtil.isBlank(request.getKdzBusinessId())) {
@@ -27,4 +44,44 @@ public class KdzApiServiceImpl implements KdzApiService {
return result;
}
@Override
public LicenseApiResponse license(String storeNum) {
ShopInfoDO shopInfoDO = shopInfoMapper.selectByStoreNum(storeNum);
if (Objects.isNull(shopInfoDO)){
throw new ServiceException(ErrorCodeEnum.STORE_NUM_NOT_FOUND);
}
Long shopId = shopInfoDO.getId();
LicenseTransactDO licenseTransactDO = new LicenseTransactDO();
licenseTransactDO.setShopId(shopId);
licenseTransactDO = applyLicenseMapper.selectOne(licenseTransactDO);
LicenseApiResponse convertResp = convert(licenseTransactDO,storeNum);
return convertResp;
}
public LicenseApiResponse convert(LicenseTransactDO licenseTransactDO,
String storeNum){
LicenseApiResponse response = LicenseApiResponse.builder()
.storeBusinessAdd(licenseTransactDO.getLicenseAddress())
.storeBusinessDate(DateUtils.dateTime(licenseTransactDO.getIssueTime()))
.storeBusinessImg(licenseTransactDO.getCreditUrl())
.storeBusinessName(licenseTransactDO.getBusinessLicense())
.storeBusinessNumber(licenseTransactDO.getCreditCode())
.storeBusinessType(LicenseTypeEnum.match(licenseTransactDO.getLicenseType()).getMessage())
.storeBusinessValidPeriod(Objects.isNull(licenseTransactDO.getValidity()) ? "9" : DateUtils.dateTime(licenseTransactDO.getValidity()))
.storeCode(storeNum)
.storeDirector(licenseTransactDO.getLicenseLegalPerson())
.storeFoodLicense(licenseTransactDO.getFoodBusinessLicenseCode())
.storeFoodLicenseBeginDate(DateUtils.dateTime(licenseTransactDO.getFoodBusinessStartTime()))
.storeFoodLicenseEndDate(DateUtils.dateTime(licenseTransactDO.getFoodBusinessEndTime()))
.storeFoodLicenseBusinessAddress(licenseTransactDO.getFoodLicenseAddress())
.storeFoodLicenseBusinessScope(licenseTransactDO.getBusinessProject())
.storeFoodLicenseImg(licenseTransactDO.getFoodBusinessLicenseUrl())
.storeFoodLicenseLegalRepresentative(licenseTransactDO.getFoodLicenseLegalPerson())
.storeFoodLicenseMainBusiness(licenseTransactDO.getMainBusiness())
.storeFoodLicenseOperatorName(licenseTransactDO.getOperator())
.storeRemark("")
.build();
return response;
}
}

View File

@@ -211,8 +211,6 @@ public class LineInterviewServiceImpl extends LineFlowService implements LineInt
updateEvent.setEndTime(endTime);
updateEvent.setInterviewDate(startTime);
lineCalendarsEventDAO.updateCalendarsEvent(updateEvent);
JSONObject jsonObject = new JSONObject();
commonService.sendSms(lineInfo.getMobile(), SMSMsgEnum.MODIFY_INTERVIEW_TIME, jsonObject);
return true;
}
@@ -394,9 +392,11 @@ public class LineInterviewServiceImpl extends LineFlowService implements LineInt
WorkflowSubStageStatusEnum workflowSubStageStatus = null;
if(WorkflowSubStageEnum.FIRST_INTERVIEWS.getCode().equals(lineInfo.getWorkflowSubStage())){
workflowSubStageStatus = WorkflowSubStageStatusEnum.FIRST_INTERVIEWS_42;
commonService.sendSms(lineInfo.getMobile(), SMSMsgEnum.FIRST_INTERVIEW_REAPPOINTMENT, new JSONObject());
}
if(WorkflowSubStageEnum.SECOND_INTERVIEWS.getCode().equals(lineInfo.getWorkflowSubStage())){
workflowSubStageStatus = WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_120;
commonService.sendSms(lineInfo.getMobile(), SMSMsgEnum.SECOND_INTERVIEW_REAPPOINTMENT, new JSONObject());
}
return lineInfoDAO.updateWorkflowStage(lineInfo.getId(), null, workflowSubStageStatus,null);
}
@@ -414,14 +414,19 @@ public class LineInterviewServiceImpl extends LineFlowService implements LineInt
updateInterviewInfo.setId(interviewInfo.getId());
updateInterviewInfo.setAuditId(auditId);
updateInterviewInfo.setInterviewStatus(InterviewStatusEnum.PASS.getCode());
if(!WorkflowSubStageEnum.SECOND_INTERVIEWS.equals(workflowSubStageEnum)){
if(WorkflowSubStageEnum.INVITING_INTERVIEWS.equals(workflowSubStageEnum)){
//更新线索阶段
lineInfoDAO.updateWorkflowStage(lineInfo.getId(), nextStage, nextStage.getInitStatus(),userId);
commonService.sendSms(lineInfo.getMobile(), SMSMsgEnum.INTERVIEW_APPOINTMENT_SUCCESS, new JSONObject());
}
if(WorkflowSubStageEnum.FIRST_INTERVIEWS.equals(workflowSubStageEnum)){
//更新线索阶段
lineInfoDAO.updateWorkflowStage(lineInfo.getId(), nextStage, nextStage.getInitStatus(),userId);
//一审稽核
auditStatusService.insert(lineInfo.getId(),interviewInfo.getId(),auditId,AuditStageEnum.ONE.getCode());
commonService.sendSms(lineInfo.getMobile(), SMSMsgEnum.INTENTION_PAYMENT, new JSONObject());
}
}else{
if(WorkflowSubStageEnum.SECOND_INTERVIEWS.equals(workflowSubStageEnum)){
LineInfoDO updateLine = new LineInfoDO();
updateLine.setId(lineInfo.getId());
updateLine.setWorkflowStage(WorkflowStageEnum.STORE.getCode());
@@ -436,7 +441,7 @@ public class LineInterviewServiceImpl extends LineFlowService implements LineInt
//二审稽核
auditStatusService.insert(lineInfo.getId(),interviewInfo.getId(),auditId,AuditStageEnum.TWO.getCode());
//发送短信
commonService.sendSms(lineInfo.getMobile(), SMSMsgEnum.SECOND_INTERVIEW_PASS, null);
commonService.sendSms(lineInfo.getMobile(), SMSMsgEnum.SECOND_INTERVIEW_SUCCESS, null);
}
return lineInterviewDAO.updateInterviewInfo(updateInterviewInfo) > 0;
}

View File

@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import com.cool.store.dao.HyPartnerUserInfoDAO;
import com.cool.store.dao.LineInfoDAO;
import com.cool.store.dao.LinePayDAO;
import com.cool.store.dao.ShopStageInfoDAO;
import com.cool.store.entity.FranchiseFeeDO;
import com.cool.store.entity.HyPartnerUserInfoDO;
import com.cool.store.entity.LineInfoDO;
@@ -13,6 +14,7 @@ import com.cool.store.enums.WorkflowSubStageEnum;
import com.cool.store.enums.WorkflowSubStageStatusEnum;
import com.cool.store.enums.point.PayBusinessTypeEnum;
import com.cool.store.enums.point.PayTypeEnum;
import com.cool.store.enums.point.ShopSubStageStatusEnum;
import com.cool.store.exception.ServiceException;
import com.cool.store.mapper.FranchiseFeeMapper;
import com.cool.store.mapper.LineInfoMapper;
@@ -47,6 +49,9 @@ public class LinePayServiceImpl implements LinePayService {
@Resource
FranchiseFeeMapper franchiseFeeMapper;
@Resource
ShopStageInfoDAO shopStageInfoDAO;
@Override
public LinePayVO getLinePayInfo(Long lineId) {
LinePayVO result = null;
@@ -84,10 +89,21 @@ public class LinePayServiceImpl implements LinePayService {
fillLinePay(false, linePayDO, request, partnerUser);
linePayDAO.updateLinePay(linePayDO);
}
}
if(request.getPayBusinessType() != null
&& request.getPayBusinessType() == 0
shopStageInfoDAO.updateShopStageInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_72);
} else if (request.getPayBusinessType() != null
&& request.getPayBusinessType() == PayBusinessTypeEnum.DECORATION_MODEL.getCode()
&& request.getShopId() != null) {
LinePayDO linePayDO = linePayDAO.getLinePayByLineIdAndPayType(request.getLineId(), PayBusinessTypeEnum.DECORATION_MODEL.getCode());
if (linePayDO == null) {
linePayDO = new LinePayDO();
fillLinePay(true, linePayDO, request, partnerUser);
linePayDAO.addLinePay(linePayDO);
} else {
fillLinePay(false, linePayDO, request, partnerUser);
linePayDAO.updateLinePay(linePayDO);
}
return linePayDO.getId();
} else {
LinePayDO linePayDO = linePayDAO.getLinePayByLineIdAndPayType(request.getLineId(), 0);
if (linePayDO == null) {
linePayDO = new LinePayDO();
@@ -103,20 +119,7 @@ public class LinePayServiceImpl implements LinePayService {
lineInfoDAO.insertOrUpdate(lineInfo);
return linePayDO.getId();
}
if (request.getPayBusinessType() != null
&& request.getPayBusinessType() == PayBusinessTypeEnum.DECORATION_MODEL.getCode()
&& request.getShopId() != null){
LinePayDO linePayDO = linePayDAO.getLinePayByLineIdAndPayType(request.getLineId(),PayBusinessTypeEnum.DECORATION_MODEL.getCode());
if(linePayDO == null){
linePayDO = new LinePayDO();
fillLinePay(true, linePayDO, request, partnerUser);
linePayDAO.addLinePay(linePayDO);
}else {
fillLinePay(false, linePayDO, request, partnerUser);
linePayDAO.updateLinePay(linePayDO);
}
return linePayDO.getId();
}
return null;
}

View File

@@ -10,6 +10,7 @@ import com.cool.store.dto.openPreparation.OpenPlanShopInfoDTO;
import com.cool.store.dto.openPreparation.OpeningOperationPlanDTO;
import com.cool.store.dto.openPreparation.PlanLineDTO;
import com.cool.store.dto.openPreparation.UserNameDTO;
import com.cool.store.entity.EnterpriseUserDO;
import com.cool.store.entity.OpeningOperationPlanDO;
import com.cool.store.entity.ShopInfoDO;
import com.cool.store.entity.ShopStageInfoDO;
@@ -123,6 +124,8 @@ public class OpeningOperationPlanImpl implements OpeningOperationPlanService {
String preparationUserIds = openingOperationPlanDO.getPreparationUserIds();
List<String> stream = Arrays.stream(preparationUserIds.split(CommonConstants.COMMA)).collect(Collectors.toList());
List<UserNameDTO> nameByUserId = enterpriseUserDAO.getNameByUserId(stream);
EnterpriseUserDO username = enterpriseUserDAO.getUserInfoById(openingOperationPlanDO.getSubmittedUserId());
openingOperationPlanVO.setSubmittedUserName(username.getName());
openingOperationPlanVO.setPreparationUsers(nameByUserId);
return openingOperationPlanVO;
}

View File

@@ -11,7 +11,6 @@ import com.cool.store.enums.point.*;
import com.cool.store.exception.ServiceException;
import com.cool.store.request.*;
import com.cool.store.service.*;
import com.cool.store.utils.GeoMapUtil;
import com.cool.store.utils.RedisUtilPool;
import com.cool.store.utils.poi.StringUtils;
import com.cool.store.vo.AuditInfoVO;
@@ -362,13 +361,25 @@ public class PointServiceImpl implements PointService {
//没有下一节点 审批通过
updatePoint.setPointStatus(PointStatusEnum.POINT_STATUS_5.getCode());
if(SelectStatusEnum.SELECT_STATUS_1.getCode().equals(pointInfo.getSelectStatus())){
shopStageInfoDAO.batchUpdateShopStageStatus(pointInfo.getShopId(), Arrays.asList(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_12, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_20));
initUploadRentContract(pointInfo);
}
commonService.sendMessage(Arrays.asList(pointInfo.getDevelopmentManager()), MessageEnum.MESSAGE_11, pointInfo.getPointName(), pointInfo.getAddress());
}
return pointInfoDAO.updatePointInfo(updatePoint);
}
/**
* 初始化上传租赁合同阶段
* @param pointInfo
*/
private void initUploadRentContract(PointInfoDO pointInfo) {
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(pointInfo.getLineId());
shopStageInfoDAO.batchUpdateShopStageStatus(pointInfo.getShopId(), Arrays.asList(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_12, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_20));
JSONObject templateParam = new JSONObject();
templateParam.put("pointName", pointInfo.getAddress());
commonService.sendSms(lineInfo.getMobile(), SMSMsgEnum.SELECT_SUCCESS, templateParam);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Integer audit(String userId, PointAuditRequest request) {
@@ -424,7 +435,7 @@ public class PointServiceImpl implements PointService {
pointInfoUpdate.setId(pointId);
pointInfoUpdate.setPointStatus(PointStatusEnum.POINT_STATUS_5.getCode());
if(SelectStatusEnum.SELECT_STATUS_1.getCode().equals(pointInfo.getSelectStatus())){
shopStageInfoDAO.batchUpdateShopStageStatus(pointInfo.getShopId(), Arrays.asList(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_12, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_20));
initUploadRentContract(pointInfo);
}
commonService.sendMessage(Arrays.asList(pointInfo.getDevelopmentManager()), MessageEnum.MESSAGE_11, pointInfo.getPointName(), pointInfo.getAddress());
return pointInfoDAO.updatePointInfo(pointInfoUpdate);
@@ -740,6 +751,10 @@ public class PointServiceImpl implements PointService {
if(PointStatusEnum.POINT_STATUS_5.getCode().equals(pointInfo.getPointStatus())){
selectStatus = ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_12;
updateStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_20);
JSONObject templateParam = new JSONObject();
templateParam.put("pointName", pointInfo.getAddress());
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(pointInfo.getLineId());
commonService.sendSms(lineInfo.getMobile(), SMSMsgEnum.SELECT_SUCCESS, templateParam);
}
updateStatusList.add(selectStatus);
shopStageInfoDAO.batchUpdateShopStageStatus(shopId, updateStatusList);
@@ -827,7 +842,8 @@ public class PointServiceImpl implements PointService {
if(Objects.isNull(shopSubStageInfo)){
throw new ServiceException(ErrorCodeEnum.SHOP_STAGE_ERROR);
}
if(!shopSubStageInfo.getShopSubStageStatus().equals(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_20.getShopSubStageStatus())){
List<Integer> operateStatusList = Lists.newArrayList(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_20.getShopSubStageStatus(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_22.getShopSubStageStatus());
if(!operateStatusList.contains(shopSubStageInfo.getShopSubStageStatus())){
throw new ServiceException(ErrorCodeEnum.SHOP_STAGE_NOT_OPERATE);
}
//是否存在租赁合同
@@ -875,6 +891,10 @@ public class PointServiceImpl implements PointService {
}
Long auditId = shopAuditInfoDAO.addAuditInfo(AuditRentContractRequest.convert(request, AuditTypeEnum.UPLOAD_RENT_CONTRACT));
ShopSubStageStatusEnum subStageStatus = AuditResultTypeEnum.PASS.getCode().equals(request.getResultType()) ? ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_23 : ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_22;
if(AuditResultTypeEnum.REJECT.getCode().equals(request.getResultType())){
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(shopInfo.getLineId());
commonService.sendSms(lineInfo.getMobile(), SMSMsgEnum.RENT_CONTRACT_AUDIT_FAIL, new JSONObject());
}
if(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_23.equals(subStageStatus)){
//审核通过铺位变为已签约
PointInfoDO updatePoint = new PointInfoDO();

View File

@@ -4,6 +4,10 @@ import com.cool.store.constants.CommonConstants;
import com.cool.store.dao.*;
import com.cool.store.dto.Preparation.PreparationDTO;
import com.cool.store.dto.Preparation.ScheduleDTO;
import com.cool.store.dto.decoration.ConstructionScheduleDTO;
import com.cool.store.dto.decoration.DecorationDTO;
import com.cool.store.dto.decoration.ProjectDTO;
import com.cool.store.dto.openPreparation.OpenPlanShopInfoDTO;
import com.cool.store.entity.*;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.enums.point.ShopStageEnum;
@@ -11,10 +15,7 @@ import com.cool.store.enums.point.ShopSubStageEnum;
import com.cool.store.enums.point.ShopSubStageStatusEnum;
import com.cool.store.exception.ServiceException;
import com.cool.store.request.PreparationRequest;
import com.cool.store.service.PreparationService;
import com.cool.store.service.RegionService;
import com.cool.store.service.SysRoleService;
import com.cool.store.service.UserAuthMappingService;
import com.cool.store.service.*;
import com.cool.store.utils.poi.DateUtils;
import com.cool.store.utils.poi.StringUtils;
import com.cool.store.utils.poi.constant.Constants;
@@ -24,9 +25,13 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.google.common.collect.Lists;
import org.apache.commons.collections4.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@@ -38,6 +43,7 @@ import java.util.stream.Collectors;
@Service
public class PreparationServiceImpl implements PreparationService {
private static final Logger log = LoggerFactory.getLogger(PreparationServiceImpl.class);
@Resource
private ShopStageInfoDAO shopStageInfoDAO;
@Resource
@@ -54,7 +60,12 @@ public class PreparationServiceImpl implements PreparationService {
EnterpriseUserDAO enterpriseUserDAO;
@Resource
LineInfoDAO lineInfoDAO;
@Resource
private AcceptanceInfoDAO acceptanceInfoDAO;
@Resource
private YlfService ylfService;
@Resource
private DecorationService decorationService;
@Override
public PageInfo<PreparationScheduleVO> getPreparationSchedule(PreparationRequest request) {
@@ -179,6 +190,11 @@ public class PreparationServiceImpl implements PreparationService {
ShopStageInfoDO data2 = shopStageInfoDOMap.get(ShopSubStageEnum.SHOP_STAGE_11.getShopSubStage());
data2.setShopSubStageStatus(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_110.getShopSubStageStatus());
list.add(data2);
//初始化xfsg_acceptance_info表
AcceptanceInfoDO acceptanceInfoDO = new AcceptanceInfoDO();
acceptanceInfoDO.setShopId(shopId);
acceptanceInfoDO.setCreateTime(new Date());
acceptanceInfoDAO.insertAcceptanceInfo(acceptanceInfoDO);
ShopStageInfoDO data3 = shopStageInfoDOMap.get(ShopSubStageEnum.SHOP_STAGE_14.getShopSubStage());
data3.setShopSubStageStatus(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_140.getShopSubStageStatus());
list.add(data3);
@@ -190,7 +206,6 @@ public class PreparationServiceImpl implements PreparationService {
}
}
@Override
public void whetherToOpenForAcceptance(Long shopId) {
Integer allCompletionCount = shopStageInfoDAO.getAllCompletionCount(shopId);

View File

@@ -2,26 +2,25 @@ package com.cool.store.service.impl;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.context.CurrentUserHolder;
import com.cool.store.context.LoginUserInfo;
import com.cool.store.dao.ShopStageInfoDAO;
import com.cool.store.entity.*;
import com.cool.store.enums.AuditEnum;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.enums.SignTypeEnum;
import com.cool.store.enums.*;
import com.cool.store.enums.point.ShopSubStageStatusEnum;
import com.cool.store.exception.ServiceException;
import com.cool.store.mapper.*;
import com.cool.store.request.AddSignFranchiseRequest;
import com.cool.store.request.AuditResultRequest;
import com.cool.store.request.FranchiseAgreementRequest;
import com.cool.store.response.AddSignFranchiseResponse;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.CoolStoreStartFlowService;
import com.cool.store.service.SignFranchiseService;
import com.cool.store.service.SysStoreAppService;
import com.cool.store.utils.poi.DateUtils;
import com.cool.store.utils.poi.constant.Constants;
import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -74,6 +73,9 @@ public class SignFranchiseServiceImpl implements SignFranchiseService ,AuditResu
@Resource
ShopStageInfoDAO shopStageInfoDAO;
@Resource
ShopAuditInfoMapper shopAuditInfoMapper;
@Override
public Boolean auditResult(AuditResultRequest request) {
log.info("SignFranchiseServiceImpl auditResult request{}", JSONObject.toJSONString(request));
@@ -85,6 +87,22 @@ public class SignFranchiseServiceImpl implements SignFranchiseService ,AuditResu
shopSubStageStatusEnum = ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_85;
}
shopStageInfoDAO.updateShopStageInfo(shopId, shopSubStageStatusEnum);
ShopAuditInfoDO shopAuditInfoDO = new ShopAuditInfoDO();
shopAuditInfoDO.setShopId(shopId);
shopAuditInfoDO.setAuditType(AuditTypeEnum.SIGN_FRANCHISE.getCode());
LoginUserInfo user = CurrentUserHolder.getUser();
shopAuditInfoDO.setSubmittedUserId(user.getUserId());
shopAuditInfoDO.setSubmittedUserName(user.getName());
if (request.getAuditResult() == Constants.ZERO_INTEGER){
shopAuditInfoDO.setResultType(Constants.ONE_INTEGER);
shopAuditInfoDO.setRejectReason(request.getCause());
}else if (request.getAuditResult() == Constants.ONE_INTEGER){
shopAuditInfoDO.setResultType(Constants.ZERO_INTEGER);
shopAuditInfoDO.setPassReason(request.getCause());
}
shopAuditInfoMapper.insertSelective(shopAuditInfoDO);
Long auditId = shopAuditInfoDO.getId();
systemBuildingShopMapper.updateAuditByShopId(auditId,shopId);
return null;
}
@@ -144,7 +162,8 @@ public class SignFranchiseServiceImpl implements SignFranchiseService ,AuditResu
//三方部门表
ThirdDepartmentDO thirdDepartmentDO = thirdDepartmentMapper.getByName(systemBuildingShopDO.getBigName());
//找不到的url统一用这个
List<String> temp = new ArrayList<>();temp.add("object");
List<String> temp = new ArrayList<>();
temp.add("object");
Convert.digitToChinese(123);
FranchiseAgreementRequest buildResult = FranchiseAgreementRequest.builder()
.apply_user(user.getJobNumber())
@@ -254,4 +273,110 @@ public class SignFranchiseServiceImpl implements SignFranchiseService ,AuditResu
return buildResult;
}
@Override
public AddSignFranchiseResponse getSignFranchise(Long shopId) {
SignFranchiseDO signFranchiseDO = signFranchiseMapper.selectByShopId(shopId);
AddSignFranchiseResponse response = from(signFranchiseDO, shopId);
if (Objects.nonNull(signFranchiseDO)){
ShopAuditInfoDO shopAuditInfoDO = shopAuditInfoMapper.selectByPrimaryKey(signFranchiseDO.getAuditId());
response.setStatus(shopAuditInfoDO.getResultType());
if (shopAuditInfoDO.getResultType() == 0){
response.setResult(shopAuditInfoDO.getPassReason());
}else {
response.setResult(shopAuditInfoDO.getRejectReason());
}
response.setResultTime(shopAuditInfoDO.getCreateTime());
}
return response;
}
public AddSignFranchiseResponse from(SignFranchiseDO signFranchiseDO,
Long shopId) {
AddSignFranchiseResponse addSignFranchiseResponse = new AddSignFranchiseResponse();
//店铺信息
ShopInfoDO shopInfoDO = shopInfoMapper.selectByPrimaryKey(shopId);
//线索信息
LineInfoDO lineInfoDO = lineInfoMapper.getByLineId(shopInfoDO.getLineId());
//缴费信息
FranchiseFeeDO franchiseFeeDO = franchiseFeeMapper.selectOne(FranchiseFeeDO.builder().shopId(shopId).build());
//线索id
Long lineId = shopInfoDO.getLineId();
//签约信息
SigningBaseInfoDO signingBaseInfoDO = intentAgreementMapper.selectByPartnerIdOrLineId(null, lineId);
//缴款信息
LinePayDO linePayDO = linePayMapper.getLinePayByLineIdAndPayType(lineId, 1);
//铺位信息
PointInfoDO pointInfoDO = pointInfoMapper.getDataByShopIdAndLineId(lineId, shopId);
//建店数据
SystemBuildingShopDO systemBuildingShopDO = systemBuildingShopMapper.selectOne(SystemBuildingShopDO.builder().shopId(shopId).lineId(lineId).build());
//证照办理
LicenseTransactDO licenseTransactDO = applyLicenseMapper.selectOne(LicenseTransactDO.builder().shopId(shopId).build());
if (Objects.nonNull(signFranchiseDO)) {
addSignFranchiseResponse.setId(signFranchiseDO.getId());
addSignFranchiseResponse.setShopId(signFranchiseDO.getShopId());
addSignFranchiseResponse.setSignType(signFranchiseDO.getSignType());
addSignFranchiseResponse.setBrandFee(signFranchiseDO.getBrandFee());
addSignFranchiseResponse.setIsBusinessLicense(signFranchiseDO.getIsBusinessLicense());
addSignFranchiseResponse.setIsFoodLicense(signFranchiseDO.getIsFoodLicense());
addSignFranchiseResponse.setContractStartTime(signFranchiseDO.getContractStartTime());
addSignFranchiseResponse.setContractStartEndTime(signFranchiseDO.getContractStartEndTime());
addSignFranchiseResponse.setImpressionNum(signFranchiseDO.getImpressionNum());
addSignFranchiseResponse.setBusinessStartHours(signFranchiseDO.getBusinessStartHours());
addSignFranchiseResponse.setBusinessEndHours(signFranchiseDO.getBusinessEndHours());
addSignFranchiseResponse.setIrregularReason(signFranchiseDO.getIrregularReason());
addSignFranchiseResponse.setRemark(signFranchiseDO.getRemark());
addSignFranchiseResponse.setResign(signFranchiseDO.getResign());
addSignFranchiseResponse.setMobile(signFranchiseDO.getMobile());
} else {
addSignFranchiseResponse.setMobile(lineInfoDO.getMobile());
}
if(Objects.nonNull(systemBuildingShopDO)){
addSignFranchiseResponse.setStoreName(systemBuildingShopDO.getStoreName());
addSignFranchiseResponse.setBigRegion(systemBuildingShopDO.getBigName());
addSignFranchiseResponse.setBigRegionManager(systemBuildingShopDO.getRegioGeneral());
addSignFranchiseResponse.setFranchiseeType(FranchiseeTypeEnum.getByCode(systemBuildingShopDO.getFranchiseeType()).getMessage());
addSignFranchiseResponse.setReasons(systemBuildingShopDO.getReasons());
}
if (Objects.nonNull(pointInfoDO)){
addSignFranchiseResponse.setStoreAddress(pointInfoDO.getAddress());
}
if (Objects.nonNull(linePayDO)){
addSignFranchiseResponse.setPayName(linePayDO.getPayUserName());
addSignFranchiseResponse.setBankCardNo(linePayDO.getPayAccount());
addSignFranchiseResponse.setBank(linePayDO.getBankName());
addSignFranchiseResponse.setSubBank(linePayDO.getBranchBankName());
addSignFranchiseResponse.setPayDate(linePayDO.getPayTime());
}
if (Objects.nonNull(licenseTransactDO)){
addSignFranchiseResponse.setLicenseName(licenseTransactDO.getBusinessLicense());
addSignFranchiseResponse.setOpeAddress(licenseTransactDO.getLicenseAddress());
addSignFranchiseResponse.setOperator(licenseTransactDO.getOperator());
}
if (Objects.nonNull(lineInfoDO)){
addSignFranchiseResponse.setPartnerName(lineInfoDO.getUsername());
}
if (Objects.nonNull(signingBaseInfoDO)){
addSignFranchiseResponse.setIdCardNo(signingBaseInfoDO.getIdCardNo());
addSignFranchiseResponse.setIdCardAddress(signingBaseInfoDO.getIdCardAddress());
}
if (Objects.nonNull(franchiseFeeDO)){
addSignFranchiseResponse.setYearFranchiseFee(franchiseFeeDO.getYearFranchiseFee());
addSignFranchiseResponse.setBigYearFranchiseFee(Convert.digitToChinese(Integer.valueOf(franchiseFeeDO.getYearFranchiseFee())));
addSignFranchiseResponse.setLoanMargin(franchiseFeeDO.getLoanMargin());
addSignFranchiseResponse.setBigLoanMargin(Convert.digitToChinese(Integer.valueOf(franchiseFeeDO.getLoanMargin())));
addSignFranchiseResponse.setFirstYearStartTime(franchiseFeeDO.getFirstYearStartTime());
addSignFranchiseResponse.setFirstYearEndTime(franchiseFeeDO.getFirstYearEndTime());
addSignFranchiseResponse.setFirstYearFee(franchiseFeeDO.getFirstYearFee());
addSignFranchiseResponse.setSecondYearStartTime(franchiseFeeDO.getSecondYearStartTime());
addSignFranchiseResponse.setSecondYearEndTime(franchiseFeeDO.getSecondYearEndTime());
addSignFranchiseResponse.setSecondYearFee(franchiseFeeDO.getSecondYearFee());
addSignFranchiseResponse.setThirdYearStartTime(franchiseFeeDO.getThirdYearStartTime());
addSignFranchiseResponse.setThirdYearEndTime(franchiseFeeDO.getThirdYearEndTime());
addSignFranchiseResponse.setThirdYearFee(franchiseFeeDO.getThirdYearFee());
addSignFranchiseResponse.setPerformanceBond(franchiseFeeDO.getPerformanceBond());
addSignFranchiseResponse.setBigPerformanceBond(Convert.digitToChinese(Integer.valueOf(franchiseFeeDO.getPerformanceBond())));
}
return addSignFranchiseResponse;
}
}

View File

@@ -0,0 +1,131 @@
package com.cool.store.service.impl;
import com.cool.store.dao.EnterpriseUserDAO;
import com.cool.store.dao.ShopInfoDAO;
import com.cool.store.dao.TempUserDetailDAO;
import com.cool.store.entity.EnterpriseUserDO;
import com.cool.store.entity.ShopInfoDO;
import com.cool.store.entity.TempUserDetailDO;
import com.cool.store.exception.ServiceException;
import com.cool.store.request.TempUserDetailRequest;
import com.cool.store.service.TempUserDetailService;
import com.cool.store.utils.StringUtil;
import com.cool.store.vo.TempUserDetailInfoVO;
import com.cool.store.vo.TempUserDetailListVO;
import com.cool.store.vo.TempUserDetailVO;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @author byd
* @date 2024-04-29 16:14
*/
@Service
public class TempUserDetailServiceImpl implements TempUserDetailService {
@Resource
private TempUserDetailDAO tempUserDetailDAO;
@Resource
private ShopInfoDAO shopInfoDAO;
@Resource
private EnterpriseUserDAO enterpriseUserDAO;
@Override
public TempUserDetailListVO userList(Long shopId) {
List<TempUserDetailDO> tempUserDetailDOList = tempUserDetailDAO.userList(shopId);
List<TempUserDetailVO> resultList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(tempUserDetailDOList)) {
tempUserDetailDOList.forEach(tempUserDetailDO -> {
TempUserDetailVO tempUserDetailVO = new TempUserDetailVO();
tempUserDetailVO.setId(tempUserDetailDO.getId());
tempUserDetailVO.setMobile(tempUserDetailDO.getMobile());
tempUserDetailVO.setIdCard(tempUserDetailDO.getIdCard());
tempUserDetailVO.setSource(tempUserDetailDO.getSource());
tempUserDetailVO.setRegisterTime(tempUserDetailDO.getRegisterTime());
tempUserDetailVO.setShopId(tempUserDetailDO.getShopId());
tempUserDetailVO.setLineId(tempUserDetailDO.getLineId());
tempUserDetailVO.setUsername(tempUserDetailDO.getUsername());
tempUserDetailVO.setRegionId(tempUserDetailDO.getRegionId());
tempUserDetailVO.setRoleId(tempUserDetailDO.getRoleId());
resultList.add(tempUserDetailVO);
});
}
ShopInfoDO shopInfoDO = shopInfoDAO.getShopInfo(shopId);
if(shopInfoDO == null){
throw new ServiceException("该店铺不存在");
}
TempUserDetailListVO tempUserDetailListVO = new TempUserDetailListVO();
tempUserDetailListVO.setUserList(resultList);
tempUserDetailListVO.setShopId(shopId);
tempUserDetailListVO.setStoreNum(shopInfoDO.getStoreNum());
return tempUserDetailListVO;
}
@Override
public void addTempUserDetail(TempUserDetailRequest tempUserDetailRequest) {
TempUserDetailDO tempUserDetailDO = tempUserDetailDAO.selectByIdCard(tempUserDetailRequest.getIdCard());
if(tempUserDetailDO != null){
throw new ServiceException("该员工已登记");
}
EnterpriseUserDO enterpriseUserDO = enterpriseUserDAO.getUserInfoByThirdOaUniqueFlag(tempUserDetailRequest.getIdCard());
if(enterpriseUserDO == null){
throw new ServiceException("用户不存在");
}
ShopInfoDO shopInfoDO = shopInfoDAO.getShopInfo(tempUserDetailRequest.getShopId());
if(shopInfoDO == null){
throw new ServiceException("该店铺不存在");
}
if(StringUtil.isNotBlank(shopInfoDO.getStoreNum())){
throw new ServiceException("系统建店已完成,无法手动登记");
}
tempUserDetailDO = new TempUserDetailDO();
tempUserDetailDO.setLineId(shopInfoDO.getLineId());
tempUserDetailDO.setShopId(tempUserDetailRequest.getShopId());
tempUserDetailDO.setRegionId(shopInfoDO.getRegionId());
tempUserDetailDO.setMobile(tempUserDetailRequest.getPhone());
tempUserDetailDO.setUsername(tempUserDetailRequest.getName());
tempUserDetailDO.setSex(tempUserDetailRequest.getSex());
tempUserDetailDO.setAge(tempUserDetailRequest.getAge());
tempUserDetailDO.setIdCard(tempUserDetailRequest.getIdCard());
tempUserDetailDO.setStatus(1);
tempUserDetailDO.setEducational(tempUserDetailRequest.getHighestDegree());
tempUserDetailDO.setRoleId(tempUserDetailRequest.getJobId());
tempUserDetailDO.setIdCardNegativeUrl(tempUserDetailRequest.getEmblemPhoto());
tempUserDetailDO.setIdCardPositiveUrl(tempUserDetailRequest.getIdNumPhoto());
tempUserDetailDO.setHealthCertificateUrl(tempUserDetailRequest.getHealthCertificate());
tempUserDetailDO.setRegisterTime(new Date());
tempUserDetailDO.setSubmitTime(new Date());
tempUserDetailDO.setSource("create");
tempUserDetailDAO.insertSelective(tempUserDetailDO);
}
@Override
public TempUserDetailInfoVO getUserInfoByIdUserDetailId(Long userDetailId) {
TempUserDetailDO tempUserDetailDO = tempUserDetailDAO.selectById(userDetailId);
TempUserDetailInfoVO tempUserDetailInfoVO = new TempUserDetailInfoVO();
tempUserDetailInfoVO.setLineId(tempUserDetailDO.getLineId());
tempUserDetailInfoVO.setShopId(tempUserDetailDO.getShopId());
tempUserDetailInfoVO.setRegionId(tempUserDetailDO.getRegionId());
tempUserDetailInfoVO.setMobile(tempUserDetailDO.getMobile());
tempUserDetailInfoVO.setUsername(tempUserDetailDO.getUsername());
tempUserDetailInfoVO.setSex(tempUserDetailDO.getSex());
tempUserDetailInfoVO.setAge(tempUserDetailDO.getAge());
tempUserDetailInfoVO.setIdCard(tempUserDetailDO.getIdCard());
tempUserDetailInfoVO.setStatus(tempUserDetailDO.getStatus());
tempUserDetailInfoVO.setEducational(tempUserDetailDO.getEducational());
tempUserDetailInfoVO.setRoleId(tempUserDetailDO.getRoleId());
tempUserDetailInfoVO.setIdCardNegativeUrl(tempUserDetailDO.getIdCardNegativeUrl());
tempUserDetailInfoVO.setIdCardPositiveUrl(tempUserDetailDO.getIdCardPositiveUrl());
tempUserDetailInfoVO.setHealthCertificateUrl(tempUserDetailDO.getHealthCertificateUrl());
tempUserDetailInfoVO.setRegisterTime(new Date());
return tempUserDetailInfoVO;
}
}

View File

@@ -60,12 +60,12 @@ public class YlfServiceImpl implements YlfService {
}
@Override
public ProjectDTO getProjectList(String shopCode) {
log.info("getProjectList param:{}", shopCode);
if (Objects.isNull(shopCode)) {
public ProjectDTO getProjectList(String storeNum) {
log.info("getProjectList param:{}", storeNum);
if (Objects.isNull(storeNum)) {
throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR);
}
String url = String.format(Constants.GET_PROJECT_LIST, shopCode);
String url = String.format(Constants.GET_PROJECT_LIST, storeNum);
log.info("CoolStoreStartFlowServiceImpl#getOrder, url:{}", url);
try {
String jsonString = httpRestTemplateService.getForObject(url, String.class, new HashMap<>());
@@ -82,7 +82,7 @@ public class YlfServiceImpl implements YlfService {
return rows.get(0);
}
} else {
log.info("获取云立方装修公司信息失败,shopCode:{}", shopCode);
log.info("获取云立方装修公司信息失败,shopCode:{}", storeNum);
throw new ServiceException(ErrorCodeEnum.YLF_ERROR);
}

View File

@@ -0,0 +1,108 @@
package com.cool.store.service.impl;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.constants.CommonConstants;
import com.cool.store.constants.RedisConstant;
import com.cool.store.dto.yun.StudentResultDTO;
import com.cool.store.mq.util.HttpRestTemplateService;
import com.cool.store.service.YunXueTangApiService;
import com.cool.store.utils.RedisUtilPool;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* @author byd
* @date 2024-04-29 9:55
*/
@Service
public class YunXueTangApiServiceImpl implements YunXueTangApiService {
private final static String REQUEST_URL = "https://openapi.yunxuetang.cn/";
private final static String APP_ID = "1782195114";
private final static String APP_SECRET = "W2Py1G4XYvBFGkXVgdbrZsm4C9zStM5QvBG8WS-0YYw4lPTcoKaFB9S6F5spshCJ";
private final static String ARRANGE_ID = "d011f26d-cd82-4a58-b705-529c63295198";
@Resource
private RedisUtilPool redisUtilPool;
@Resource
private HttpRestTemplateService httpRestTemplateService;
@Override
public String getAccessToken() {
//若果在缓存中存在,从缓存中去取
String accessToken = redisUtilPool.getString(RedisConstant.YUN_XUE_TANG_ACCESS_TOKEN);
if (StringUtils.isNotBlank(accessToken)) {
return accessToken;
}
Map<String, Object> body = new HashMap<>();
// 请求接口地址
String url = "token";
// url拼接所需参数
String pathUrl = REQUEST_URL + url + "?" + "appId=" + APP_ID + "&appSecret=" + APP_SECRET;
// 以post方式调用第三方接口,获取响应结果
String result = HttpUtil.post(pathUrl, body);
// 返回accessToken
JSONObject jsonObject = JSONObject.parseObject(result, JSONObject.class);
accessToken = jsonObject.getString("accessToken");
if (StringUtils.isNotBlank(accessToken)) {
Integer expiresIn = jsonObject.getInteger("expiresIn");
redisUtilPool.setString(RedisConstant.YUN_XUE_TANG_ACCESS_TOKEN, accessToken, expiresIn - 5 * 60);
}
return accessToken;
}
@Override
public Map<String, StudentResultDTO> studentResultUserList(List<String> userIdList) {
Map<String, Object> body = new HashMap<>();
body.put("arrangeId", ARRANGE_ID);
body.put("thirdUserIds", userIdList);
body.put("limit", userIdList.size());
String pathUrl = "v1/rpt2open/public/ote/student/result/user/list";
// 以post方式调用第三方接口,获取响应结果
Map<String, String> headMap = new HashMap<>();
headMap.put("Authorization", this.getAccessToken());
String result = httpRestTemplateService.postForObject(REQUEST_URL + pathUrl, body, String.class, headMap);
List<StudentResultDTO> resultDTOList = new ArrayList<>();
// 返回accessToken
JSONObject jsonObject = JSONObject.parseObject(result, JSONObject.class);
String code = jsonObject.getString("code");
if (CommonConstants.YUN_XUE_TANG_SUC_CODE.equals(code)) {
JSONObject data = jsonObject.getJSONObject("data");
JSONArray jsonArray = jsonObject.getJSONArray("datas");
if (CollectionUtils.isNotEmpty(jsonArray)) {
jsonArray.forEach(item -> {
JSONObject itemObj = (JSONObject) item;
StudentResultDTO resultDTO = new StudentResultDTO();
resultDTO.setUserId(itemObj.getString("thirdUserId"));
resultDTO.setPassed(itemObj.getInteger("passed"));
resultDTO.setNewScore(itemObj.getFloat("newScore"));
resultDTO.setUserExamStatus(itemObj.getInteger("userExamStatus"));
resultDTOList.add(resultDTO);
});
}
}
return resultDTOList.stream().collect(
Collectors.toMap(StudentResultDTO::getUserId, Function.identity()));
}
}

View File

@@ -57,7 +57,8 @@ public class SignValidateFilter implements Filter {
"/**/swagger*/**",
"/**/webjars/**",
"/xfsg/mini/program/v1/partnerManage/openArea/areaApplyQuery",
"/xfsg/*/api/audit/result",
"/xfsg/**/api/audit/result",
"/xfsg/**/api/license",
"/xfsg/mini/line/getRegionPayPic"
);

View File

@@ -3,8 +3,10 @@ package com.cool.store.controller.webb;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.request.AuditResultRequest;
import com.cool.store.request.LicenseBizContentRequest;
import com.cool.store.request.SysBuildResultRequest;
import com.cool.store.request.XfsgOpenApiRequest;
import com.cool.store.response.LicenseApiResponse;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.KdzApiService;
import com.cool.store.utils.EncryptUtil;
@@ -42,6 +44,22 @@ public class KdzApiController {
return ResponseResult.success(kdzApiService.auditResult(auditResultRequest));
}
@ApiOperation("证照信息回调")
@PostMapping("/license")
public ResponseResult<LicenseApiResponse> license(@PathVariable(value = "enterprise-id") String eid,
@RequestBody XfsgOpenApiRequest request) {
log.info("auditResult requestBody :{}", JSONObject.toJSONString(request));
if(!verifyMD5(request,eid)){
return ResponseResult.fail(ErrorCodeEnum.VERIFY_MD5_FALSE);
}
if(eid == null || request.getBizContent() == null){
return ResponseResult.fail(ErrorCodeEnum.PARAMS_VALIDATE_ERROR);
}
LicenseBizContentRequest storeNum = JSONObject.parseObject(request.getBizContent(), LicenseBizContentRequest.class);
return ResponseResult.success(kdzApiService.license(storeNum.getStoreNum()));
}
public static boolean verifyMD5(XfsgOpenApiRequest request, String eid){

View File

@@ -7,10 +7,13 @@ import com.cool.store.dto.decoration.DecorationDTO;
import com.cool.store.dto.decoration.DecorationModelDTO;
import com.cool.store.request.DecorationPayRequest;
import com.cool.store.request.LinePaySubmitRequest;
import com.cool.store.request.ThreeAcceptanceRequest;
import com.cool.store.response.ResponseResult;
import com.cool.store.response.ThreeAcceptanceResponse;
import com.cool.store.service.CoolStoreStartFlowService;
import com.cool.store.service.DecorationService;
import com.cool.store.service.YlfService;
import com.cool.store.vo.DecorationModelVO;
import com.cool.store.vo.DesignInfoVo;
import com.cool.store.vo.PartnerUserInfoVO;
import io.swagger.annotations.Api;
@@ -34,6 +37,10 @@ import java.util.List;
public class PCDecorationController {
@Resource
private DecorationService decorationService;
@GetMapping("/flush")
public ResponseResult<Boolean> flush(@RequestParam("shopId") Long shopId) {
return ResponseResult.success(decorationService.flush(shopId));
}
@ApiModelProperty("获取设计阶段信息")
@GetMapping("/design")
public ResponseResult<DesignInfoVo> get(@RequestParam Long shopId){
@@ -45,4 +52,15 @@ public class PCDecorationController {
public ResponseResult<List<ConstructionScheduleDTO>> getConstruction(@RequestParam Long shopId){
return ResponseResult.success(decorationService.getConstruction(shopId)) ;
}
@ApiModelProperty("获取装修款信息")
@GetMapping("/getDecorationModelInfo")
public ResponseResult<DecorationModelVO> getDecorationModelInfo(@RequestParam Long shopId){
PartnerUserInfoVO user = null;
return ResponseResult.success(decorationService.getDecorationModel(shopId,user));
}
@ApiModelProperty("查看三方验收")
@GetMapping("/getThreeAcceptance")
public ResponseResult<ThreeAcceptanceResponse> getThreeAcceptance(@RequestParam Long shopId){
return ResponseResult.success(decorationService.getThreeAcceptance(shopId));
}
}

View File

@@ -2,16 +2,12 @@ package com.cool.store.controller.webb;
import com.cool.store.request.AddSignFranchiseRequest;
import com.cool.store.request.DeleteShopRequest;
import com.cool.store.response.AddSignFranchiseResponse;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.SignFranchiseService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@@ -27,4 +23,11 @@ public class PCSignFranchiseController {
public ResponseResult<Boolean> submitSignFranchise(@RequestBody AddSignFranchiseRequest request) {
return signFranchiseService.submitSignFranchise(request);
}
@ApiOperation("获取默认值")
@GetMapping("/default/get")
public ResponseResult<AddSignFranchiseResponse> getSignFranchise(@RequestParam("shopId") Long shopId) {
return ResponseResult.success(signFranchiseService.getSignFranchise(shopId));
}
}

View File

@@ -3,9 +3,13 @@ package com.cool.store.controller.webc;
import com.cool.store.context.PartnerUserHolder;
import com.cool.store.dto.decoration.DecorationModelDTO;
import com.cool.store.request.LinePaySubmitRequest;
import com.cool.store.request.ThreeAcceptanceRequest;
import com.cool.store.response.ResponseResult;
import com.cool.store.response.ThreeAcceptanceResponse;
import com.cool.store.service.DecorationService;
import com.cool.store.vo.DecorationModelVO;
import com.cool.store.vo.PartnerUserInfoVO;
import com.sun.xml.bind.v2.TODO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.extern.slf4j.Slf4j;
@@ -29,13 +33,30 @@ public class MiniDecorationController {
@PostMapping("/submitDecorationModel")
public ResponseResult submitDecorationModel(@RequestBody LinePaySubmitRequest linePaySubmitRequest){
PartnerUserInfoVO user = PartnerUserHolder.getUser();
//TODO
user.setPartnerId("61bf57dc65334885802a278835f499d0");
decorationService.submitDecorationModel(linePaySubmitRequest, user);
return ResponseResult.success();
return ResponseResult.success(decorationService.submitDecorationModel(linePaySubmitRequest, user));
}
@ApiModelProperty("获取装修款信息,和二维码")
@GetMapping("/getDecorationModel")
public ResponseResult<DecorationModelDTO> getDecorationModel(@RequestParam Long shopId){
return ResponseResult.success(decorationService.DecorationModel(shopId)) ;
}
@ApiModelProperty("获取装修款信息")
@GetMapping("/getDecorationModelInfo")
public ResponseResult<DecorationModelVO> getDecorationModelInfo(@RequestParam Long shopId){
PartnerUserInfoVO user = PartnerUserHolder.getUser();
user.setPartnerId("61bf57dc65334885802a278835f499d0");
return ResponseResult.success(decorationService.getDecorationModel(shopId,user));
}
@ApiModelProperty("提交三方验收")
@PostMapping("/submitThreeAcceptance")
public ResponseResult<Integer> submitThreeAcceptance(@RequestParam ThreeAcceptanceRequest request){
return ResponseResult.success(decorationService.submitAcceptance(request));
}
@ApiModelProperty("查看三方验收")
@GetMapping("/getThreeAcceptance")
public ResponseResult<ThreeAcceptanceResponse> getThreeAcceptance(@RequestParam Long shopId){
return ResponseResult.success(decorationService.getThreeAcceptance(shopId));
}
}

View File

@@ -0,0 +1,44 @@
package com.cool.store.controller.webc;
import com.cool.store.request.AuditFranchiseFeeRequest;
import com.cool.store.request.FranchiseFeeRequest;
import com.cool.store.response.FranchiseFeeResponse;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.FranchiseFeeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@RestController
@RequestMapping("/mini/franchiseFee")
@Api(tags = "Mini 加盟费/保证金")
@Slf4j
public class MiniFranchiseFeeController {
@Resource
FranchiseFeeService franchiseFeeService;
@ApiOperation("基本信息提交")
@PostMapping("/submit")
public ResponseResult submitLicense(@RequestBody FranchiseFeeRequest request) {
return ResponseResult.success(franchiseFeeService.submitLicense(request));
}
@ApiOperation("基本信息查询")
@GetMapping("/getDetail")
public ResponseResult<FranchiseFeeResponse> getDetail(@RequestParam("shopId") Long shopId) {
return ResponseResult.success(franchiseFeeService.getDetail(shopId));
}
@ApiOperation("缴纳加盟费/保证金审核接口")
@PostMapping("/audit")
public ResponseResult auditFranchiseFee(@RequestBody AuditFranchiseFeeRequest request) {
return ResponseResult.success(franchiseFeeService.auditFranchiseFee(request));
}
}

View File

@@ -14,6 +14,7 @@ import com.cool.store.response.ResponseResult;
import com.cool.store.service.*;
import com.cool.store.vo.OpeningOperationPlanVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
@@ -30,7 +31,7 @@ import javax.annotation.Resource;
* @注释:
*/
@RestController
@RequestMapping("/mini/OpenPreparation")
@RequestMapping("/mini/openPreparation")
@Api(tags = "mini开业筹备")
@Slf4j
public class MiniOpenPreparationController {
@@ -65,6 +66,7 @@ public class MiniOpenPreparationController {
public ResponseResult<FirstOrderDTO> get(@RequestParam("shopId") Long shopId) {
return ResponseResult.success(firstOrderService.getOrder(shopId));
}
@ApiModelProperty("刷新")
@GetMapping("/firstOrder/flush")
public ResponseResult<FirstOrderDTO> flush(@RequestParam Long shopId) {
return ResponseResult.success( firstOrderService.flush(shopId));

View File

@@ -0,0 +1,33 @@
package com.cool.store.controller.webc;
import com.cool.store.request.AddSignFranchiseRequest;
import com.cool.store.response.AddSignFranchiseResponse;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.SignFranchiseService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@Api(tags = "pc加盟合同签约")
@RestController
@RequestMapping("/mini/signFranchise")
public class MiniSignFranchiseController {
@Resource
SignFranchiseService signFranchiseService;
@ApiOperation("提交(更新)加盟合同签约")
@PostMapping("/submitOrUpdate")
public ResponseResult<Boolean> submitSignFranchise(@RequestBody AddSignFranchiseRequest request) {
return signFranchiseService.submitSignFranchise(request);
}
@ApiOperation("获取默认值")
@GetMapping("/default/get")
public ResponseResult<AddSignFranchiseResponse> getSignFranchise(@RequestParam("shopId") Long shopId) {
return ResponseResult.success(signFranchiseService.getSignFranchise(shopId));
}
}

View File

@@ -0,0 +1,68 @@
package com.cool.store.controller.webc;
import com.cool.store.dto.ehr.StaffBaseInfoDTO;
import com.cool.store.request.TempUserDetailRequest;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.TempUserDetailService;
import com.cool.store.service.XfsgEhrService;
import com.cool.store.vo.TempUserDetailInfoVO;
import com.cool.store.vo.TempUserDetailListVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @author byd
* @date 2024-04-29 16:15
*/
@RestController
@RequestMapping({"/mini/tempUserDetail"})
@Slf4j
@Api(tags = "培训登记")
public class TempUserDetailController {
@Autowired
private TempUserDetailService tempUserDetailService;
@Autowired
private XfsgEhrService xfsgEhrService;
@GetMapping(path = "/getUserList")
@ApiOperation("登记员工列表")
@ApiImplicitParams({
@ApiImplicitParam(name = "shopId", value = "店铺Id")
})
public ResponseResult<TempUserDetailListVO> getUserList(@RequestParam(value = "shopId") Long shopId) {
return ResponseResult.success(tempUserDetailService.userList(shopId));
}
@GetMapping(path = "/getUserInfoByIdCard")
@ApiImplicitParams({
@ApiImplicitParam(name = "idCard", value = "身份证号")
})
@ApiOperation("培训登记-身份证号查询信息")
public ResponseResult<StaffBaseInfoDTO> getUserInfoByIdCard(@RequestParam(value = "idCard") String idCard) {
return ResponseResult.success(xfsgEhrService.getUserInfoByIdCard((idCard)));
}
@PostMapping(path = "/addTempUserDetail")
@ApiOperation("培训登记-确认登记")
public ResponseResult<Boolean> addTempUserDetail(@RequestBody TempUserDetailRequest tempUserDetailRequest) {
tempUserDetailService.addTempUserDetail((tempUserDetailRequest));
return ResponseResult.success(Boolean.TRUE);
}
@GetMapping(path = "/getUserInfoByIdUserDetailId")
@ApiImplicitParams({
@ApiImplicitParam(name = "userDetailId", value = "用户详情表id")
})
@ApiOperation("培训登记-查询信息根据用户详情id")
public ResponseResult<TempUserDetailInfoVO> getUserInfoByIdUserDetailId(@RequestParam(value = "userDetailId") Long userDetailId) {
return ResponseResult.success(tempUserDetailService.getUserInfoByIdUserDetailId((userDetailId)));
}
}

View File

@@ -2,19 +2,26 @@ package com.cool.store.job;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.dao.*;
import com.cool.store.dto.decoration.ConstructionScheduleDTO;
import com.cool.store.dto.openPreparation.OpenPlanShopInfoDTO;
import com.cool.store.entity.AcceptanceInfoDO;
import com.cool.store.entity.LeaseBaseInfoDO;
import com.cool.store.entity.LineInterviewDO;
import com.cool.store.entity.ShopStageInfoDO;
import com.cool.store.enums.*;
import com.cool.store.enums.point.ShopSubStageEnum;
import com.cool.store.enums.point.ShopSubStageStatusEnum;
import com.cool.store.exception.ServiceException;
import com.cool.store.mapper.LineInfoMapper;
import com.cool.store.mapper.TrainingExperienceMapper;
import com.cool.store.mq.util.HttpRestTemplateService;
import com.cool.store.service.CoolStoreStartFlowService;
import com.cool.store.service.DecorationService;
import com.cool.store.service.PreparationService;
import com.cool.store.utils.poi.StringUtils;
import com.cool.store.utils.poi.constant.Constants;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
@@ -23,10 +30,9 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@Slf4j
@@ -54,6 +60,11 @@ public class XxlJobHandler {
private ShopStageInfoDAO shopStageInfoDAO;
@Resource
private CoolStoreStartFlowService coolStoreStartFlowService;
@Resource
private AcceptanceInfoDAO acceptanceInfoDAO;
@Resource
private DecorationService decorationService;
/**
* 每天都将待体验门店信息变更到体验中
*/
@@ -90,6 +101,7 @@ public class XxlJobHandler {
lineInterviewDAO.batchUpdateInterviewStatus(interviewIds, InterviewStatusEnum.WAIT_AUDIT);
XxlJobHelper.handleSuccess();
}
/**
* @Auther: wangshuo
* @Date: 2024/4/25
@@ -134,4 +146,81 @@ public class XxlJobHandler {
}
/**
* @Auther: wangshuo
* @Date: 2024/4/29
* @description: 每天更新装修阶段进场时间等,至预约状态
*/
@XxlJob("acceptanceInfo")
public void AcceptanceInfoDO() {
boolean hasNext = true;
int PageNum = 1;
int PageSize = 50;
while (hasNext) {
log.info("----每天更新装修阶段进场时间等,至预约状态----");
PageHelper.startPage(PageNum, PageSize);
List<AcceptanceInfoDO> acceptanceInfoDOS = acceptanceInfoDAO.selectAcceptanceInfo();
if (CollectionUtils.isEmpty(acceptanceInfoDOS)) {
log.info("------今日没有待更新数据------");
return;
}
for (AcceptanceInfoDO acceptanceInfoDO : acceptanceInfoDOS) {
Long shopId = acceptanceInfoDO.getShopId();
acceptanceInfoDO.setUpdateTime(new Date());
ConstructionScheduleDTO constructionInfo = decorationService.getConstructionInfo(shopId);
List<ConstructionScheduleDTO> construction = decorationService.getConstruction(shopId);
//施工完成时间
if (Objects.nonNull(constructionInfo) && !StringUtils.isNull(constructionInfo.getPlanEndDate())
&& Objects.isNull(acceptanceInfoDO.getConstructionCompletionTime())) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date constructionEndTime = sdf.parse(constructionInfo.getPlanEndDate());
acceptanceInfoDO.setConstructionCompletionTime(constructionEndTime);
} catch (ParseException e) {
log.error("初始化acceptanceInfo鲜丰服务施工完成时间日期转化异常");
}
}
//进场时间
if (Objects.nonNull(construction) && !StringUtils.isNull(construction.get(0).getActualBeginDate())
&& Objects.isNull(acceptanceInfoDO.getActualEntryTime())) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date constructionBeginTime = sdf.parse(construction.get(0).getActualBeginDate());
acceptanceInfoDO.setActualEntryTime(constructionBeginTime);
} catch (ParseException e) {
log.error("初始化acceptanceInfo鲜丰服务进场时间日期转化异常");
}
}
//进场时间+5
if (Objects.nonNull(construction) && !StringUtils.isNull(construction.get(0).getActualBeginDate())
&& Objects.nonNull(acceptanceInfoDO.getActualEntryTime())) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(acceptanceInfoDO.getActualEntryTime());
calendar.add(Calendar.DAY_OF_MONTH, 5); // 添加5天
Date dateAfterFiveDays = calendar.getTime();
Date now =new Date();
//TODO
List<ShopStageInfoDO> shopStageInfo = shopStageInfoDAO.getShopStageInfo(shopId, null);
if (CollectionUtils.isNotEmpty(shopStageInfo)) {
Map<Integer, ShopStageInfoDO> shopStageInfoDOMap = shopStageInfo.stream().collect(Collectors.toMap(ShopStageInfoDO::getShopSubStage, data -> data));
Boolean buildStoreCompletionFlag = ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_33.getShopSubStageStatus().equals(shopStageInfoDOMap.get(ShopSubStageEnum.SHOP_STAGE_3.getShopSubStage()).getShopSubStageStatus());
Boolean contractCompletionFlag = ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_73.getShopSubStageStatus().equals(shopStageInfoDOMap.get(ShopSubStageEnum.SHOP_STAGE_7.getShopSubStage()).getShopSubStageStatus());
if (buildStoreCompletionFlag && contractCompletionFlag) {
List<ShopStageInfoDO> list = new ArrayList<>();
ShopStageInfoDO data1 = shopStageInfoDOMap.get(ShopSubStageEnum.SHOP_STAGE_12.getShopSubStage());
data1.setShopSubStageStatus(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_120.getShopSubStageStatus());
list.add(data1);
shopStageInfoDAO.batchUpdate(list);
}
}
}
acceptanceInfoDAO.insertAcceptanceInfo(acceptanceInfoDO);
//TODO 短信通知
}
hasNext = acceptanceInfoDOS.size() >= PageSize;
PageNum++;
}
}
}