Commit a17332c9 by huluobin

美甲师作品

parent 6e009a58
......@@ -2,14 +2,12 @@ package com.gogirl.application.store.store;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gogirl.domain.product.serve.BaseProduce;
import com.gogirl.domain.store.career.Career;
import com.gogirl.domain.store.career.Works;
import com.gogirl.domain.store.training.TrainingStartClass;
import com.gogirl.shared.store.SignUpTrainingCommand;
import com.gogirl.shared.store.SubmitFeedbackCommand;
import com.gogirl.shared.store.SubmitWorksCommand;
import com.gogirl.shared.store.TrainingStartClassQuery;
import com.gogirl.shared.store.WorksQuery;
import com.gogirl.shared.store.*;
public interface CareerCmdService {
/**
......@@ -52,8 +50,19 @@ public interface CareerCmdService {
/**
* 查询
*
* @param technicianId
* @return
*/
Career career(Integer technicianId);
/**
* 获取需要打板的款式
*
* @param technicianId
* @param pageNum
* @param pageSize
* @return
*/
Page<BaseProduce> queryWorkTpl(Integer technicianId, Integer pageNum, Integer pageSize, String searchKeyWord);
}
......@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gogirl.application.store.store.CareerCmdService;
import com.gogirl.application.store.store.WorksImagesService;
import com.gogirl.domain.product.purchase.PurchaseSku;
import com.gogirl.domain.product.serve.BaseProduce;
import com.gogirl.domain.store.career.Career;
import com.gogirl.domain.store.career.Works;
import com.gogirl.domain.store.career.WorksImages;
......@@ -13,6 +15,8 @@ import com.gogirl.domain.store.training.TrainingStartClass;
import com.gogirl.domain.store.training.TrainingStartClassLogTechnician;
import com.gogirl.infrastructure.common.exception.RRException;
import com.gogirl.infrastructure.common.util.ListUtil;
import com.gogirl.infrastructure.mapper.product.purchase.PurchaseSkuMapper;
import com.gogirl.infrastructure.mapper.product.serve.BaseProduceMapper;
import com.gogirl.infrastructure.mapper.store.career.CareerMapper;
import com.gogirl.infrastructure.mapper.store.career.WorksImagesMapper;
import com.gogirl.infrastructure.mapper.store.career.WorksMapper;
......@@ -20,11 +24,7 @@ import com.gogirl.infrastructure.mapper.store.training.TrainingCourseMapper;
import com.gogirl.infrastructure.mapper.store.training.TrainingStartClassLogTechnicianMapper;
import com.gogirl.infrastructure.mapper.store.training.TrainingStartClassMapper;
import com.gogirl.infrastructure.util.SessionUtils;
import com.gogirl.shared.store.SignUpTrainingCommand;
import com.gogirl.shared.store.SubmitFeedbackCommand;
import com.gogirl.shared.store.SubmitWorksCommand;
import com.gogirl.shared.store.TrainingStartClassQuery;
import com.gogirl.shared.store.WorksQuery;
import com.gogirl.shared.store.*;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
......@@ -44,12 +44,19 @@ public class CareerCmdServiceImpl implements CareerCmdService {
private final WorksMapper worksMapper;
private final WorksImagesService worksImagesService;
private final PurchaseSkuMapper purchaseSkuMapper;
private final BaseProduceMapper baseProduceMapper;
@Override
public void submitWorks(SubmitWorksCommand cmd) {
Works works = new Works();
works.setCreateTime(System.currentTimeMillis());
works.setRemarks(cmd.getRemarks());
works.setTechnicianId(cmd.getTechnicianId());
works.setProduceId(cmd.getProduceId());
BaseProduce baseProduce = baseProduceMapper.selectById(works.getProduceId());
works.setProduceName(baseProduce.getName());
worksMapper.insert(works);
List<WorksImages> worksImagesList = cmd.getImageUrlList()
......@@ -176,4 +183,25 @@ public class CareerCmdServiceImpl implements CareerCmdService {
}
return career;
}
@Override
public Page<BaseProduce> queryWorkTpl(Integer technicianId, Integer pageNum, Integer pageSize, String searchKeyWord) {
Page<BaseProduce> baseProducePage = new Page<>(pageNum, pageSize);
baseProducePage = careerMapper.queryWorkTpl(baseProducePage, technicianId, searchKeyWord);
List<PurchaseSku> purchaseSkuList = purchaseSkuMapper.listByProduceIds(baseProducePage.getRecords().stream().map(BaseProduce::getId).collect(Collectors.toList()));
Map<Integer, List<PurchaseSku>> map = purchaseSkuList.stream()
.collect(Collectors.groupingBy(PurchaseSku::getProduceId));
baseProducePage.getRecords().forEach(baseProduce -> {
List<PurchaseSku> list = map.get(baseProduce.getId());
if (ListUtil.isNotEmpty(list)) {
baseProduce.setPurchaseSkuList(purchaseSkuList);
}
});
return baseProducePage;
}
}
package com.gogirl.domain.product.purchase;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
......@@ -150,4 +151,12 @@ public class PurchaseSku implements Serializable {
@ApiModelProperty("颜色id")
private Integer colorId;
@TableField(exist = false)
@ApiModelProperty("款式对应的采购sku类型 1 = 色胶;n2 = 饰品")
private Integer produceSkuType;
@TableField(exist = false)
@ApiModelProperty("款式的id")
private Integer produceId;
}
......@@ -4,12 +4,14 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.gogirl.domain.product.purchase.PurchaseSku;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
......@@ -61,7 +63,6 @@ public class BaseProduce implements Serializable {
@ApiModelProperty("服务市场")
private Integer serviceDuration;
@TableField(exist = false)
private PraiseRecord praiseRecord;
......@@ -83,4 +84,9 @@ public class BaseProduce implements Serializable {
private BigDecimal promotionPrice;
private String practice;
private Integer isWorkTpl;
@TableField(exist = false)
private List<PurchaseSku> purchaseSkuList;
}
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
......@@ -24,8 +25,17 @@ public class Works {
@TableField(exist = false)
Set<WorksImages> worksImagesList;
private Long createTime;
private String remarks;
private Integer technicianId;
@ApiModelProperty("美甲作品对应的款式")
private Integer produceId;
@ApiModelProperty("美甲作品对应的款式名称")
private String produceName;
}
......@@ -68,14 +68,19 @@ public class TakeLeaveEvent {
@ApiModelProperty("处理中的美甲师id")
private Integer dealingTechnicianId;
@ApiModelProperty("处理中的美甲师姓名")
private String dealingTechnicianName;
@ApiModelProperty("1-待审批 2-审批通过 3-审批拒绝")
private Integer status;
@ApiModelProperty("创建时间")
private Long createTime;
@ApiModelProperty("附件地址")
private String annexUrl;
@TableField(exist = false)
private StoreTechnician applyStoreTechnicianDTO;
......
......@@ -39,4 +39,12 @@ public interface PurchaseSkuMapper extends BaseMapper<PurchaseSku> {
* @return
*/
List<PurchaseSkuPOI> purchaseSkuExcel();
/**
* 获取款式id对应的采购sku
* @param list
* @return
*/
List<PurchaseSku> listByProduceIds(List<Integer> list);
}
package com.gogirl.infrastructure.mapper.store.career;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gogirl.domain.product.serve.BaseProduce;
import com.gogirl.domain.store.career.Career;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
......@@ -97,4 +99,15 @@ public interface CareerMapper extends BaseMapper<Career> {
* @return
*/
Double queryMonthPraisePercent(@Param("id") Integer id, @Param("month") String month);
/**
* 查询美甲作品打板
*
* @param baseProducePage
* @param technicianId
* @return
*/
Page<BaseProduce> queryWorkTpl(@Param("page") Page<BaseProduce> baseProducePage,
@Param("technicianId") Integer technicianId,
@Param("searchKeyWord") String searchKeyWord);
}
......@@ -5,10 +5,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gogirl.application.store.store.CareerCmdService;
import com.gogirl.application.store.store.StoreDataService;
import com.gogirl.application.xcx.GogirlTokenService;
import com.gogirl.assembler.TrainingStartClassDTOAssembler;
import com.gogirl.assembler.WorksAssembler;
import com.gogirl.domain.order.serve.OrderServe;
import com.gogirl.domain.product.serve.BaseProduce;
import com.gogirl.domain.store.career.Career;
import com.gogirl.domain.store.career.Works;
import com.gogirl.domain.store.store.StoreData;
......@@ -21,10 +21,8 @@ import com.gogirl.domain.user.customer.CustomerBalanceRecord;
import com.gogirl.infrastructure.common.base.JsonResult;
import com.gogirl.infrastructure.common.util.ListUtil;
import com.gogirl.infrastructure.mapper.order.serve.OrderServeMapper;
import com.gogirl.infrastructure.mapper.store.store.StoreDataMapper;
import com.gogirl.infrastructure.mapper.store.store.TechnicianScoreMapper;
import com.gogirl.infrastructure.mapper.store.training.SkillSkuMapper;
import com.gogirl.infrastructure.mapper.store.training.TrainingStartClassLogMapper;
import com.gogirl.infrastructure.mapper.store.training.TrainingStartClassLogTechnicianMapper;
import com.gogirl.infrastructure.mapper.store.training.TrainingStartClassMapper;
import com.gogirl.infrastructure.mapper.user.customer.CustomerBalanceRecordMapper;
......@@ -35,7 +33,6 @@ import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.text.ParseException;
import java.util.List;
import java.util.stream.Collectors;
......@@ -47,9 +44,7 @@ import java.util.stream.Collectors;
@AllArgsConstructor
public class CareerController {
private final GogirlTokenService gogirlTokenService;
private final TrainingStartClassLogMapper trainingStartClassLogMapper;
private final TechnicianScoreMapper technicianScoreMapper;
private final TrainingStartClassLogTechnicianMapper trainingStartClassLogTechnicianMapper;
private final SkillSkuMapper skillSkuMapper;
......@@ -57,7 +52,6 @@ public class CareerController {
private final CareerCmdService careerCmdService;
private final StoreDataMapper storeDataMapper;
private final OrderServeMapper orderServeMapper;
private final CustomerBalanceRecordMapper customerBalanceRecordMapper;
......@@ -71,14 +65,26 @@ public class CareerController {
return JsonResult.success();
}
@ApiOperation("获取美甲师需要打板的款式")
@GetMapping("/technician/career/queryWorkTpl")
public JsonResult<Page<BaseProduce>> queryWorkTpl(@RequestHeader String token,
@RequestParam Integer pageNum,
@RequestParam Integer pageSize,
@RequestParam String searchKeyWord) {
Integer technicianId = SessionUtils.getTechnicianId();
Page<BaseProduce> baseProduceList = careerCmdService.queryWorkTpl(technicianId, pageNum, pageSize, searchKeyWord);
return JsonResult.success(baseProduceList);
}
@ApiOperation(("查询美甲师作品"))
@PostMapping("/technician/career/queryWorks")
public JsonResult<Page<WorksDTO>> queryWorks(@RequestHeader String token,
@RequestBody WorksQuery qry) throws ParseException {
public JsonResult<Page<Works>> queryWorks(@RequestHeader String token,
@RequestBody WorksQuery qry) {
Integer technicianId = SessionUtils.getTechnicianId();
qry.setTechnicianId(technicianId);
IPage<Works> worksIPage = careerCmdService.queryWorks(qry);
return JsonResult.success((Page<WorksDTO>) worksIPage.convert(worksAssembler));
return JsonResult.success((Page<Works>) worksIPage);
}
private final WorksAssembler worksAssembler;
......
......@@ -14,21 +14,31 @@ public class ApplyTakeLeaveCommand {
@ApiModelProperty("如果申请调休要写这个字段")
List<OverTimeLogCommand> overTimeLogCommandList;
@ApiModelProperty("请假美甲师id")
private Integer applyTechnicianId;
@ApiModelProperty("1-加班 2-调休 3-事假 4-病假 5-外出 6-婚假")
private Integer type;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty("开始时间")
private Date startTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty("结束时间")
private Date endTime;
@ApiModelProperty("请假时长")
private BigDecimal timeLength;
@ApiModelProperty("申请理由")
private String applyReason;
@ApiModelProperty("处理中的美甲师id")
private Integer dealingTechnicianId;
@ApiModelProperty("附件地址")
private String annexUrl;
}
package com.gogirl.shared.store;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
public class SubmitWorksCommand {
@ApiModelProperty("完成时间 如60分钟")
@NotNull
private String remarks;
@ApiModelProperty("美甲师id")
private Integer technicianId;
//
// @ApiModelProperty("完成时间 单位分钟")
// private Integer duration;
private List<String> imageUrlList;
@NotNull
private Integer produceId;
}
......@@ -32,5 +32,13 @@
LEFT JOIN purchase_sku_type t2 on t1.sku_type = t2.id
</select>
<select id="listByProduceIds" resultType="com.gogirl.domain.product.purchase.PurchaseSku">
SELECT t1.produce_id,t1.type produce_sku_type,t2.* from base_produce_sku t1
LEFT JOIN purchase_sku t2 on t1.purchase_sku_id = t2.id
where t1.produce_id in
<foreach collection="list" item="id" index="index" open="(" close=")" separator=",">
#{id}
</foreach>
</select>
</mapper>
......@@ -105,5 +105,15 @@
and finish_time &gt; #{month}
)
</select>
<select id="queryWorkTpl" resultType="com.gogirl.domain.product.serve.BaseProduce">
SELECT t1.*
from base_produce t1
LEFT JOIN career_works t2 on t1.id = t2.produce_id and t2.technician_id = #{technicianId}
<if test="searchKeyWord != null and searchKeyWord != ''">
and t1.`name` like concat('%',#{searchKeyWord},'%')
</if>
where t1.is_work_tpl = 1
and t2.id is null
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment