admin/src/views/business/goodsLabels.vue
@@ -117,15 +117,15 @@ methods: { statusChange (row) { this.api.updateById({ id: row.id, status: row.status }) .then(() => { this.$message.success('操作成功') }) .catch(e => { this.$message.error('操作成功') }) .then(() => { this.handlePageChange() }) .then(() => { this.$message.success('操作成功') }) .catch(e => { this.$message.error('操作成功') }) .then(() => { this.handlePageChange() }) } } } admin/src/views/business/planGoods.vue
@@ -26,7 +26,7 @@ ></el-option> </el-select> </el-form-item> <el-form-item label="上架状态" prop="status"> <el-select v-model="searchForm.brandId" @@ -89,7 +89,6 @@ <el-table-column prop="labels" label="商品标签集合,多个用英文逗号隔开" min-width="100px"></el-table-column> --> <!-- v-if="containPermissions(['business:goods:update', 'business:goods:delete'])" --> <el-table-column label="操作" min-width="120" fixed="right" @@ -163,7 +162,7 @@ labels: '' }, labels: [], } }, provide() { @@ -180,7 +179,7 @@ 'field.main': 'id' }) this.search() labelList({ capacity: 999, model: { @@ -190,14 +189,14 @@ .then(res => { this.labels = res.records }) }, methods: { handleClick(val) { }, /** * * * @param {上下状态} status 0上架 1下架 */ issued(status) { @@ -211,7 +210,7 @@ }) }, statusChange(row) { updateById(row) .then(() => { admin/src/views/business/platformGoods.vue
@@ -69,20 +69,21 @@ @selection-change="handleSelectionChange" > <el-table-column type="selection" width="55"></el-table-column> <el-table-column prop="id" label="商品ID" min-width="100px"></el-table-column> <el-table-column prop="imgurl" label="商品信息" min-width="100px"> <el-table-column prop="imgurl" label="商品信息" min-width="200px"> <template slot-scope="{row}"> <el-image :scr="row.imgurlfull" :preview-src-list="[row.imgurlfull]"></el-image> <el-image v-if="row.imgurl" :src="row.resourcePath+row.imgurl" :preview-src-list="[row.resourcePath+row.imgurl]"></el-image> {{ row.name }} </template> </el-table-column> <el-table-column prop="categoryName" label="所属分类" min-width="100px"></el-table-column> <el-table-column prop="brandName" label="所属品牌" min-width="100px"></el-table-column> <el-table-column prop="showPrice" label="展示价格" min-width="100px"></el-table-column> <el-table-column prop="salenum" label="库存" min-width="100px"></el-table-column> <el-table-column prop="salenum" label="虚拟销量" min-width="100px"></el-table-column> <el-table-column prop="salenum" label="实际销量" min-width="100px"></el-table-column> <el-table-column prop="createDate" label="创建时间" min-width="100px"></el-table-column> <el-table-column prop="id" label="商品ID" min-width="150px" ></el-table-column> <el-table-column prop="name" label="商品名称" min-width="150px" show-overflow-tooltip></el-table-column> <el-table-column prop="categoryName" label="所属分类" min-width="120px"></el-table-column> <el-table-column prop="brandName" label="所属品牌" min-width="120px"></el-table-column> <el-table-column prop="price" label="展示价格" min-width="100px"></el-table-column> <el-table-column prop="stockNum" label="剩余库存量" min-width="100px"></el-table-column> <el-table-column prop="salesVolume" label="实际销量" min-width="100px"></el-table-column> <el-table-column prop="skuPrice" label="零售价(元)" min-width="100px"></el-table-column> <el-table-column prop="editDate" label="最近更新时间" min-width="100px"></el-table-column> <el-table-column prop="status" label="状态" min-width="100px"> <template slot-scope="{row}"> <el-switch @@ -95,24 +96,15 @@ ></el-switch> </template> </el-table-column> <!-- <el-table-column prop="isrec" label="是否推荐 0否 1是" min-width="100px"></el-table-column> <el-table-column prop="styleImg" label="咖豆风味图" min-width="100px"></el-table-column> <el-table-column prop="labels" label="商品标签集合,多个用英文逗号隔开" min-width="100px"></el-table-column> --> <!-- v-if="containPermissions(['business:goods:update', 'business:goods:delete'])" --> <el-table-column label="操作" min-width="120" fixed="right" > <template slot-scope="{row}"> <template v-if="row.status==1"> <el-button type="text" @click="$refs.operaGoodsWindow.open('编辑商品', row, 0)" v-permissions="['business:goods:update']">编辑</el-button> <el-button type="text" @click="$refs.operaPlatformGoodsSkuWindow.open('平台SKU', row)">SKU</el-button> <el-button type="text" @click="deleteById(row)" v-permissions="['business:goods:delete']">删除</el-button> </template> <template v-else> <el-button type="text" @click="$refs.operaGoodsDetailWindow.open('商品详情', row, 0)">查看详情</el-button> </template> </template> </el-table-column> </el-table> server/dmmall_admin/src/main/java/com/doumee/api/common/HomeContrller.java
@@ -61,7 +61,7 @@ //用户总数 MPJLambdaWrapper<Member> memberWrapper = new MPJLambdaWrapper<>(); memberWrapper.eq(Member::getIsdeleted,Constants.ZERO); Integer memberCount=memberJoinMapper.selectCount(memberWrapper); long memberCount=memberJoinMapper.selectCount(memberWrapper); json.put("memberCount",memberCount); //今日活动用户; server/dmmall_service/src/main/java/com/doumee/config/listener/IntegralApplicationListener.java
@@ -58,7 +58,7 @@ //分享不超过四次 Date startDate = DateUtil.toDate(DateUtil.getMonday()); Date endDate = DateUtil.toDate(DateUtil.getSunday()); Integer count = sharesService.count(startDate, endDate, memberId, Arrays.asList(Constants.ShareType.SHARE_ACTIVITY_ACTIVITY.getKey(),1,2)); Long count = sharesService.count(startDate, endDate, memberId, Arrays.asList(Constants.ShareType.SHARE_ACTIVITY_ACTIVITY.getKey(),1,2)); if (count < Constants.OrderStatus.CLOSE.getKey()){ @@ -84,7 +84,7 @@ //分享海报不超过1次 Date startDate = DateUtil.toDate(DateUtil.getMonday()); Date endDate = DateUtil.toDate(DateUtil.getSunday()); Integer count = sharesService.count(startDate, endDate, memberId,Arrays.asList(5)); long count = sharesService.count(startDate, endDate, memberId,Arrays.asList(5)); if (count < Constants.ONE){ @@ -133,7 +133,7 @@ //评论不超过四次 Date startDate = DateUtil.toDate(DateUtil.getMonday()); Date endDate = DateUtil.toDate(DateUtil.getSunday()); Integer count = commentService.count(startDate, endDate, memberId); long count = commentService.count(startDate, endDate, memberId); if (count < 4){ Comment comment = (Comment) integralOBJ; server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -919,7 +919,7 @@ HOMEZHUANQU(12, "首页专区", "首页专区"), BIG_AREA(13, "区域分类", "区域分类"), APPLICABLE_BRAND(14, "适用品牌", "适用品牌"), SERIES_BRAND(15, "系列品牌", "系列品牌"), SERIES_BRAND(15, "品牌系列", "品牌系列"), ; // 成员变量 private String name; server/dmmall_service/src/main/java/com/doumee/dao/business/model/Coupon.java
@@ -97,7 +97,7 @@ @ApiModelProperty(value = "发放总量", example = "1") @ExcelColumn(name="发放总量") private Integer num; private Long num; @ApiModelProperty(value = "说明") @ExcelColumn(name="说明") server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goods.java
@@ -74,10 +74,9 @@ @ExcelColumn(name="品牌编码(关联labels表)") private Integer brandId; @ApiModelProperty(value = "展示价格", example = "1") @ApiModelProperty(value = "展示价格(出厂价)", example = "1") @ExcelColumn(name="展示价格") private BigDecimal price; @ApiModelProperty(value = "初始销量", example = "1") @ExcelColumn(name="初始销量") private Integer salenum; @@ -131,6 +130,9 @@ private BigDecimal deductRata; @ApiModelProperty(value = "sku重量", hidden = true) @TableField(exist = false) private BigDecimal weight; @ApiModelProperty(value = "sku金额", hidden = true) @TableField(exist = false) private BigDecimal skuPrice; @@ -175,11 +177,16 @@ @ApiModelProperty(value = "tab切换状态;1全部,2,已售罄,3回收") @TableField(exist = false) private Integer tabStatus; @ApiModelProperty(value = "单位") @TableField(exist = false) private String unitName; @ApiModelProperty(value = "商品sku信息") @TableField(exist = false) private List<Sku> skuList; @ApiModelProperty(value = "商品sku信息") @TableField(exist = false) private List<Labels> brandList; @ApiModelProperty(value = "商品SKU规格组") @TableField(exist = false) server/dmmall_service/src/main/java/com/doumee/dao/business/model/GoodsSku.java
@@ -69,6 +69,12 @@ @ApiModelProperty(value = "sku图片") @ExcelColumn(name="sku图片") private String imgurl; @ApiModelProperty(value = "单位") @ExcelColumn(name="单位") private String unitName; @ApiModelProperty(value = "积分最多抵扣比例") @ExcelColumn(name="积分最多抵扣比例") private BigDecimal integralRate; @ApiModelProperty(value = "展示价格", example = "1") @ExcelColumn(name="展示价格") @@ -80,7 +86,7 @@ @ApiModelProperty(value = "库存量", example = "1") @ExcelColumn(name="库存量") private Integer stock; private BigDecimal stock; @ApiModelProperty(value = "商品重量(kg)", example = "1") @ExcelColumn(name="商品重量(kg)") @@ -93,8 +99,6 @@ @ApiModelProperty(value = "商品SKU规格组明细") @TableField(exist = false) private List<GoodsSkuAttr> goodsSkuAttrList; } server/dmmall_service/src/main/java/com/doumee/dao/business/model/Labels.java
@@ -87,6 +87,12 @@ @ApiModelProperty(value = "省份区域编码集合", example = "1") @TableField(exist = false) private List<Integer> areaIdList; @ApiModelProperty(value = "下级编码集合", example = "1") @TableField(exist = false) private List<Integer> childIdList; @ApiModelProperty(value = "下级编码集合", example = "1") @TableField(exist = false) private List<Labels> childList; @ApiModelProperty(value = "省份区域集合", example = "1") @TableField(exist = false) private List<Areas> areaList; @@ -99,6 +105,9 @@ @ApiModelProperty(value = "父类名称") @TableField(exist = false) private String parentName; @ApiModelProperty(value = "父类名称") @TableField(exist = false) private int goodsNum; @ApiModelProperty(value = "分类:一级分类0,二级分类1") server/dmmall_service/src/main/java/com/doumee/dao/web/dto/activity/BaseActivity.java
@@ -57,7 +57,7 @@ private Integer limitnum; @ApiModelProperty(value = "报名人数") private Integer applicantNum; private Long applicantNum; @ApiModelProperty(value = "活动价格(type为活动)") private BigDecimal price; server/dmmall_service/src/main/java/com/doumee/dao/web/dto/coffeebean/CoffeeBeanTaskDTO.java
@@ -22,6 +22,6 @@ private String label; @ApiModelProperty(value = "完成次数 | 每周 分享资讯 4 分享邀请海报 1 发布评论 4 ") private Integer doneCount; private long doneCount; } server/dmmall_service/src/main/java/com/doumee/dao/web/dto/shop/ShopDataStatisticsDTO.java
@@ -18,11 +18,11 @@ private String shopName; @ApiModelProperty(value = "商家核销数") private Integer shopCouponUseCount; private long shopCouponUseCount; @ApiModelProperty(value = "商家粉丝数") private Integer shopFansCount; private long shopFansCount; @ApiModelProperty(value = "商家新鲜事") private Integer shopNewCount; private long shopNewCount; } server/dmmall_service/src/main/java/com/doumee/dao/web/response/MyPageResponse.java
@@ -14,18 +14,18 @@ public class MyPageResponse { @ApiModelProperty(value = "待支付订单数量") private Integer waitPayOrders; private Long waitPayOrders; @ApiModelProperty(value = "待发货订单数量") private Integer waitOrders; private Long waitOrders; @ApiModelProperty(value = "待收货订单数量") private Integer waitReceivedOrders; private Long waitReceivedOrders; @ApiModelProperty(value = "已完成订单数量") private Integer finishOrders; private Long finishOrders; @ApiModelProperty(value = "售后中订单数量") private Integer afterOrders; private Long afterOrders; } server/dmmall_service/src/main/java/com/doumee/service/business/CardService.java
@@ -97,7 +97,7 @@ * @param card 实体对象 * @return long */ Integer count(Card card); Long count(Card card); /** server/dmmall_service/src/main/java/com/doumee/service/business/CollectService.java
@@ -96,7 +96,7 @@ * @param collect 实体对象 * @return long */ Integer count(Collect collect); Long count(Collect collect); /** * 条件统计 server/dmmall_service/src/main/java/com/doumee/service/business/CommentService.java
@@ -98,10 +98,10 @@ * @param comment 实体对象 * @return long */ Integer count(Comment comment); Long count(Comment comment); Integer count(Date start, Date end, Integer memberId); Long count(Date start, Date end, Integer memberId); /** server/dmmall_service/src/main/java/com/doumee/service/business/MemberCouponService.java
@@ -98,7 +98,7 @@ * @param memberCoupon 实体对象 * @return long */ Integer count(MemberCoupon memberCoupon); long count(MemberCoupon memberCoupon); /****************************************移动端接口开始********************************************************************/ @@ -120,7 +120,7 @@ * @param couponType * @return */ Integer memberCouponNum(BigDecimal price, Integer memberId, Integer couponType); long memberCouponNum(BigDecimal price, Integer memberId, Integer couponType); /** * server/dmmall_service/src/main/java/com/doumee/service/business/SharesService.java
@@ -97,5 +97,5 @@ */ long count(Shares shares); Integer count(Date start,Date end, Integer memberId,List<Integer> types); long count(Date start,Date end, Integer memberId,List<Integer> types); } server/dmmall_service/src/main/java/com/doumee/service/business/ShopCommentService.java
@@ -98,7 +98,7 @@ */ long count(ShopComment shopComment); Integer count(Date start, Date end, Integer memberId, Integer type); long count(Date start, Date end, Integer memberId, Integer type); /** * 获取店铺评价打分 server/dmmall_service/src/main/java/com/doumee/service/business/ShopFollowService.java
@@ -96,7 +96,7 @@ * @param shopFollow 实体对象 * @return long */ Integer count(ShopFollow shopFollow); long count(ShopFollow shopFollow); /** * 查询获取关注对象 server/dmmall_service/src/main/java/com/doumee/service/business/ShopNewsService.java
@@ -103,7 +103,7 @@ * @param shopNews 实体对象 * @return long */ Integer count(ShopNews shopNews); long count(ShopNews shopNews); /** server/dmmall_service/src/main/java/com/doumee/service/business/ZanService.java
@@ -96,7 +96,7 @@ * @param zan 实体对象 * @return long */ Integer count(Zan zan); long count(Zan zan); Map<Integer, ZanDTO> count(List<Integer> objIds); server/dmmall_service/src/main/java/com/doumee/service/business/impl/ActivityServiceImpl.java
@@ -560,7 +560,7 @@ wrapper.lambda().eq(ActivitySign::getActivityId,activityId) .in(ActivitySign::getPayStatus, Arrays.asList(0,1)); //获取报名人数 Integer applicantNum = activitySignMapper.selectCount(wrapper); Long applicantNum = activitySignMapper.selectCount(wrapper); wrapper.clear(); wrapper.lambda().eq(ActivitySign::getActivityId,activityId) @@ -570,7 +570,7 @@ //获取报名状态 getPersonActivityStatus(activity, ActivitySignResult,baseActivity); // baseActivity.setPersonActivityStatus(personActivityStatus); baseActivity.setApplicantNum(applicantNum); baseActivity.setApplicantNum(Constants.formatLongNum(applicantNum)); boolean mqResult= normalMsgProducer.sendMsg(Constants.MQ_TAG.activity,JSONObject.toJSONString(activity)); // // RocketMessageProducer.producerMsg(Constants.MQ_TAG.activity,null, JSONObject.toJSONString(activity)); server/dmmall_service/src/main/java/com/doumee/service/business/impl/CardParamServiceImpl.java
@@ -114,9 +114,9 @@ QueryWrapper<Card> wrapper = new QueryWrapper<>(); wrapper.lambda().eq(Card::getParamId,cardParam.getId()); Integer integer = cardMapper.selectCount(wrapper); Long integer =Constants.formatLongNum( cardMapper.selectCount(wrapper)); if (integer > Constants.ZERO){ if (integer!=null && integer > Constants.ZERO){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"卡已经生成不允许修改配置"); } CardParam update = new CardParam(); server/dmmall_service/src/main/java/com/doumee/service/business/impl/CardServiceImpl.java
@@ -72,11 +72,11 @@ } Integer num = card.getNum(); Integer startNo = Integer.valueOf(cardParam.getStartNo()); int startNo = Integer.valueOf(cardParam.getStartNo()); Card count = new Card(); count.setParamId(card.getParamId()); Integer countNum = count(count); startNo = countNum != 0 ? startNo+countNum : startNo; long countNum = Constants.formatLongNum(count(count)); startNo = countNum != 0 ? (int) (startNo + countNum) : startNo; List<Integer> list = new ArrayList<>(); for (int i = 0; i <num; i++) { @@ -201,7 +201,7 @@ } @Override public Integer count(Card card) { public Long count(Card card) { QueryWrapper<Card> wrapper = new QueryWrapper<>(card); return cardMapper.selectCount(wrapper); } server/dmmall_service/src/main/java/com/doumee/service/business/impl/CoffeeBeanTaskServiceImpl.java
@@ -70,7 +70,7 @@ Date startDate = DateUtil.toDate(DateUtil.getMonday()); Date endDate = DateUtil.toDate(DateUtil.getSunday()); Integer count = sharesService.count(startDate, endDate, loginUserInfo.getMemberId(), Arrays.asList(0,1,2,3,4)); long count = sharesService.count(startDate, endDate, loginUserInfo.getMemberId(), Arrays.asList(0,1,2,3,4)); CoffeeBeanTaskDTO dto = new CoffeeBeanTaskDTO(); dto.setCode(dictData.getCode()); dto.setDoneCount(count); @@ -82,7 +82,7 @@ Date startDate = DateUtil.toDate(DateUtil.getMonday()); Date endDate = DateUtil.toDate(DateUtil.getSunday()); Integer count = sharesService.count(startDate, endDate, loginUserInfo.getMemberId(),Arrays.asList(5)); long count = sharesService.count(startDate, endDate, loginUserInfo.getMemberId(),Arrays.asList(5)); CoffeeBeanTaskDTO dto = new CoffeeBeanTaskDTO(); dto.setCode(dictData.getCode()); dto.setDoneCount(count); @@ -99,8 +99,8 @@ Date startDate = DateUtil.toDate(DateUtil.getMonday()); Date endDate = DateUtil.toDate(DateUtil.getSunday()); Integer count = commentService.count(startDate, endDate, loginUserInfo.getMemberId()); Integer shopcount = shopCommentService.count(startDate, endDate, loginUserInfo.getMemberId(),null); long count = commentService.count(startDate, endDate, loginUserInfo.getMemberId()); long shopcount = shopCommentService.count(startDate, endDate, loginUserInfo.getMemberId(),null); CoffeeBeanTaskDTO dto = new CoffeeBeanTaskDTO(); dto.setCode(dictData.getCode()); dto.setDoneCount(count+shopcount); server/dmmall_service/src/main/java/com/doumee/service/business/impl/CollectServiceImpl.java
@@ -158,7 +158,7 @@ } @Override public Integer count(Collect collect) { public Long count(Collect collect) { QueryWrapper<Collect> wrapper = new QueryWrapper<>(collect); return collectMapper.selectCount(wrapper); } server/dmmall_service/src/main/java/com/doumee/service/business/impl/CommentServiceImpl.java
@@ -172,13 +172,13 @@ } @Override public Integer count(Comment comment) { public Long count(Comment comment) { QueryWrapper<Comment> wrapper = new QueryWrapper<>(comment); return commentMapper.selectCount(wrapper); } @Override public Integer count(Date start, Date end, Integer memberId) { public Long count(Date start, Date end, Integer memberId) { QueryWrapper<Comment> wrapper = new QueryWrapper<>(); wrapper.lambda().eq(Comment::getMemberId,memberId) server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java
@@ -101,61 +101,191 @@ private UploadFileService uploadFileService; @Override @Transactional(rollbackFor = {Exception.class,BusinessException.class}) public Integer create(Goods goods) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); isCreateParamValid(goods, user); Date date =new Date(); goods.setIsdeleted(Constants.ZERO); goods.setCreateDate(new Date()); goods.setCreateDate(date); goods.setCreator(user.getId()); goods.setEditDate(date); goods.setEditor(user.getId()); goods.setStatus(Constants.ONE); goods.setIsrec(Constants.ZERO); if(StringUtils.isNotBlank(goods.getLabels())){ goods.setLabels( StringUtils.removeEnd( goods.getLabels().replace(",",","),",")); } goodsMapper.insert(goods); dealBatchMultiFiles(goods, goods.getFileList(), user); dealDefaultGoodsSku(goods); dealBatchMultiFiles(goods, goods.getFileList(), user,false); return goods.getId(); } private void dealDefaultGoodsSku(Goods goods) { Date date = goods.getEditDate(); Integer userId = goods.getEditor(); Sku sku = new Sku(); sku.setIsdeleted(Constants.ZERO); sku.setCreateDate(date); sku.setCreator(userId); sku.setEditDate(date); sku.setEditor(userId); sku.setGoodsId(goods.getId()); sku.setName("默认"); sku.setSortnum(0); skuMapper.insert(sku); public void dealBatchMultiFiles(Goods goods, List<Multifile> fileList, LoginUserInfo user) { SkuAttr skuAttr = new SkuAttr(); skuAttr.setIsdeleted(Constants.ZERO); skuAttr.setCreateDate(date); skuAttr.setCreator(userId); skuAttr.setEditDate(date); skuAttr.setEditor(userId); skuAttr.setSkuId(sku.getId()); skuAttr.setName("默认"); skuAttr.setSortnum(0); skuAttrMapper.insert(skuAttr); GoodsSku goodsSku = new GoodsSku(); goodsSku.setIsdeleted(Constants.ZERO); goodsSku.setCreateDate(date); goodsSku.setCreator(userId); goodsSku.setEditDate(date); goodsSku.setEditor(userId); goodsSku.setSkuId(sku.getId()); goodsSku.setGoodsId(goods.getId()); goodsSku.setName(goods.getName()); goodsSku.setPrice(goods.getSkuPrice()); goodsSku.setShowPrice(goods.getPrice()); goodsSku.setStock(goods.getStockNum()); goodsSku.setIntegralRate(goods.getDeductRata()); goodsSku.setUnitName(goods.getUnitName()); goodsSku.setWeight(goods.getWeight()); goodsSku.setImgurl(goods.getImgurl()); goodsSku.setStatus(goods.getStatus()); goodsSkuMapper.insert(goodsSku); GoodsSkuAttr goodsSkuAttr = new GoodsSkuAttr(); goodsSkuAttr.setIsdeleted(Constants.ZERO); goodsSkuAttr.setCreateDate(date); goodsSkuAttr.setCreator(userId); goodsSkuAttr.setEditDate(date); goodsSkuAttr.setEditor(userId); goodsSkuAttr.setSkuId(sku.getId()); goodsSkuAttr.setGoodsSkuId(goodsSku.getId()); goodsSkuAttr.setSkuAttrId(skuAttr.getId()); goodsSkuAttrMapper.insert(goodsSkuAttr); } public void dealBatchMultiFiles(Goods goods, List<Multifile> fileList, LoginUserInfo user,boolean update) { Date today = new Date(); Multifile del = new Multifile(); del.setObjId(goods.getId()); multifileMapper.delete(new QueryWrapper<>(del)); fileList.stream().forEach(s -> { s.setIsdeleted(Constants.ZERO); s.setCreator(user.getId()); s.setCreateDate(today); s.setObjId(goods.getId()); s.setType(Constants.ZERO); s.setObjType(Constants.MultiFile.PLATFORM_GOOD_ROTATION.getKey()); multifileMapper.insert(s); /* if(Constants.equalsInteger(goods.getType(),Constants.ZERO)){ //平台商城 //清空原有的 if(update){ multifileMapper.delete(new UpdateWrapper<Multifile>().lambda() .eq(Multifile::getIsdeleted,Constants.ZERO) .eq(Multifile::getObjId,goods.getId())); } if(fileList!=null && fileList.size()>0){ List<Multifile> multifileList = new ArrayList<>(); fileList.stream().forEach(s -> { if(StringUtils.isNotBlank(s.getFileurl())){ s.setIsdeleted(Constants.ZERO); s.setCreator(user.getId()); s.setCreateDate(today); s.setObjId(goods.getId()); s.setType(Constants.ZERO); s.setObjType(Constants.MultiFile.PLATFORM_GOOD_ROTATION.getKey()); multifileList.add(s); } }); if(multifileList.size()>0){ multifileMapper.insert(multifileList); } if(Constants.equalsInteger(goods.getType(),Constants.ONE)){ //咖豆商城 } if(Constants.equalsInteger(goods.getType(),Constants.TWO)){ //咖啡计划商品 }*/ }); } } public void isCreateParamValid(Goods goods, LoginUserInfo user) { //平台商城 if (StringUtils.isBlank(goods.getName()) || goods.getCategoryId() == null || goods.getBrandList() == null || goods.getBrandList().size() == 0 || goods.getWeight() == null || goods.getPrice() == null || goods.getSkuPrice() == null || StringUtils.isBlank(goods.getImgurl()) || org.apache.commons.collections.CollectionUtils.isEmpty(goods.getFileList()) ) { || org.apache.commons.collections.CollectionUtils.isEmpty(goods.getFileList())) { throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), ResponseStatus.BAD_REQUEST.getMessage()); } //查询分类 Labels cate = labelsMapper.selectById(goods.getCategoryId()); if(cate == null || Constants.equalsInteger(cate.getIsdeleted(),Constants.ONE) ||! Constants.equalsInteger(cate.getType(),Constants.LabelsType.GOODSTYPE.getKey())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对不起,分类信息不存在"); } if(goods.getBrandId()!=null){ Labels brand = labelsMapper.selectById(goods.getCategoryId()); if(brand == null || Constants.equalsInteger(brand.getIsdeleted(),Constants.ONE) ||! Constants.equalsInteger(brand.getType(),Constants.LabelsType.GOODSBRAND.getKey())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对不起,品牌信息不存在"); } } List<Integer> bIds = new ArrayList<>(); for(Labels b : goods.getBrandList()){ bIds.add(b.getId()); if(b.getChildIdList() == null || b.getChildIdList().size() ==0){ bIds.addAll(b.getChildIdList()); } } List<String> idsBrand = new ArrayList<>(); List<String> idsSerial = new ArrayList<>(); //查询全部适用品牌和系列数据 List<Labels> allBrands = labelsMapper.selectList(new QueryWrapper<Labels>().lambda() .in(Labels::getId,bIds) .eq(Labels::getIsdeleted,Constants.ZERO) ); for(Labels b : goods.getBrandList()){ Labels tb = findLabelFromListByid(allBrands,b.getId(),Constants.LabelsType.APPLICABLE_BRAND.getKey(),null); if(tb == null){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对不起,请选择正确的适用品牌"); } idsBrand.add("["+b.getId()+"]"); if(b.getChildIdList() == null || b.getChildIdList().size() ==0){ for(Integer c :b.getChildIdList()){ Labels cb = findLabelFromListByid(allBrands,b.getId(),Constants.LabelsType.SERIES_BRAND.getKey(),b.getId()); if(cb == null){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对不起,品牌【"+tb.getName() +"】下所属系列不正确"); } idsSerial.add("["+c+"]"); } } } goods.setBrandIds(String.join(",",idsBrand)); if(idsSerial.size()>0){ goods.setSerialIds(String.join(",",idsSerial)); } } private Labels findLabelFromListByid(List<Labels> allBrands, Integer id, int type,Integer parentId) { if(allBrands == null || allBrands.size() ==0){ return null; } for(Labels labels:allBrands){ if(!Constants.equalsInteger(id,labels.getId())){ return null; } if(!Constants.equalsInteger(type,labels.getType())){ return null; } if(parentId !=null && !Constants.equalsInteger(parentId,labels.getParentId())){ return null; } return labels; } return null; } @Override @@ -216,6 +346,7 @@ @Override @Transactional(rollbackFor = {Exception.class,BusinessException.class}) public void updateById(Goods goods) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); Goods query=goodsMapper.selectById(goods.getId()); @@ -229,7 +360,17 @@ goods.setLabels( StringUtils.removeEnd( goods.getLabels().replace(",",","),",")); } goodsMapper.updateById(goods); dealBatchMultiFiles(goods, goods.getFileList(), user); //清空原有的sku数据 skuMapper.update(null,new UpdateWrapper<Sku>().lambda() .set(Sku::getIsdeleted,Constants.ONE) .eq(Sku::getIsdeleted,Constants.ZERO) .eq(Sku::getGoodsId,goods.getSkuId())); goodsSkuMapper.update(null,new UpdateWrapper<GoodsSku>().lambda() .set(GoodsSku::getIsdeleted,Constants.ONE) .eq(GoodsSku::getIsdeleted,Constants.ZERO) .eq(GoodsSku::getGoodsId,goods.getSkuId())); dealDefaultGoodsSku(goods);//新建sku信息 dealBatchMultiFiles(goods, goods.getFileList(), user,true); } @@ -389,11 +530,14 @@ queryWrapper.eq(Goods::getId,id); queryWrapper.selectAll(Goods.class); queryWrapper.select("(select name from labels where id=t1.parent_id) as categoryName"); queryWrapper.selectAs(Labels::getName ,Goods::getBrandName); queryWrapper.select("t1.name",Goods::getCategoryName); queryWrapper.select("t2.name" ,Goods::getBrandName); queryWrapper.leftJoin(Labels.class,Labels::getId,Goods::getCategoryId); queryWrapper.leftJoin(Labels.class,Labels::getId,Goods::getBrandId); Goods goods=goodsAdminJoinMapper.selectJoinOne(Goods.class,queryWrapper); if(goods == null){ throw new BusinessException(ResponseStatus.DATA_EMPTY); } Multifile find = new Multifile(); find.setObjId(id); find.setIsdeleted(Constants.ZERO); @@ -406,7 +550,64 @@ queryGoodsSku.setIsdeleted(Constants.ZERO); List<GoodsSku> goodsSkuList=goodsSkuMapper.selectList(new QueryWrapper<>(queryGoodsSku)); goods.setGoodsSkuList(goodsSkuList); if(goodsSkuList.size()>0){ //默认sku信息 GoodsSku goodsSku = goodsSkuList.get(0); goods.setSkuPrice(goodsSku.getPrice()); goods.setWeight(goodsSku.getWeight()); goods.setStockNum(goodsSku.getStock()); goods.setUnitName(goodsSku.getUnitName()); } initGoodsApplyBrandAndSerial(goods); return goods; } private void initGoodsApplyBrandAndSerial(Goods goods) { List<Integer> idbrandList = getNumIdByIdsString(goods.getBrandIds()); List<Integer> idSerailList = getNumIdByIdsString(goods.getSerialIds()); if(idbrandList.size()>0){ List<Labels> brandList = new ArrayList<>(); List<Integer> allIds = new ArrayList<>(); allIds.addAll(idbrandList); if(idSerailList.size()>0){ allIds.addAll(idSerailList); } List<Labels> allBrands = labelsMapper.selectList(new QueryWrapper<Labels>().lambda() .in(Labels::getId,allIds) .eq(Labels::getIsdeleted,Constants.ZERO) ); for(Integer b : idbrandList){ Labels tb = findLabelFromListByid(allBrands,b,Constants.LabelsType.APPLICABLE_BRAND.getKey(),null); if(tb != null){ brandList.add(tb); tb.setChildIdList(new ArrayList<>()); tb.setChildList(new ArrayList<>()); for(Integer c : idSerailList) { Labels cb = findLabelFromListByid(allBrands, c, Constants.LabelsType.SERIES_BRAND.getKey(), b); if (cb != null) { tb.getChildIdList().add(c); tb.getChildList().add(cb); } } } } } } private List<Integer> getNumIdByIdsString(String brandIds) { List<Integer> idbrandList = new ArrayList<>(); if(StringUtils.isNotBlank(brandIds)){ String[] idsBrand = brandIds.replace("[","").replace("]", "").split(","); try { for(String s :idsBrand){ idbrandList.add(Integer.parseInt(s)); } }catch (Exception e){ } } return idbrandList; } @@ -512,8 +713,13 @@ Utils.MP.blankToNull(pageWrap.getModel()); queryWrapper.selectAll(Goods.class); queryWrapper.selectAs(Labels::getName, Goods::getCategoryName); queryWrapper.select("ls.name as parentName "); queryWrapper.select("t1.name",Goods::getCategoryName); queryWrapper.select("t2.name" ,Goods::getBrandName); queryWrapper.select("t3.name" ,Goods::getParentName); queryWrapper.leftJoin(Labels.class,Labels::getId,Goods::getCategoryId); queryWrapper.leftJoin(Labels.class,Labels::getId,Goods::getBrandId); queryWrapper.leftJoin(Labels.class,Labels::getId,Goods::getParentCategoryId); //库存量 queryWrapper.select("(select sum(STOCK) from goods_sku where ISDELETED=0 and GOODS_ID=t.id) as stockNum "); //实际销量 @@ -522,16 +728,12 @@ " INNER JOIN goodsorder go on go.id=gd.ORDER_ID and go.ISDELETED=0 and go.PAY_STATUS=1 " + " where gs.GOODS_ID=t.id) as salesVolume "); queryWrapper.leftJoin(Labels.class, Labels::getId, Goods::getCategoryId); queryWrapper.leftJoin("labels ls on ls.id=t.PARENT_CATEGORY_ID"); if (Constants.equalsInteger(pageWrap.getModel().getTabStatus(), Constants.TWO)) { //已售罄 queryWrapper.exists("select gs.STOCK from goods_sku gs " + " INNER JOIN goods g on g.id=gs.GOODS_ID " + " where gs.STOCK<=0 and gs.ISDELETED=0 and g.id=t.id "); } queryWrapper.eq(!Constants.equalsInteger(pageWrap.getModel().getTabStatus(), 3), Goods::getIsdeleted, Constants.ZERO); queryWrapper.eq(Constants.equalsInteger(pageWrap.getModel().getTabStatus(), 3), Goods::getIsdeleted, Constants.ONE); @@ -571,32 +773,24 @@ if (list == null || list.size() == 0) { return; } Multifile multifile=new Multifile(); String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(Constants.OSS, Constants.GOODS_FILE).getCode(); for (Goods model : list) { multifile.setIsdeleted(Constants.ZERO); multifile.setObjId(model.getId()); List<Multifile> fileList=multifileMapper.selectList(new QueryWrapper<>(multifile)); for(Multifile file:fileList){ if(StringUtils.isNotBlank(file.getFileurl())){ file.setFileFullUrl(path+file.getFileurl()); } } model.setFileList(fileList); model.setResourcePath(path); for (Goods goods : list) { goods.setResourcePath(path); //查询sku MPJLambdaWrapper<GoodsSku> queryWrapper = new MPJLambdaWrapper<>(); queryWrapper.eq(GoodsSku::getIsdeleted,Constants.ZERO); queryWrapper.eq(GoodsSku::getGoodsId,model.getId()); List<GoodsSku> gsList=goodsSkuMapper.selectList(queryWrapper); for(GoodsSku sd:gsList){ if(StringUtils.isNotBlank(sd.getImgurl())){ sd.setImgurl(path+sd.getImgurl()); } } model.setGoodsSkuList(gsList); MPJLambdaWrapper<GoodsSku> queryWrapper = new MPJLambdaWrapper<GoodsSku>() .eq(GoodsSku::getIsdeleted,Constants.ZERO) .last("limit 1") .eq(GoodsSku::getGoodsId,goods.getId()); GoodsSku goodsSku = goodsSkuMapper.selectOne(queryWrapper); goods.setGoodsSkuList(new ArrayList<>()); if(goodsSku !=null){ goods.getGoodsSkuList().add(goodsSku); //默认sku信息 goods.setSkuPrice(goodsSku.getPrice()); goods.setWeight(goodsSku.getWeight()); goods.setStockNum(goodsSku.getStock()); goods.setUnitName(goodsSku.getUnitName()); } } } server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -548,11 +548,11 @@ if(goods.getStatus().equals(Constants.ONE)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"存在商品已删除或已下架,无法下单"); } if(goodsSku.getStock().compareTo(payDetailRequest.getGoodsNum())<Constants.ZERO){ if(goodsSku.getStock().compareTo(new BigDecimal(Constants.formatIntegerNum(payDetailRequest.getGoodsNum())))<Constants.ZERO){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"存在商品库存不足,无法下单!"); } //商品库存扣除 goodsSku.setStock(goodsSku.getStock()-payDetailRequest.getGoodsNum()); goodsSku.setStock(goodsSku.getStock().subtract(new BigDecimal(Constants.formatIntegerNum(payDetailRequest.getGoodsNum())))); goodsSkuMapper.updateById(goodsSku); GoodsorderDetail goodsOrderDetail = new GoodsorderDetail(); goodsOrderDetail.setCreator(member.getId()); @@ -879,7 +879,7 @@ goodsName = goods.getName(); } if(!Objects.isNull(goodsSku)){ goodsSku.setStock(goodsSku.getStock()+goodsorderDetail.getGoodsNum()); goodsSku.setStock(goodsSku.getStock().add(new BigDecimal(Constants.formatIntegerNum(goodsorderDetail.getGoodsNum())))); goodsSkuMapper.updateById(goodsSku); } } @@ -1080,7 +1080,7 @@ } @Override public void refreshOrderCodes(){ int countOrder = 0,countSign=0,countSale=0; long countOrder = 0,countSign=0,countSale=0; QueryWrapper<Goodsorder> order = new QueryWrapper<>(); order.apply(true, "TO_DAYS(NOW())=TO_DAYS(create_date)"); server/dmmall_service/src/main/java/com/doumee/service/business/impl/LabelsServiceImpl.java
@@ -269,6 +269,15 @@ queryWrapper.selectAll(Labels.class); queryWrapper.select("(select name from labels where id=t.PARENT_ID) as parentName"); if(Constants.equalsInteger(pageWrap.getModel().getType(),Constants.LabelsType.HOMEZHUANQU.getKey())){ queryWrapper.select("(select count(g.id) from goods g where g.isdeleted=0 and g.ZHUANQU_IDS like concat('%[',t.id,']%') ) as goodsNum"); } if(Constants.equalsInteger(pageWrap.getModel().getType(),Constants.LabelsType.APPLICABLE_BRAND.getKey())){ queryWrapper.select("(select count(g.id) from goods g where g.isdeleted=0 and g.BRAND_IDS like concat('%[',t.id,']%') ) as goodsNum"); } if(Constants.equalsInteger(pageWrap.getModel().getType(),Constants.LabelsType.SERIES_BRAND.getKey())){ queryWrapper.select("(select count(g.id) from goods g where g.isdeleted=0 and g.SERIAL_IDS like concat('%[',t.id,']%') ) as goodsNum"); } queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getName()),Labels::getName,pageWrap.getModel().getName()); queryWrapper.eq(pageWrap.getModel().getParentId()!=null,Labels::getParentId,pageWrap.getModel().getParentId()); queryWrapper.eq(pageWrap.getModel().getType()!=null,Labels::getType,pageWrap.getModel().getType()); server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java
@@ -67,7 +67,7 @@ //查询已兑换数量 QueryWrapper queryWrapper = new QueryWrapper<MemberCoupon>(); queryWrapper.eq("COUPON_ID",coupon.getId()); Integer exchangeNum = memberCouponMapper.selectCount(queryWrapper); Long exchangeNum = memberCouponMapper.selectCount(queryWrapper); if(exchangeNum.compareTo(coupon.getNum()) >= Constants.ZERO){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "该优惠券已兑换完,无法兑换!"); } @@ -179,7 +179,7 @@ } @Override public Integer count(MemberCoupon memberCoupon) { public long count(MemberCoupon memberCoupon) { QueryWrapper<MemberCoupon> wrapper = new QueryWrapper<>(memberCoupon); return memberCouponMapper.selectCount(wrapper); } @@ -217,8 +217,8 @@ * @return */ @Override public Integer memberCouponNum( BigDecimal price, Integer memberId,Integer couponType) { Integer count = memberCouponMapper.selectCount(new QueryWrapper<MemberCoupon>() public long memberCouponNum( BigDecimal price, Integer memberId,Integer couponType) { long count = memberCouponMapper.selectCount(new QueryWrapper<MemberCoupon>() .eq("MEMBER_ID",memberId) .eq("TYPE",Constants.ONE) .eq("STATUS",Constants.ZERO) @@ -276,7 +276,7 @@ //查询已兑换数量 QueryWrapper queryWrapper = new QueryWrapper<MemberCoupon>(); queryWrapper.eq("COUPON_ID",couponId); Integer exchangeNum = memberCouponMapper.selectCount(queryWrapper); Long exchangeNum = memberCouponMapper.selectCount(queryWrapper); if(exchangeNum.compareTo(coupon.getNum())>=Constants.ZERO){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "该优惠券已兑换完,无法兑换!"); } server/dmmall_service/src/main/java/com/doumee/service/business/impl/SharesServiceImpl.java
@@ -173,7 +173,7 @@ } @Override public Integer count(Date start, Date end, Integer memberId,List<Integer> objTypes) { public long count(Date start, Date end, Integer memberId,List<Integer> objTypes) { QueryWrapper<Shares> wrapper = new QueryWrapper<>(); wrapper.lambda().eq(Shares::getMemberId,memberId) .in(!CollectionUtils.isEmpty(objTypes),Shares::getObjType,objTypes) server/dmmall_service/src/main/java/com/doumee/service/business/impl/ShopCommentServiceImpl.java
@@ -205,7 +205,7 @@ } @Override public Integer count(Date start, Date end, Integer memberId, Integer type) { public long count(Date start, Date end, Integer memberId, Integer type) { QueryWrapper<ShopComment> wrapper = new QueryWrapper<>(); wrapper.lambda().eq(ShopComment::getMemberId,memberId) .eq(Objects.nonNull(type),ShopComment::getType,type) server/dmmall_service/src/main/java/com/doumee/service/business/impl/ShopFollowServiceImpl.java
@@ -176,7 +176,7 @@ } @Override public Integer count(ShopFollow shopFollow) { public long count(ShopFollow shopFollow) { QueryWrapper<ShopFollow> wrapper = new QueryWrapper<>(shopFollow); return shopFollowMapper.selectCount(wrapper); } server/dmmall_service/src/main/java/com/doumee/service/business/impl/ShopNewsServiceImpl.java
@@ -204,7 +204,7 @@ } @Override public Integer count(ShopNews shopNews) { public long count(ShopNews shopNews) { QueryWrapper<ShopNews> wrapper = new QueryWrapper<>(shopNews); return shopNewsMapper.selectCount(wrapper); } server/dmmall_service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
@@ -539,16 +539,16 @@ memberCoupon.setShopId(shopId); memberCoupon.setType(Constants.ZERO); memberCoupon.setStatus(Constants.ONE); Integer shopCouponUseCount = memberCouponService.count(memberCoupon); long shopCouponUseCount = memberCouponService.count(memberCoupon); ShopFollow shopFollow = new ShopFollow(); shopFollow.setObjId(shopId); shopFollow.setObjType(Constants.ZERO); Integer shopFansCount = shopFollowService.count(shopFollow); long shopFansCount = shopFollowService.count(shopFollow); ShopNews shopNews = new ShopNews(); shopNews.setShopId(shopId); Integer shopNewCount = shopNewsService.count(shopNews); long shopNewCount = shopNewsService.count(shopNews); ShopDataStatisticsDTO shopDataStatisticsDTO = new ShopDataStatisticsDTO(); shopDataStatisticsDTO.setShopCouponUseCount(shopCouponUseCount) .setShopFansCount(shopFansCount).setShopNewCount(shopNewCount); server/dmmall_service/src/main/java/com/doumee/service/business/impl/ZanServiceImpl.java
@@ -158,7 +158,7 @@ } @Override public Integer count(Zan zan) { public long count(Zan zan) { QueryWrapper<Zan> wrapper = new QueryWrapper<>(zan); return zanMapper.selectCount(wrapper); } server/dmmall_web/src/main/java/com/doumee/api/web/mall/OrderApi.java
@@ -97,7 +97,7 @@ @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "couponType", value = "优惠券类别", required = true), @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "limitPrice", value = "满额", required = true) }) public ApiResponse<Integer> memberCouponNum(Integer couponType, BigDecimal limitPrice) { public ApiResponse<Long> memberCouponNum(Integer couponType, BigDecimal limitPrice) { return ApiResponse.success("查询成功", memberCouponService.memberCouponNum(limitPrice,getMemberId(),couponType)); } server/pom.xml
@@ -30,7 +30,7 @@ <swagger.bootstrap-ui.version>1.9.6</swagger.bootstrap-ui.version> <fastjson.version>1.2.70</fastjson.version> <druid.version>1.2.0</druid.version> <mybatis.plus.version>3.4.2</mybatis.plus.version> <mybatis.plus.version>3.5.7</mybatis.plus.version> <apache.shiro.version>1.7.0</apache.shiro.version> <oshi.version>5.7.0</oshi.version> <jna.version>5.7.0</jna.version> @@ -69,7 +69,7 @@ <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.3.0</version> <version>2.1.0</version> <!--使用spring boot2整合 pagehelper-spring-boot-starter必须排除一下依赖 因为pagehelper-spring-boot-starter也已经在pom依赖了mybatis与mybatis-spring 所以会与mybatis-plus-boot-starter中的mybatis与mybatis-spring发生冲突