package com.matrix.system.app.action; import com.matrix.core.constance.MatrixConstance; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.tools.StringUtils; import com.matrix.core.tools.WebUtil; import com.matrix.system.app.dto.*; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.hive.bean.*; import com.matrix.system.hive.dao.*; import com.matrix.system.hive.plugin.util.CollectionUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.*; import java.util.stream.Collectors; /** * @author jyy * @date 2020-12-21 **/ @Api(value = "ApiFollowupAction", tags = "跟进记录接口类") @RestController @RequestMapping(value = "/api/followup") public class ApiFollowupAction { @Autowired private SysFollowupDao followupDao; @Autowired private SysVipAlbumDao vipAlbumDao; @Autowired private SysVipInfoDao vipInfoDao; @Autowired private SysFollowupCommentDao followupCommentDao; @Autowired private SysOrderItemDao orderItemDao; @Autowired private SysBeauticianStateDao beauticianStateDao; @ApiOperation(value = "新增跟进记录", notes = "新增跟进记录") @ApiResponses({ @ApiResponse(code = 200, message = "ok", response = SysFollowup.class) }) @PostMapping(value = "/addFollowup") public AjaxResult addFollowup(@RequestBody @Validated SysFollowup followup) { SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); followup.setCreateBy(user.getSuName()); followup.setUpdateBy(user.getSuName()); followup.setStaffId(user.getSuId()); followup.setCompanyId(user.getCompanyId()); followup.setShopId(user.getShopId()); //处理订单摘要 if(followup.getOrderId()!=null){ List sysOrderItems = orderItemDao.selectByOrderId(followup.getOrderId()); String abs=""; if(sysOrderItems.size()>1){ abs= sysOrderItems.get(0).getShoppingGoods().getName()+"等"+sysOrderItems.size()+"件商品"; }else{ abs= sysOrderItems.get(0).getShoppingGoods().getName(); } followup.setOrderAbstract(abs); } //服务单摘要 if(followup.getServiceId()!=null){ List sysBeauticianStates = beauticianStateDao.selectBySerIds(followup.getServiceId()); String abs=""; if(sysBeauticianStates.size()>1){ abs= sysBeauticianStates.get(0).getProjInfo().getName()+"等"+sysBeauticianStates.size()+"项服务"; }else{ abs= sysBeauticianStates.get(0).getProjInfo().getName(); } followup.setOrderAbstract(abs); } followupDao.insert(followup); //插入图片 List albums=followup.getAlbums(); if(CollectionUtils.isNotEmpty(albums)){ for (SysVipAlbum vipAlbum:albums){ if(StringUtils.isNotBlank(vipAlbum.getImg())){ vipAlbum.setCreateBy(user.getSuName()); vipAlbum.setUpdateBy(user.getSuName()); vipAlbum.setSource(SysVipAlbum.SOURCE_FOLLOW); vipAlbum.setVipId(followup.getVipId()); vipAlbum.setSourceId(followup.getId()); vipAlbumDao.insert(vipAlbum); } } } return AjaxResult.buildSuccessInstance("保存成功"); } @ApiOperation(value = "跟进记录点赞或者取消点赞", notes = "跟进记录点赞或者取消点赞") @ApiResponses({ @ApiResponse(code = 200, message = "ok", response = AjaxResult.class) }) @GetMapping(value = "/zanFollowup/{id}") public AjaxResult zanFollowup(@PathVariable("id")Long id) { SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); SysFollowup followup = followupDao.selectById(id); String zans=followup.getZans(); if(StringUtils.isNotBlank(zans)){ List zanIds = StringUtils.strToCollToLong(zans, ","); List zaned = zanIds.stream().filter(zanid -> zanid.equals(user.getSuId())).collect(Collectors.toList()); if(CollectionUtils.isNotEmpty(zaned)){ //取消赞 List newZaned = zanIds.stream().filter(zanid -> !zanid.equals(user.getSuId())).collect(Collectors.toList()); zans=StringUtils.collToStr(newZaned,","); }else{ //点赞 zaned.add(user.getSuId()); zans=StringUtils.collToStr(zaned,","); } }else{ //直接点赞 zans=user.getSuId()+""; } followupDao.updateZan(id,zans); return AjaxResult.buildSuccessInstance("修改成功"); } @ApiOperation(value = "评论跟进", notes = "评论跟进") @ApiResponses({ @ApiResponse(code = 200, message = "ok", response = AjaxResult.class) }) @PostMapping(value = "/addFollowupComment") public AjaxResult addFollowupComment(@RequestBody @Validated SysFollowupComment followupComment) { SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); followupComment.setCreateBy(user.getSuName()); followupComment.setUpdateBy(user.getSuName()); followupComment.setStaffId(user.getSuId()); followupCommentDao.insert(followupComment); return AjaxResult.buildSuccessInstance("评论成功"); } @ApiOperation(value = "查询跟进记录", notes = "查询跟进记录") @ApiResponses({ @ApiResponse(code = 200, message = "ok", response = SysFollowup.class) }) @PostMapping(value = "/findFollowup") public AjaxResult findFollowup(@RequestBody @Validated FollowupListDto followupListDto) { SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); followupListDto.setShopId(user.getShopId()); followupListDto.setCompanyId(user.getCompanyId()); followupListDto.setSelfStaff(user.getSuId()); //TODO 需要设置跨店数据权限 List rows= followupDao.selectByAppDto(followupListDto); return AjaxResult.buildSuccessInstance(rows,"查询成功"); } }