From b1c91bb7b00ff317d6b2e3d12e7893d7dbfd23a1 Mon Sep 17 00:00:00 2001 From: rbw <2051606263@qq.com> Date: Thu, 14 Nov 2024 16:20:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B8=82=E5=9C=BA=E6=B4=BB=E5=8A=A8=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=AD=90=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yb/lb/webapp/view/ViewMeetingApi.java | 155 +++++++++++------- .../view/CrmMarketingDetailMapper.xml | 82 +++++---- .../view/view/entity/CrmMarketingDetail.java | 19 +++ .../view/view/sevice/ViewMeetingService.java | 43 ++++- 4 files changed, 203 insertions(+), 96 deletions(-) diff --git a/crm-admin/src/main/java/com/yb/lb/webapp/view/ViewMeetingApi.java b/crm-admin/src/main/java/com/yb/lb/webapp/view/ViewMeetingApi.java index 864b133..0bf232e 100644 --- a/crm-admin/src/main/java/com/yb/lb/webapp/view/ViewMeetingApi.java +++ b/crm-admin/src/main/java/com/yb/lb/webapp/view/ViewMeetingApi.java @@ -12,11 +12,16 @@ import com.yb.lb.webapp.archives.distributor.service.DistributorService; import com.yb.lb.webapp.archives.marketingArea.service.MarketingAreaService; import com.yb.lb.webapp.random.service.RandomService; import com.yb.lb.webapp.redis.service.RedisService; +import com.yb.lb.webapp.stock.entity.CrmInventoryDetail; +import com.yb.lb.webapp.stock.entity.CrmInventoryInfo; import com.yb.lb.webapp.system.authority.service.AccessService; import com.yb.lb.webapp.system.logger.utils.BusinessType; import com.yb.lb.webapp.system.logger.utils.Log; import com.yb.lb.webapp.system.logger.utils.OperatorType; import com.yb.lb.webapp.utils.RoleDateUtils; +import com.yb.lb.webapp.view.view.entity.CrmMarketingDetail; +import com.yb.lb.webapp.view.view.entity.ViewMeeting; +import com.yb.lb.webapp.view.view.entity.ViewMeetingDTO; import com.yb.lb.webapp.view.view.sevice.ViewMeetingService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -24,16 +29,10 @@ import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; -import java.util.Calendar; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; +import java.util.*; /** * @author TanChao @@ -69,20 +68,21 @@ public class ViewMeetingApi extends BaseController { @ApiOperation("提交") @Log(title = "App市场活动", businessType = BusinessType.INSERT, operatorType = OperatorType.MOBILE) public Map add( - @ApiParam(required = false, value = "活动形式编号(数据字典)") @RequestParam(required = false) String typeId, - @ApiParam(required = false, value = "活动内容") @RequestParam(required = false) String activityContent, - @ApiParam(required = false, value = "活动日期") @RequestParam(required = false) String activityDate, - @ApiParam(required = false, value = "客户id") @RequestParam(required = true) String dealersId, - @ApiParam(required = false, value = "客户名称") @RequestParam(required = false) String distributorName, - @ApiParam(required = false, value = "传客户的行政区域编码") @RequestParam(required = false) String region, - @ApiParam(required = false, value = "客户类型") @RequestParam(required = false) String clientType, - @ApiParam(required = false, value = "人员规模") @RequestParam(required = false) String staffSize, - @ApiParam(required = false, value = "地点") @RequestParam(required = false) String site, - @ApiParam(required = false, value = "经度") @RequestParam(required = false) String longitude, - @ApiParam(required = false, value = "纬度") @RequestParam(required = false) String latitude, - @ApiParam(required = false, value = "活动照片") @RequestParam(required = false) String activityImg, - @ApiParam(required = false, value = "活动视频") @RequestParam(required = false) String videos, - @ApiParam(required = false, value = "备注") @RequestParam(required = false) String remark, +// @ApiParam(required = false, value = "活动形式编号(数据字典)") @RequestParam(required = false) String typeId, +// @ApiParam(required = false, value = "活动内容") @RequestParam(required = false) String activityContent, +// @ApiParam(required = false, value = "活动日期") @RequestParam(required = false) String activityDate, +// @ApiParam(required = false, value = "客户id") @RequestParam(required = true) String dealersId, +// @ApiParam(required = false, value = "客户名称") @RequestParam(required = false) String distributorName, +// @ApiParam(required = false, value = "传客户的行政区域编码") @RequestParam(required = false) String region, +// @ApiParam(required = false, value = "客户类型") @RequestParam(required = false) String clientType, +// @ApiParam(required = false, value = "人员规模") @RequestParam(required = false) String staffSize, +// @ApiParam(required = false, value = "地点") @RequestParam(required = false) String site, +// @ApiParam(required = false, value = "经度") @RequestParam(required = false) String longitude, +// @ApiParam(required = false, value = "纬度") @RequestParam(required = false) String latitude, +// @ApiParam(required = false, value = "活动照片") @RequestParam(required = false) String activityImg, +// @ApiParam(required = false, value = "活动视频") @RequestParam(required = false) String videos, +// @ApiParam(required = false, value = "备注") @RequestParam(required = false) String remark, + @RequestBody ViewMeetingDTO viewMeetingDTO, HttpServletRequest request) { Map result = new HashMap<>(); Map params = new HashMap(); @@ -90,21 +90,34 @@ public class ViewMeetingApi extends BaseController { if (!redisService.exists(token)) { return AjaxResult.error(ErrorUtils.IS_NOT_LOGIN_ERROR, "用户未登录"); } - Map tokenMap = redisService.hmget(token); - params = ParameterUtils.reqMapSeria(request.getParameterMap()); - params.put("id", IdUtil.simpleUUID()); - params.put("createTime", DateUtil.getTime()); - params.put("companyId", tokenMap.get("companyId") + ""); - params.put("createUser", tokenMap.get("id") + ""); - params.put("staffId", tokenMap.get("archivesId") + ""); - params.put("staffName", tokenMap.get("realName") + ""); - params.put("semId", tokenMap.get("areaId") + ""); - params.put("ancestors", tokenMap.get("ancestors") + ""); + ViewMeeting info = viewMeetingDTO.getViewMeeting(); + Map tokenMap = redisService.hmget(token); + + info.setId(IdUtil.simpleUUID()); + info.setCreateTime(DateUtil.getTime()); + info.setCompanyId(tokenMap.get("companyId") + ""); + info.setCreateUser(tokenMap.get("id") + ""); + info.setStaffId(tokenMap.get("archivesId") + ""); + info.setStaffName(tokenMap.get("realName") + ""); + info.setSemId(tokenMap.get("areaId") + ""); + info.setAncestors(tokenMap.get("ancestors") + ""); + info.setViewNo(randomService.randomUtils1(FINALCMD.VIEW_NO, tokenMap.get("companyId") + "")); + info.setStatus("4"); + +// params = ParameterUtils.reqMapSeria(request.getParameterMap()); +// params.put("id", IdUtil.simpleUUID()); +// params.put("createTime", DateUtil.getTime()); +// params.put("companyId", tokenMap.get("companyId") + ""); +// params.put("createUser", tokenMap.get("id") + ""); +// params.put("staffId", tokenMap.get("archivesId") + ""); +// params.put("staffName", tokenMap.get("realName") + ""); +// params.put("semId", tokenMap.get("areaId") + ""); +// params.put("ancestors", tokenMap.get("ancestors") + ""); // 编码 - params.put("viewNo", randomService.randomUtils1(FINALCMD.VIEW_NO, tokenMap.get("companyId") + "")); +// params.put("viewNo", randomService.randomUtils1(FINALCMD.VIEW_NO, tokenMap.get("companyId") + "")); // 状态:0待审核1审核通过2审核未通过3.审核中4.自由态 - params.put("status", "4"); - return toAjax(viewMeetingService.addView(params, ".addView")); +// params.put("status", "4"); + return toAjax(viewMeetingService.addView(viewMeetingDTO, ".addView")); } /** @@ -116,34 +129,40 @@ public class ViewMeetingApi extends BaseController { @ApiOperation("修改") @Log(title = "App市场活动", businessType = BusinessType.UPDATE, operatorType = OperatorType.MOBILE) public Map update( - @ApiParam(required = true, value = "活动Id ") @RequestParam(required = true) String id, - @ApiParam(required = false, value = "活动形式编号(数据字典)") @RequestParam(required = false) String typeId, - @ApiParam(required = false, value = "活动内容") @RequestParam(required = false) String activityContent, - @ApiParam(required = false, value = "活动日期") @RequestParam(required = false) String activityDate, - @ApiParam(required = false, value = "客户id") @RequestParam(required = true) String dealersId, - @ApiParam(required = false, value = "客户名称") @RequestParam(required = false) String distributorName, - @ApiParam(required = false, value = "传客户的行政区域编码") @RequestParam(required = false) String region, - @ApiParam(required = false, value = "客户类型") @RequestParam(required = false) String clientType, - @ApiParam(required = false, value = "人员规模") @RequestParam(required = false) String staffSize, - @ApiParam(required = false, value = "地点") @RequestParam(required = false) String site, - @ApiParam(required = false, value = "经度") @RequestParam(required = false) String longitude, - @ApiParam(required = false, value = "纬度") @RequestParam(required = false) String latitude, - @ApiParam(required = false, value = "活动照片") @RequestParam(required = false) String activityImg, - @ApiParam(required = false, value = "活动视频") @RequestParam(required = false) String videos, - @ApiParam(required = false, value = "备注") @RequestParam(required = false) String remark, +// @ApiParam(required = true, value = "活动Id ") @RequestParam(required = true) String id, +// @ApiParam(required = false, value = "活动形式编号(数据字典)") @RequestParam(required = false) String typeId, +// @ApiParam(required = false, value = "活动内容") @RequestParam(required = false) String activityContent, +// @ApiParam(required = false, value = "活动日期") @RequestParam(required = false) String activityDate, +// @ApiParam(required = false, value = "客户id") @RequestParam(required = true) String dealersId, +// @ApiParam(required = false, value = "客户名称") @RequestParam(required = false) String distributorName, +// @ApiParam(required = false, value = "传客户的行政区域编码") @RequestParam(required = false) String region, +// @ApiParam(required = false, value = "客户类型") @RequestParam(required = false) String clientType, +// @ApiParam(required = false, value = "人员规模") @RequestParam(required = false) String staffSize, +// @ApiParam(required = false, value = "地点") @RequestParam(required = false) String site, +// @ApiParam(required = false, value = "经度") @RequestParam(required = false) String longitude, +// @ApiParam(required = false, value = "纬度") @RequestParam(required = false) String latitude, +// @ApiParam(required = false, value = "活动照片") @RequestParam(required = false) String activityImg, +// @ApiParam(required = false, value = "活动视频") @RequestParam(required = false) String videos, +// @ApiParam(required = false, value = "备注") @RequestParam(required = false) String remark, + @RequestBody ViewMeetingDTO viewMeetingDTO, HttpServletRequest request) { Map result = new HashMap<>(); String token = request.getHeader("token"); if (!redisService.exists(token)) { return AjaxResult.error(ErrorUtils.IS_NOT_LOGIN_ERROR, "用户未登录"); } - Map params = ParameterUtils.reqMapSeria(request.getParameterMap()); - Map tokenMap = redisService.hmget(token); - params.put("staffId", tokenMap.get("archivesId") + ""); - params.put("staffName", tokenMap.get("realName") + ""); - params.put("semId", tokenMap.get("areaId") + ""); - params.put("ancestors", tokenMap.get("ancestors") + ""); - return toAjax(viewMeetingService.updateView(params, ".updateView")); + ViewMeeting info = viewMeetingDTO.getViewMeeting(); + Map tokenMap = redisService.hmget(token); + info.setStaffId(tokenMap.get("archivesId") + ""); + info.setStaffName(tokenMap.get("realName") + ""); + info.setSemId(tokenMap.get("areaId") + ""); + info.setAncestors(tokenMap.get("ancestors") + ""); +// Map params = ParameterUtils.reqMapSeria(request.getParameterMap()); +// params.put("staffId", tokenMap.get("archivesId") + ""); +// params.put("staffName", tokenMap.get("realName") + ""); +// params.put("semId", tokenMap.get("areaId") + ""); +// params.put("ancestors", tokenMap.get("ancestors") + ""); + return toAjax(viewMeetingService.updateView(viewMeetingDTO, ".updateView")); } /** @@ -219,6 +238,28 @@ public class ViewMeetingApi extends BaseController { return AjaxResult.success(viewMeetingService.oneView(params, ".pageList")); } + /** + * 查询市场活动-产品列表 + * + * @author mzr + * @date 2024/11/13 + */ + @ResponseBody + @PatchMapping(value = "/listDetail") + @ApiOperation(value = "查询市场活动-产品列表") + public Map listDetail( + @ApiParam(required = true, value = "市场活动id") @RequestParam(required = true) String viewId, + HttpServletRequest request) { + Map params = new HashMap<>(); + Map result = new HashMap<>(); + String token = request.getHeader("token"); + if (!redisService.exists(token)) { + return AjaxResult.error(ErrorUtils.IS_NOT_LOGIN_ERROR, "用户未登录"); + } + params.put("viewId", viewId); + return AjaxResult.success(viewMeetingService.listDetail(params, ".findCrmMarketingDetailByCondition")); + } + /** * @description: 市场活动数据统计 * @author: mzr diff --git a/crm-common/src/main/resources/mapper/mapper_oracle/view/CrmMarketingDetailMapper.xml b/crm-common/src/main/resources/mapper/mapper_oracle/view/CrmMarketingDetailMapper.xml index e9f75e6..f885bfd 100644 --- a/crm-common/src/main/resources/mapper/mapper_oracle/view/CrmMarketingDetailMapper.xml +++ b/crm-common/src/main/resources/mapper/mapper_oracle/view/CrmMarketingDetailMapper.xml @@ -5,28 +5,30 @@ - - - - - - - - - - + + + + + + + + + + + + - + a.id, a.view_id, a.goods_id, a.goods_no, a.goods_name, a.spec, a.create_time, a.earnest, - a.goods_num, a.reserve_acre + a.goods_num, a.reserve_acre, a.product_type_name, a.product_type_code - + - + INSERT INTO crm_marketing_detail ( id, view_id, goods_id, goods_no, goods_name, spec, create_time, earnest, - goods_num, reserve_acre + goods_num, reserve_acre, product_type_name, product_type_code ) VALUES ( #{id,jdbcType=VARCHAR}, #{viewId,jdbcType=VARCHAR}, @@ -57,32 +59,36 @@ #{createTime,jdbcType=VARCHAR}, #{earnest,jdbcType=VARCHAR}, #{goodsNum,jdbcType=VARCHAR}, - #{reserveAcre,jdbcType=VARCHAR} + #{reserveAcre,jdbcType=VARCHAR}, + #{productTypeName,jdbcType=VARCHAR}, + #{productTypeCode,jdbcType=VARCHAR} ) - + INSERT INTO crm_marketing_detail ( - id, view_id, goods_id, goods_no, goods_name, spec, create_time, earnest, - goods_num, reserve_acre + id, view_id, goods_id, goods_no, goods_name, spec, create_time, earnest, + goods_num, reserve_acre,product_type_name,product_type_code ) SELECT - #{item.id,jdbcType=VARCHAR}, - #{item.viewId,jdbcType=VARCHAR}, - #{item.goodsId,jdbcType=VARCHAR}, - #{item.goodsNo,jdbcType=VARCHAR}, - #{item.goodsName,jdbcType=VARCHAR}, - #{item.spec,jdbcType=VARCHAR}, - #{item.createTime,jdbcType=VARCHAR}, - #{item.earnest,jdbcType=VARCHAR}, - #{item.goodsNum,jdbcType=VARCHAR}, - #{item.reserveAcre,jdbcType=VARCHAR} + #{item.id,jdbcType=VARCHAR}, + #{item.viewId,jdbcType=VARCHAR}, + #{item.goodsId,jdbcType=VARCHAR}, + #{item.goodsNo,jdbcType=VARCHAR}, + #{item.goodsName,jdbcType=VARCHAR}, + #{item.spec,jdbcType=VARCHAR}, + #{item.createTime,jdbcType=VARCHAR}, + #{item.earnest,jdbcType=VARCHAR}, + #{item.goodsNum,jdbcType=VARCHAR}, + #{item.reserveAcre,jdbcType=VARCHAR} + #{item.productTypeName,jdbcType=VARCHAR}, + #{item.productTypeCode,jdbcType=VARCHAR} FROM DUAL - + UPDATE crm_marketing_detail @@ -114,15 +120,21 @@ reserve_acre = #{reserveAcre,jdbcType=VARCHAR} + + product_type_name = #{productTypeName,jdbcType=VARCHAR} + + + product_type_code = #{productTypeCode,jdbcType=VARCHAR} + - WHERE id = #{id} + WHERE id = #{id}// - + - DELETE FROM crm_marketing_detail WHERE id = #{id} + DELETE FROM crm_marketing_detail WHERE view_id = #{viewId} - + DELETE FROM crm_marketing_detail WHERE id IN diff --git a/crm-webapp/src/main/java/com/yb/lb/webapp/view/view/entity/CrmMarketingDetail.java b/crm-webapp/src/main/java/com/yb/lb/webapp/view/view/entity/CrmMarketingDetail.java index 1575e7f..6d7c484 100644 --- a/crm-webapp/src/main/java/com/yb/lb/webapp/view/view/entity/CrmMarketingDetail.java +++ b/crm-webapp/src/main/java/com/yb/lb/webapp/view/view/entity/CrmMarketingDetail.java @@ -1,5 +1,6 @@ package com.yb.lb.webapp.view.view.entity; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** @@ -14,33 +15,51 @@ public class CrmMarketingDetail implements java.io.Serializable { private static final long serialVersionUID = -423516422284485951L; /** 主键Id */ + @ApiModelProperty(hidden = true) private String id; /** 主键Id(市场活动) */ + @ApiModelProperty(value = "主键Id(市场活动)") private String viewId; /** 商品id */ + @ApiModelProperty(value = "商品id") private String goodsId; /** 商品编码 */ + @ApiModelProperty(value = "商品编码") private String goodsNo; /** 商品名称 */ + @ApiModelProperty(value = "商品名称") private String goodsName; /** 规格 */ + @ApiModelProperty(value = "规格") private String spec; /** 制单时间 */ + @ApiModelProperty(hidden = true) private String createTime; /** 亩定金(元) */ + @ApiModelProperty(value = "亩定金(元)") private String earnest; /** 件数 */ + @ApiModelProperty(value = "件数") private String goodsNum; /** 预定亩数 */ + @ApiModelProperty(value = "预定亩数") private String reserveAcre; + /** 产品类型名称 */ + @ApiModelProperty(value = "产品类型名称") + private String productTypeName; + + /** 产品类型编码 */ + @ApiModelProperty(value = "产品类型编码") + private String productTypeCode; + } \ No newline at end of file diff --git a/crm-webapp/src/main/java/com/yb/lb/webapp/view/view/sevice/ViewMeetingService.java b/crm-webapp/src/main/java/com/yb/lb/webapp/view/view/sevice/ViewMeetingService.java index d5c0fe2..4f389d5 100644 --- a/crm-webapp/src/main/java/com/yb/lb/webapp/view/view/sevice/ViewMeetingService.java +++ b/crm-webapp/src/main/java/com/yb/lb/webapp/view/view/sevice/ViewMeetingService.java @@ -1,14 +1,20 @@ package com.yb.lb.webapp.view.view.sevice; +import cn.hutool.core.util.IdUtil; import com.github.pagehelper.PageInfo; import com.yb.lb.common.base.oracle.BaseOracleDao; +import com.yb.lb.common.utils.DateUtil; +import com.yb.lb.common.utils.FINALCMD; import com.yb.lb.common.utils.MapObjUtil; import com.yb.lb.common.utils.StringUtil; import com.yb.lb.webapp.archives.dictionary.entity.Dictionaryies; import com.yb.lb.webapp.archives.dictionary.service.DictionaryiesService; import com.yb.lb.webapp.redis.service.RedisService; +import com.yb.lb.webapp.stock.entity.CrmInventoryDetail; +import com.yb.lb.webapp.stock.entity.CrmInventoryInfo; import com.yb.lb.webapp.view.view.entity.CrmMarketingDetail; import com.yb.lb.webapp.view.view.entity.ViewMeeting; +import com.yb.lb.webapp.view.view.entity.ViewMeetingDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -32,16 +38,45 @@ public class ViewMeetingService { * @description: 新增市场活动 * @date: 20210331 */ - public boolean addView(Map params, String id) { - return dao.add_obj(ViewMeeting.class.getName() + id, params); + public boolean addView(ViewMeetingDTO viewMeetingDTO, String id) { + ViewMeeting info = viewMeetingDTO.getViewMeeting(); + if (dao.add_obj(ViewMeeting.class.getName() + id, info)) { + List infoDetails = viewMeetingDTO.getDetails(); + if (infoDetails != null && infoDetails.size() > 0) { + for (CrmMarketingDetail marketDetail : infoDetails) { + marketDetail.setId(IdUtil.simpleUUID()); + marketDetail.setViewId(info.getId()); + marketDetail.setCreateTime(info.getCreateTime()); + } + detailDao.add_obj(CrmMarketingDetail.class.getName() + ".insertCrmMarketingDetails", infoDetails); + } + return true; + } + return false; } /** * @description: 市场活动修改 * @date: 20210331 */ - public boolean updateView(Map params, String id) { - return dao.update(ViewMeeting.class.getName() + id, params); + public boolean updateView(ViewMeetingDTO viewMeetingDTO, String id) { + ViewMeeting info = viewMeetingDTO.getViewMeeting(); + if (dao.update(ViewMeeting.class.getName() + id, info)) { + List infoDetails = viewMeetingDTO.getDetails(); + if (infoDetails != null && infoDetails.size() > 0) { + String viewId = info.getId(); + if (detailDao.delete(CrmMarketingDetail.class.getName() + ".deleteCrmMarketingDetailById", viewId)) { + for (CrmMarketingDetail marketDetail : infoDetails) { + marketDetail.setId(IdUtil.simpleUUID()); + marketDetail.setViewId(info.getId()); + marketDetail.setCreateTime(info.getCreateTime()); + } + detailDao.add_obj(CrmMarketingDetail.class.getName() + ".insertCrmMarketingDetails", infoDetails); + } + } + return true; + } + return false; } /**