Commit a46fb2ba authored by shiyu's avatar shiyu

Merge branch 'quanku_v2.3' into quanku_v2.4

parents 95a14510 df033588
package com.wwdz.ch.admin.controller;
import com.alibaba.fastjson.JSON;
import com.wwdz.ch.admin.annotation.RequiresPermissionsDesc;
import com.wwdz.ch.admin.service.ItemService;
import com.wwdz.ch.admin.service.SysDistributionOrderService;
import com.wwdz.ch.admin.util.AuthSupport;
import com.wwdz.ch.core.consts.LogisticsEnum;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.db.dto.request.CoinRequestDto;
import com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto;
import com.xxdxxs.service.FormHandler;
import com.xxdxxs.utils.JsonUtils;
import com.xxdxxs.validation.Validator;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -16,6 +21,8 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.*;
@RestController
@RequestMapping("/admin/sysDistributionOrder")
public class SysDistributionOrderController {
......@@ -32,4 +39,38 @@ public class SysDistributionOrderController {
Result result = sysDistributionOrderService.findList(dto);
return result;
}
@ApiOperation(value = "发货")
@PostMapping("/delivery")
public Result delivery(@RequestBody DistributionOrderRequestDto dto) {
logger.info("发货,请求参数:{}", JSON.toJSONString(dto));
Validator validator = new Validator(FormHandler.ofEntity(dto));
validator.set("distributionOrderId", "分销订单号").must().string()
.set("logisticsCode", "快递公司编码").must().string()
.end();
if (!validator.isValid()) {
return Result.failed(validator.getErrorInfo());
}
return sysDistributionOrderService.delivery(dto);
}
@ApiOperation(value = "获取快递公司列表")
@PostMapping("/getLogisticsList")
public Result getLogisticsList() {
try {
LogisticsEnum[] logisticsEnums = LogisticsEnum.values();
List<Map<String, String>> mapList = new ArrayList<>();
Arrays.stream(logisticsEnums).forEach(logisticsEnum -> {
HashMap map = new HashMap<>();
map.put("code", logisticsEnum.getCode());
map.put("name", logisticsEnum.getName());
mapList.add(map);
});
return Result.success(mapList);
} catch (Exception e) {
return Result.failed();
}
}
}
......@@ -114,6 +114,8 @@ public class SysDistributionOrderVo implements Entity {
*/
private String logisticsCode;
private String logisticsName;
/**
* 运单号
*/
......@@ -185,5 +187,10 @@ public class SysDistributionOrderVo implements Entity {
* 介绍佣金
*/
private String introduceAmount;
/**
* 介绍人
*/
private String introducerName;
}
......@@ -196,10 +196,11 @@ public class AdminUserServiceImpl implements AdminUserService {
userVo.setId(user.getId());
userVo.setNickname(user.getNickname());
userVo.setPhone(user.getMobile());
userVo.setMobile(user.getMobile());
userVo.setCreateTime(user.getAddTime());
userVoList.add(userVo);
return Result.success(PageSearchResult.of(pageInfo, userVoList));
}
return Result.success(PageSearchResult.of(pageInfo, userVoList));
} else if (dto.getListType() == 3) {
List<ShareRecordVo> shareRecordVoList = new ArrayList<>();
//分享列表
......
......@@ -5,6 +5,9 @@ import com.wwdz.ch.admin.entity.vo.SysDistributionOrderVo;
import com.wwdz.ch.admin.service.SysDistributionOrderService;
import com.wwdz.ch.core.consts.CommConsts;
import com.wwdz.ch.core.consts.DistributionEnum;
import com.wwdz.ch.core.consts.LogisticsEnum;
import com.wwdz.ch.core.entity.DeliveryNoticeMsg;
import com.wwdz.ch.core.service.SendMsgService;
import com.wwdz.ch.core.type.PageSearchResult;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.core.util.CacheUtil;
......@@ -53,6 +56,9 @@ public class SysDistributionOrderServiceImpl implements SysDistributionOrderServ
@Autowired
UserDao userDao;
@Autowired
SendMsgService sendMsgService;
@Override
public Result findList(DistributionOrderRequestDto dto) {
try {
......@@ -98,7 +104,11 @@ public class SysDistributionOrderServiceImpl implements SysDistributionOrderServ
distributionOrderVo.setStateName(DistributionEnum.DistributionOrderStateEnum.getNameByCode(distributionOrder.getState()));
distributionOrderVo.setTypeName(DistributionEnum.DistributionTypeEnum.getNameByCode(distributionOrder.getType()));
distributionOrderVo.setHomePageImage(MediaUtil.getHomePageImage(supplierItem.getImages(), supplierItem.getVideos()));
distributionOrderVo.setLogisticsName(LogisticsEnum.getNameByCode(distributionOrder.getLogisticsCode()));
distributionOrderVo.setBuyerName(cacheUtil.getAppletUserNameById(distributionOrder.getBuyerId()));
if (distributionOrder.getType() == DistributionEnum.DistributionTypeEnum.COLLECT.getCode()) {
distributionOrderVo.setIntroducerName(cacheUtil.getAppletUserNameById(Long.valueOf(distributionOrder.getShareRecordId())));
}
distributionOrderVo.setSellerName(distributionOrder.getSellerId() == CommConsts.SYSTEM_ACCOUNT.longValue()? "系统账号" : cacheUtil.getAppletUserNameById(distributionOrder.getSellerId()));
//支付截止时间,下单后半小时内
Date date = distributionOrder.getCreateTime();
......@@ -114,4 +124,64 @@ public class SysDistributionOrderServiceImpl implements SysDistributionOrderServ
}
return Result.failed();
}
@Override
public Result delivery(DistributionOrderRequestDto dto) {
try {
String distributionOrderId = dto.getDistributionOrderId();
DistributionOrder distributionOrder = distributionOrderDao.findById(distributionOrderId);
if (distributionOrder.getState() != DistributionEnum.DistributionOrderStateEnum.PRE_SEND.getCode()) {
return Result.failed("订单状态错误,不能发货");
}
Date now = new Date();
DistributionOrder orderUpdateDto = new DistributionOrder();
orderUpdateDto.setDistributionOrderId(distributionOrderId);
orderUpdateDto.setLogisticsCode(dto.getLogisticsCode());
orderUpdateDto.setWaybill(dto.getWaybill());
orderUpdateDto.setDeliveryTime(now);
orderUpdateDto.setState(DistributionEnum.DistributionOrderStateEnum.PRE_SIGNED.getCode());
distributionOrderDao.update(orderUpdateDto);
//发货成功,发送模板信息通知分销商和用户
try {
DeliveryNoticeMsg deliveryNoticeMsg = new DeliveryNoticeMsg();
deliveryNoticeMsg.setDistributionOrderId(distributionOrderId);
deliveryNoticeMsg.setWaybill(dto.getWaybill());
deliveryNoticeMsg.setAddress(distributionOrder.getReceiverName() + " " + distributionOrder.getReceiverPhone() + " " + distributionOrder.getReceiverAddress());
SupplierItem supplierItem = supplierItemDao.findById(distributionOrder.getItemId());
deliveryNoticeMsg.setItemName(supplierItem.getName());
deliveryNoticeMsg.setDeliveryTime(now);
//发送给卖家
if (dto.getUserId() == null || distributionOrder.getSellerId().longValue() != dto.getUserId()) {
String sellerOpenId = sendMsgService.getOpenIdByUserId(distributionOrder.getSellerId());
if (com.xxdxxs.utils.StringUtils.hasLength(sellerOpenId)) {
if (distributionOrder.getType().intValue() == DistributionEnum.DistributionTypeEnum.COLLECT.getCode()) {
deliveryNoticeMsg.setShopState(2);
} else {
deliveryNoticeMsg.setShopState(1);
}
sendMsgService.sendDeliveryTempletMsg(sellerOpenId, deliveryNoticeMsg);
} else {
logger.info(">>>>> 卖家id :{}, 获取openid失败 <<<<<", distributionOrder.getSellerId());
}
}
//发送给买家
String buyerOpenId = sendMsgService.getOpenIdByUserId(distributionOrder.getBuyerId());
if (com.xxdxxs.utils.StringUtils.hasLength(buyerOpenId)) {
deliveryNoticeMsg.setShopState(0);
sendMsgService.sendDeliveryTempletMsg(buyerOpenId, deliveryNoticeMsg);
} else {
logger.info(">>>>> 买家openid为空, 发送消息失败 <<<<<");
}
} catch (Exception e) {
logger.info("分销订单发货通知模板信息发送失败:{}", e);
}
return Result.success();
} catch (Exception e) {
logger.info("发货失败 error: {}", e);
}
return Result.failed();
}
}
......@@ -116,7 +116,9 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
supplierItem.setCreateTime(now);
supplierItem.setUpdateTime(now);
supplierItem.setIsOnSale(true);
supplierItem.setIsAbleSale(true);
supplierItem.setIsDeleted(false);
supplierItem.setStatus(SupplierItemEnum.StatusEnum.COMMON.getCode());
if (dto.getStock() == null) {
supplierItem.setStock(1);
}
......@@ -150,7 +152,6 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
public Result findList(SupplierItemRequestDto dto) {
try {
List<SupplierItemVo> supplierItemVos = new ArrayList<>();
dto.setIsDeleted(false);
if (dto.getType() == null) {
dto.setTypeList(Arrays.asList(DistributionEnum.DistributionTypeEnum.FIXED_PRICE.getCode(), DistributionEnum.DistributionTypeEnum.AUCTION.getCode()));
}
......@@ -178,22 +179,6 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
//售出数量
Long selledNum = distributionOrderDao.countSelledNum(supplierItem.getId());
supplierItemVo.setSelledNum(selledNum == null ? 0 : selledNum);
if (dto.getType() != null && dto.getType() == DistributionEnum.DistributionTypeEnum.COLLECT.getCode()) {
if (supplierItem.getStock() == 0) {
//库存为0,标识是可售的商品售罄了
supplierItemVo.setIsAbleSale(true);
} else if (supplierItem.getIsOnSale() && supplierItem.getStock() > 0) {
supplierItemVo.setIsAbleSale(true);
} else {
supplierItemVo.setIsAbleSale(false);
}
} else {
if (supplierItem.getIsOnSale()) {
supplierItemVo.setIsAbleSale(true);
} else {
supplierItemVo.setIsAbleSale(false);
}
}
});
return Result.success(PageSearchResult.of(pageInfo, supplierItemVos));
} catch (Exception e) {
......@@ -226,11 +211,6 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
supplierItemVo.setStartPrice(PriceUtil.convertPriceFenToYuan(auctionConfig.getStartPrice()));
supplierItemVo.setAddExtent(PriceUtil.convertPriceFenToYuan(auctionConfig.getAddExtent()));
}
if (supplierItem.getStock() == 0 || supplierItem.getIsOnSale()) {
supplierItemVo.setIsAbleSale(true);
} else {
supplierItemVo.setIsAbleSale(false);
}
return Result.success(supplierItemVo);
} catch (Exception e) {
logger.error("商品详情查询失败 error : {}", e);
......@@ -280,7 +260,9 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
supplierItem.setSupplyPrice(PriceUtil.convertPriceFromStr(dto.getSupplyPrice()));
}
supplierItem.setImages(dto.getImages());
supplierItem.setVideos(dto.getVideos());
if (StringUtils.hasLength(dto.getVideos())) {
supplierItem.setVideos(getVideosImage(dto.getVideos()));
}
supplierItemDao.update(supplierItem);
return Result.success();
} catch (Exception e) {
......@@ -313,11 +295,12 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
SupplierItem supplierItem = new SupplierItem();
supplierItem.setId(dto.getId());
supplierItem.setIsOnSale(dto.getIsOnSale());
supplierItem.setIsAbleSale(dto.getIsOnSale());
supplierItemDao.update(supplierItem);
if (!dto.getIsOnSale() && oldItem.getType().intValue() == DistributionEnum.DistributionTypeEnum.COLLECT.getCode()) {
//下架用户商品,短信通知,跳转到藏品详情页
String url = wxAppletApi.getUrlLink("/pages/detail/index","itemId=" + dto.getId() + "&shareRecordId=");
String msg = "您正在出售的藏品名称藏品…藏品名称,根据平台规定不得售卖该类藏品,平台已为您关闭出售,请前往"+ url + "查看";
String msg = "您正在出售的" + oldItem.getName() + ",根据平台规定不得售卖该类藏品,平台已为您关闭出售,请前往"+ url + "查看";
aliSmsSender.sendSms(oldItem.getCreatorId(), msg);
}
return Result.success();
......@@ -358,7 +341,7 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
supplierItemDao.update(supplierItem);
//发送短息通知用户商品违规被下架,跳转到个人藏馆
String url = wxAppletApi.getUrlLink("/pages/saleSelf/index","userId=" + oldItem.getCreatorId() + "&shareRecordId=");
String msg = "您发布的藏品名称藏品…藏品名称内容涉嫌违反平台规定,已被平台下架,请前往"+ url + "查看";
String msg = "您发布的" + oldItem.getName() + ",内容涉嫌违反平台规定,已被平台下架,请前往"+ url + "查看";
aliSmsSender.sendSms(oldItem.getCreatorId(), msg);
return Result.success();
} catch (Exception e) {
......
......@@ -6,4 +6,12 @@ import com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto;
public interface SysDistributionOrderService {
Result findList(DistributionOrderRequestDto dto);
/**
* 订单发货
* @param dto
* @return
*/
Result delivery(DistributionOrderRequestDto dto);
}
package com.wwdz.ch.wx.entity;
package com.wwdz.ch.core.entity;
import com.xxdxxs.entity.Entity;
import lombok.Data;
......
package com.wwdz.ch.wx.entity;
package com.wwdz.ch.core.entity;
import com.xxdxxs.entity.Entity;
import lombok.Data;
......
package com.wwdz.ch.wx.entity;
package com.wwdz.ch.core.entity;
import com.wwdz.ch.core.entity.AbstractSubscribeMsg;
import com.xxdxxs.entity.Entity;
......
package com.wwdz.ch.wx.entity;
package com.wwdz.ch.core.entity;
import com.xxdxxs.entity.Entity;
import lombok.Data;
......
package com.wwdz.ch.wx.entity;
package com.wwdz.ch.core.entity;
import com.xxdxxs.entity.Entity;
import lombok.Data;
......
package com.wwdz.ch.wx.entity;
package com.wwdz.ch.core.entity;
import com.xxdxxs.entity.Entity;
import lombok.Data;
......
package com.wwdz.ch.wx.entity;
package com.wwdz.ch.core.entity;
import com.wwdz.ch.core.entity.AbstractSubscribeMsg;
import com.xxdxxs.entity.Entity;
......
package com.wwdz.ch.wx.entity;
package com.wwdz.ch.core.entity;
import com.wwdz.ch.core.entity.AbstractSubscribeMsg;
import com.xxdxxs.entity.Entity;
......
package com.wwdz.ch.core.entity;
import com.wwdz.ch.db.domain.distribution.CollectionBook;
import com.wwdz.ch.db.domain.distribution.CollectionItemsRelation;
import com.xxdxxs.entity.Entity;
import lombok.Data;
import java.util.Date;
......@@ -268,4 +266,5 @@ public class SupplierItemVo implements Entity {
private Integer status;
private String statusName;
}
package com.wwdz.ch.wx.impl.distribution;
package com.wwdz.ch.core.impl;
import com.wwdz.ch.core.api.OfficialAccountApi;
import com.wwdz.ch.core.entity.ConsignSaleSubscribeMsg;
import com.wwdz.ch.core.entity.*;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.core.util.OkHttpUtil;
import com.wwdz.ch.db.dao.OfficialAccountSubscribeRecordDao;
import com.wwdz.ch.db.dao.UserDao;
import com.wwdz.ch.db.domain.OfficialAccountSubscribeRecord;
import com.wwdz.ch.db.domain.User;
import com.wwdz.ch.wx.entity.*;
import com.wwdz.ch.wx.service.distribution.SendMsgService;
import com.wwdz.ch.core.service.SendMsgService;
import com.xxdxxs.utils.DateUtils;
import com.xxdxxs.utils.JsonUtils;
import com.xxdxxs.utils.StringUtils;
......@@ -18,11 +17,8 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Locale;
import java.util.Map;
/**
......
package com.wwdz.ch.wx.service.distribution;
package com.wwdz.ch.core.service;
import com.wwdz.ch.core.entity.AbstractSubscribeMsg;
import com.wwdz.ch.core.entity.*;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.wx.entity.*;
public interface SendMsgService {
......
......@@ -198,8 +198,9 @@ public class MediaUtil {
}
public static void main(String[] args) {
String vedioUrl = "https://cdn.wanwudezhi.com/static/web-static/video/53596700878a572ca4fae35243aaa819.mp4";
String vedioUrl = "https://cdn.wanwudezhi.com/quanku/video/12d8a09d5ff14ec1af6604c3814c614a.mp4";
String url = getImageByCutVedio(vedioUrl);
System.out.println(url);
ImageInfo imageInfo = getImageSize(url);
System.out.println(imageInfo.formartString());
}
......
......@@ -11,7 +11,7 @@ import lombok.Data;
/**
* @author shiyu
* @date 2024/04/26
* @date 2024/04/29
*/
@Data
public class SupplierItem implements Entity {
......@@ -97,6 +97,11 @@ public class SupplierItem implements Entity {
*/
private Integer status;
/**
* 是否可以售卖
*/
private Boolean isAbleSale;
/**
* 商品图片,分号分隔
*/
......@@ -137,6 +142,7 @@ public class SupplierItem implements Entity {
sb.append(", rebate=").append(rebate);
sb.append(", creatorId=").append(creatorId);
sb.append(", status=").append(status);
sb.append(", isAbleSale=").append(isAbleSale);
sb.append(", images=").append(images);
sb.append(", videos=").append(videos);
sb.append(", description=").append(description);
......@@ -174,6 +180,7 @@ public class SupplierItem implements Entity {
&& (this.getRebate() == null ? other.getRebate() == null : this.getRebate().equals(other.getRebate()))
&& (this.getCreatorId() == null ? other.getCreatorId() == null : this.getCreatorId().equals(other.getCreatorId()))
&& (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
&& (this.getIsAbleSale() == null ? other.getIsAbleSale() == null : this.getIsAbleSale().equals(other.getIsAbleSale()))
&& (this.getImages() == null ? other.getImages() == null : this.getImages().equals(other.getImages()))
&& (this.getVideos() == null ? other.getVideos() == null : this.getVideos().equals(other.getVideos()))
&& (this.getDescription() == null ? other.getDescription() == null : this.getDescription().equals(other.getDescription()));
......@@ -200,6 +207,7 @@ public class SupplierItem implements Entity {
result = prime * result + ((getRebate() == null) ? 0 : getRebate().hashCode());
result = prime * result + ((getCreatorId() == null) ? 0 : getCreatorId().hashCode());
result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
result = prime * result + ((getIsAbleSale() == null) ? 0 : getIsAbleSale().hashCode());
result = prime * result + ((getImages() == null) ? 0 : getImages().hashCode());
result = prime * result + ((getVideos() == null) ? 0 : getVideos().hashCode());
result = prime * result + ((getDescription() == null) ? 0 : getDescription().hashCode());
......@@ -231,6 +239,7 @@ public class SupplierItem implements Entity {
rebate("rebate", "rebate", "DECIMAL", false),
creatorId("creator_id", "creatorId", "BIGINT", false),
status("status", "status", "INTEGER", true),
isAbleSale("is_able_sale", "isAbleSale", "BIT", false),
images("images", "images", "LONGVARCHAR", false),
videos("videos", "videos", "LONGVARCHAR", false),
description("description", "description", "LONGVARCHAR", false);
......
......@@ -2412,6 +2412,138 @@ public class SupplierItemExample {
addCriterion("`status` not between", value1, value2, "status");
return (Criteria) this;
}
public Criteria andIsAbleSaleIsNull() {
addCriterion("is_able_sale is null");
return (Criteria) this;
}
public Criteria andIsAbleSaleIsNotNull() {
addCriterion("is_able_sale is not null");
return (Criteria) this;
}
public Criteria andIsAbleSaleEqualTo(Boolean value) {
addCriterion("is_able_sale =", value, "isAbleSale");
return (Criteria) this;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table supplier_item
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public Criteria andIsAbleSaleEqualToColumn(SupplierItem.Column column) {
addCriterion(new StringBuilder("is_able_sale = ").append(column.getEscapedColumnName()).toString());
return (Criteria) this;
}
public Criteria andIsAbleSaleNotEqualTo(Boolean value) {
addCriterion("is_able_sale <>", value, "isAbleSale");
return (Criteria) this;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table supplier_item
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public Criteria andIsAbleSaleNotEqualToColumn(SupplierItem.Column column) {
addCriterion(new StringBuilder("is_able_sale <> ").append(column.getEscapedColumnName()).toString());
return (Criteria) this;
}
public Criteria andIsAbleSaleGreaterThan(Boolean value) {
addCriterion("is_able_sale >", value, "isAbleSale");
return (Criteria) this;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table supplier_item
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public Criteria andIsAbleSaleGreaterThanColumn(SupplierItem.Column column) {
addCriterion(new StringBuilder("is_able_sale > ").append(column.getEscapedColumnName()).toString());
return (Criteria) this;
}
public Criteria andIsAbleSaleGreaterThanOrEqualTo(Boolean value) {
addCriterion("is_able_sale >=", value, "isAbleSale");
return (Criteria) this;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table supplier_item
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public Criteria andIsAbleSaleGreaterThanOrEqualToColumn(SupplierItem.Column column) {
addCriterion(new StringBuilder("is_able_sale >= ").append(column.getEscapedColumnName()).toString());
return (Criteria) this;
}
public Criteria andIsAbleSaleLessThan(Boolean value) {
addCriterion("is_able_sale <", value, "isAbleSale");
return (Criteria) this;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table supplier_item
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public Criteria andIsAbleSaleLessThanColumn(SupplierItem.Column column) {
addCriterion(new StringBuilder("is_able_sale < ").append(column.getEscapedColumnName()).toString());
return (Criteria) this;
}
public Criteria andIsAbleSaleLessThanOrEqualTo(Boolean value) {
addCriterion("is_able_sale <=", value, "isAbleSale");
return (Criteria) this;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table supplier_item
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public Criteria andIsAbleSaleLessThanOrEqualToColumn(SupplierItem.Column column) {
addCriterion(new StringBuilder("is_able_sale <= ").append(column.getEscapedColumnName()).toString());
return (Criteria) this;
}
public Criteria andIsAbleSaleIn(List<Boolean> values) {
addCriterion("is_able_sale in", values, "isAbleSale");
return (Criteria) this;
}
public Criteria andIsAbleSaleNotIn(List<Boolean> values) {
addCriterion("is_able_sale not in", values, "isAbleSale");
return (Criteria) this;
}
public Criteria andIsAbleSaleBetween(Boolean value1, Boolean value2) {
addCriterion("is_able_sale between", value1, value2, "isAbleSale");
return (Criteria) this;
}
public Criteria andIsAbleSaleNotBetween(Boolean value1, Boolean value2) {
addCriterion("is_able_sale not between", value1, value2, "isAbleSale");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {
......
......@@ -51,6 +51,11 @@ public class SupplierItemRequestDto extends BaseRequestDto implements Entity {
*/
private Integer status;
/**
* 是否可以售卖
*/
private Boolean isAbleSale;
/**
* 置顶图片
*/
......
......@@ -34,8 +34,9 @@ public class UserDaoImpl implements UserDao {
long count = userMapper.countByExample(example);
if (count == 0) {
return userMapper.insertBySelfId(user);
} else {
return userMapper.updateByPrimaryKeySelective(user);
}
return 0;
}
......
......@@ -41,6 +41,7 @@ public class SupplierItemDaoImpl implements SupplierItemDao {
JdbcHelper.ifPresent(dto.getStatus(), criteria::andStatusEqualTo);
JdbcHelper.ifPresent(dto.getStock(), criteria::andStockGreaterThan);
JdbcHelper.ifPresent(dto.getIsOnSale(), criteria::andIsOnSaleEqualTo);
JdbcHelper.ifPresent(dto.getIsAbleSale(), criteria::andIsAbleSaleEqualTo);
JdbcHelper.ifPresent(dto.getIsDeleted(), criteria::andIsDeletedEqualTo);
JdbcHelper.ifPresent(dto.getCreatorId(), criteria::andCreatorIdEqualTo);
supplierItemExample.setOrderByClause(" create_time desc");
......
......@@ -19,6 +19,7 @@
<result column="rebate" jdbcType="DECIMAL" property="rebate" />
<result column="creator_id" jdbcType="BIGINT" property="creatorId" />
<result column="status" jdbcType="INTEGER" property="status" />
<result column="is_able_sale" jdbcType="BIT" property="isAbleSale" />
</resultMap>
<resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.wwdz.ch.db.domain.distribution.SupplierItem">
<result column="images" jdbcType="LONGVARCHAR" property="images" />
......@@ -86,7 +87,7 @@
<sql id="Base_Column_List">
id, `name`, supplier_id, is_on_sale, sort, top_image, distribution_price, supply_price,
stock, create_time, update_time, is_deleted, buy_limit_num, `type`, rebate, creator_id,
`status`
`status`, is_able_sale
</sql>
<sql id="Blob_Column_List">
images, videos, description
......@@ -143,7 +144,7 @@
<otherwise>
id, `name`, supplier_id, is_on_sale, sort, top_image, distribution_price, supply_price,
stock, create_time, update_time, is_deleted, buy_limit_num, `type`, rebate, creator_id,
`status`, images, videos, description
`status`, is_able_sale, images, videos, description
</otherwise>
</choose>
from supplier_item
......@@ -178,7 +179,7 @@
<otherwise>
id, `name`, supplier_id, is_on_sale, sort, top_image, distribution_price, supply_price,
stock, create_time, update_time, is_deleted, buy_limit_num, `type`, rebate, creator_id,
`status`, images, videos, description
`status`, is_able_sale, images, videos, description
</otherwise>
</choose>
from supplier_item
......@@ -203,15 +204,15 @@
supply_price, stock, create_time,
update_time, is_deleted, buy_limit_num,
`type`, rebate, creator_id,
`status`, images, videos,
description)
`status`, is_able_sale, images,
videos, description)
values (#{name,jdbcType=VARCHAR}, #{supplierId,jdbcType=BIGINT}, #{isOnSale,jdbcType=BIT},
#{sort,jdbcType=INTEGER}, #{topImage,jdbcType=VARCHAR}, #{distributionPrice,jdbcType=BIGINT},
#{supplyPrice,jdbcType=BIGINT}, #{stock,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP},
#{updateTime,jdbcType=TIMESTAMP}, #{isDeleted,jdbcType=BIT}, #{buyLimitNum,jdbcType=INTEGER},
#{type,jdbcType=INTEGER}, #{rebate,jdbcType=DECIMAL}, #{creatorId,jdbcType=BIGINT},
#{status,jdbcType=INTEGER}, #{images,jdbcType=LONGVARCHAR}, #{videos,jdbcType=LONGVARCHAR},
#{description,jdbcType=LONGVARCHAR})
#{status,jdbcType=INTEGER}, #{isAbleSale,jdbcType=BIT}, #{images,jdbcType=LONGVARCHAR},
#{videos,jdbcType=LONGVARCHAR}, #{description,jdbcType=LONGVARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.wwdz.ch.db.domain.distribution.SupplierItem">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
......@@ -267,6 +268,9 @@
<if test="status != null">
`status`,
</if>
<if test="isAbleSale != null">
is_able_sale,
</if>
<if test="images != null">
images,
</if>
......@@ -326,6 +330,9 @@
<if test="status != null">
#{status,jdbcType=INTEGER},
</if>
<if test="isAbleSale != null">
#{isAbleSale,jdbcType=BIT},
</if>
<if test="images != null">
#{images,jdbcType=LONGVARCHAR},
</if>
......@@ -397,6 +404,9 @@
<if test="record.status != null">
`status` = #{record.status,jdbcType=INTEGER},
</if>
<if test="record.isAbleSale != null">
is_able_sale = #{record.isAbleSale,jdbcType=BIT},
</if>
<if test="record.images != null">
images = #{record.images,jdbcType=LONGVARCHAR},
</if>
......@@ -430,6 +440,7 @@
rebate = #{record.rebate,jdbcType=DECIMAL},
creator_id = #{record.creatorId,jdbcType=BIGINT},
`status` = #{record.status,jdbcType=INTEGER},
is_able_sale = #{record.isAbleSale,jdbcType=BIT},
images = #{record.images,jdbcType=LONGVARCHAR},
videos = #{record.videos,jdbcType=LONGVARCHAR},
description = #{record.description,jdbcType=LONGVARCHAR}
......@@ -455,7 +466,8 @@
`type` = #{record.type,jdbcType=INTEGER},
rebate = #{record.rebate,jdbcType=DECIMAL},
creator_id = #{record.creatorId,jdbcType=BIGINT},
`status` = #{record.status,jdbcType=INTEGER}
`status` = #{record.status,jdbcType=INTEGER},
is_able_sale = #{record.isAbleSale,jdbcType=BIT}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
......@@ -511,6 +523,9 @@
<if test="status != null">
`status` = #{status,jdbcType=INTEGER},
</if>
<if test="isAbleSale != null">
is_able_sale = #{isAbleSale,jdbcType=BIT},
</if>
<if test="images != null">
images = #{images,jdbcType=LONGVARCHAR},
</if>
......@@ -541,6 +556,7 @@
rebate = #{rebate,jdbcType=DECIMAL},
creator_id = #{creatorId,jdbcType=BIGINT},
`status` = #{status,jdbcType=INTEGER},
is_able_sale = #{isAbleSale,jdbcType=BIT},
images = #{images,jdbcType=LONGVARCHAR},
videos = #{videos,jdbcType=LONGVARCHAR},
description = #{description,jdbcType=LONGVARCHAR}
......@@ -563,7 +579,8 @@
`type` = #{type,jdbcType=INTEGER},
rebate = #{rebate,jdbcType=DECIMAL},
creator_id = #{creatorId,jdbcType=BIGINT},
`status` = #{status,jdbcType=INTEGER}
`status` = #{status,jdbcType=INTEGER},
is_able_sale = #{isAbleSale,jdbcType=BIT}
where id = #{id,jdbcType=BIGINT}
</update>
<select id="selectOneByExample" parameterType="com.wwdz.ch.db.domain.distribution.SupplierItemExample" resultMap="BaseResultMap">
......@@ -621,7 +638,7 @@
<otherwise>
id, `name`, supplier_id, is_on_sale, sort, top_image, distribution_price, supply_price,
stock, create_time, update_time, is_deleted, buy_limit_num, `type`, rebate, creator_id,
`status`, images, videos, description
`status`, is_able_sale, images, videos, description
</otherwise>
</choose>
from supplier_item
......
......@@ -17,9 +17,9 @@ import com.wwdz.ch.core.util.TimeUtil;
import com.wwdz.ch.db.dao.distribution.*;
import com.wwdz.ch.db.domain.distribution.*;
import com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto;
import com.wwdz.ch.wx.entity.DistributionOrderNoticeMsg;
import com.wwdz.ch.wx.entity.PayNoticeMsg;
import com.wwdz.ch.wx.service.distribution.SendMsgService;
import com.wwdz.ch.core.entity.DistributionOrderNoticeMsg;
import com.wwdz.ch.core.entity.PayNoticeMsg;
import com.wwdz.ch.core.service.SendMsgService;
import com.wwdz.ch.wx.service.distribution.SupplierItemService;
import com.xxdxxs.utils.JsonUtils;
import com.xxdxxs.utils.StringUtils;
......
......@@ -19,12 +19,12 @@ import com.wwdz.ch.db.domain.distribution.SupplierItem;
import com.wwdz.ch.db.dto.request.FollowFansRecordRequestDto;
import com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto;
import com.wwdz.ch.core.api.WxAppletApi;
import com.wwdz.ch.wx.entity.FollowFansMsg;
import com.wwdz.ch.core.entity.FollowFansMsg;
import com.wwdz.ch.wx.entity.vo.FollowFansRecordVo;
import com.wwdz.ch.wx.entity.vo.distribution.DistributionOrderVo;
import com.wwdz.ch.wx.service.FollowFansRecordService;
import com.wwdz.ch.wx.service.MessageService;
import com.wwdz.ch.wx.service.distribution.SendMsgService;
import com.wwdz.ch.core.service.SendMsgService;
import com.xxdxxs.utils.EntityMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......
......@@ -22,7 +22,7 @@ import com.wwdz.ch.core.api.OfficialAccountApi;
import com.wwdz.ch.core.api.WxAppletApi;
import com.wwdz.ch.wx.constant.CacheCodeConstants;
import com.wwdz.ch.wx.constant.LoginTypeEnum;
import com.wwdz.ch.wx.entity.MessageContentText;
import com.wwdz.ch.core.entity.MessageContentText;
import com.wwdz.ch.wx.entity.request.ItemRequestDto;
import com.wwdz.ch.wx.entity.request.MessageRequestDto;
import com.wwdz.ch.core.entity.WxCheckMediaRequestDto;
......
......@@ -17,18 +17,15 @@ import com.wwdz.ch.db.domain.MessageContent;
import com.wwdz.ch.db.domain.MessageRecord;
import com.wwdz.ch.db.dto.MessageRecordRequestDto;
import com.wwdz.ch.db.dto.request.FollowFansRecordRequestDto;
import com.wwdz.ch.wx.entity.MessageContentText;
import com.wwdz.ch.core.entity.MessageContentText;
import com.wwdz.ch.wx.entity.request.MessageRequestDto;
import com.wwdz.ch.wx.entity.vo.FollowFansRecordVo;
import com.wwdz.ch.wx.entity.vo.MessageVo;
import com.wwdz.ch.wx.service.FavoritesService;
import com.wwdz.ch.wx.service.MessageService;
import com.xxdxxs.entity.Entity;
import com.xxdxxs.service.FormHandler;
import com.xxdxxs.utils.EntityMapper;
import com.xxdxxs.utils.JsonUtils;
import com.xxdxxs.validation.Validator;
import org.apache.logging.log4j.spi.ObjectThreadContextMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -37,7 +34,6 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.util.CollectionUtils;
import java.awt.*;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.List;
......
......@@ -175,6 +175,8 @@ public class UserServiceImpl implements UserService {
}
com.wwdz.user.api.model.user.User wUser = userCloudServerResponse.getResult();
User user = User.of(wUser);
user.setId(dto.getUserId());
user.setStatus(UserEnum.StatusEnum.COMMON.getCode());
logger.info(">>>>>>> 登录用户的信息:{}", JsonUtils.from(user));
String phone = user.getMobile();
......@@ -248,6 +250,7 @@ public class UserServiceImpl implements UserService {
result.put("isShop", false);
}
}
user.setLastLoginTime(new Date());
user.setUserLevel(userLevel);
//更新或插入登录的用户信息
userDao.insertByMapper(user);
......
......@@ -16,11 +16,11 @@ import com.wwdz.ch.db.dao.distribution.*;
import com.wwdz.ch.db.domain.distribution.*;
import com.wwdz.ch.db.dto.request.distribution.AuctionRecordRequestDto;
import com.wwdz.ch.core.api.WxAppletApi;
import com.wwdz.ch.wx.entity.AuctionOfferNoticeMsg;
import com.wwdz.ch.core.entity.AuctionOfferNoticeMsg;
import com.wwdz.ch.wx.entity.vo.distribution.AuctionRecordRowVo;
import com.wwdz.ch.wx.entity.vo.distribution.AuctionRecordVo;
import com.wwdz.ch.wx.service.distribution.AuctionRecordService;
import com.wwdz.ch.wx.service.distribution.SendMsgService;
import com.wwdz.ch.core.service.SendMsgService;
import com.xxdxxs.utils.DateUtils;
import com.xxdxxs.utils.EntityMapper;
import org.redisson.api.RLock;
......
......@@ -21,14 +21,14 @@ import com.wwdz.ch.db.dto.request.FollowFansRecordRequestDto;
import com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto;
import com.wwdz.ch.db.dto.request.distribution.SupplierItemRequestDto;
import com.wwdz.ch.core.api.WxAppletApi;
import com.wwdz.ch.wx.entity.AuctionOfferNoticeMsg;
import com.wwdz.ch.wx.entity.DeliveryNoticeMsg;
import com.wwdz.ch.wx.entity.SignedNoticeMsg;
import com.wwdz.ch.core.entity.AuctionOfferNoticeMsg;
import com.wwdz.ch.core.entity.DeliveryNoticeMsg;
import com.wwdz.ch.core.entity.SignedNoticeMsg;
import com.wwdz.ch.wx.entity.vo.distribution.DistributionOrderDetailVo;
import com.wwdz.ch.wx.entity.vo.distribution.DistributionOrderVo;
import com.wwdz.ch.wx.service.distribution.DistributionOrderService;
import com.wwdz.ch.wx.service.distribution.DistributorProfitService;
import com.wwdz.ch.wx.service.distribution.SendMsgService;
import com.wwdz.ch.core.service.SendMsgService;
import com.xxdxxs.utils.DateUtils;
import com.xxdxxs.utils.EntityMapper;
import org.redisson.api.RLock;
......
package com.wwdz.ch.wx.impl.distribution;
import com.github.pagehelper.PageInfo;
import com.wwdz.ch.core.consts.CommConsts;
import com.wwdz.ch.core.consts.DistributionEnum;
import com.wwdz.ch.core.consts.MediaTypeEnum;
import com.wwdz.ch.core.consts.ResultCode;
import com.wwdz.ch.core.consts.*;
import com.wwdz.ch.core.storage.QiniuStorage;
import com.wwdz.ch.core.type.PageSearchResult;
import com.wwdz.ch.core.type.Result;
......@@ -575,18 +572,20 @@ public class SupplierItemServiceImpl implements SupplierItemService {
}
supplierItem.setSort(1);
supplierItem.setBuyLimitNum(-1);
if (dto.getIsOnSale()) {
if (dto.getIsAbleSale()) {
supplierItem.setIsOnSale(true);
supplierItem.setStock(dto.getStock());
} else {
supplierItem.setStock(1);
supplierItem.setIsOnSale(false);
}
supplierItem.setIsOnSale(dto.getIsOnSale());
Date now = new Date();
supplierItem.setCreateTime(now);
supplierItem.setUpdateTime(now);
supplierItem.setIsDeleted(false);
supplierItem.setCreatorId(dto.getUserId());
supplierItem.setType(DistributionEnum.DistributionTypeEnum.COLLECT.getCode());
supplierItem.setStatus(SupplierItemEnum.StatusEnum.COMMON.getCode());
long itemId = supplierItemDao.insert(supplierItem);
//商品对应收藏册关联
if (StringUtils.hasLength(dto.getCollectionBookId())) {
......@@ -611,14 +610,17 @@ public class SupplierItemServiceImpl implements SupplierItemService {
EntityMapper.copyAttribute(dto, supplierItem);
supplierItem.setDistributionPrice(PriceUtil.convertPriceFromStr(StringUtils.isEmpty(dto.getDistributionPrice())?"0":dto.getDistributionPrice()));
supplierItem.setImages(dto.getImages());
supplierItem.setVideos(dto.getVideos());
if (dto.getIsOnSale()) {
if (StringUtils.hasLength(dto.getVideos())) {
supplierItem.setVideos(getVideosImage(dto.getVideos()));
}
if (dto.getIsAbleSale()) {
supplierItem.setIsOnSale(true);
supplierItem.setStock(dto.getStock());
} else {
supplierItem.setStock(1);
supplierItem.setIsOnSale(false);
}
supplierItemDao.update(supplierItem);
//更新相关的收藏册
if (StringUtils.hasLength(dto.getCollectionBookId())) {
CollectionItemsRelationRequestDto collectionItemsRelationRequestDto = new CollectionItemsRelationRequestDto();
......@@ -943,12 +945,13 @@ public class SupplierItemServiceImpl implements SupplierItemService {
String video = "";
String[] images = vedios.split(";");
StringBuffer stringBuffer = new StringBuffer();
Arrays.stream(images).parallel().forEach(image -> {
Arrays.stream(images).forEach(image -> {
if (stringBuffer.length() != 0) {
stringBuffer.append(";");
}
try {
String cutImage = MediaUtil.getImageByCutVedio(image);
logger.info(">>>>>> 截取视频第一帧图片url = {} <<<<<<<", cutImage);
URL url = new URL(cutImage);
InputStream inputStream = url.openStream();
BufferedImage bufferedImage = ImageIO.read(inputStream);
......
......@@ -14,9 +14,9 @@ import com.wwdz.ch.db.domain.distribution.AuctionRecord;
import com.wwdz.ch.db.domain.distribution.DistributionOrder;
import com.wwdz.ch.db.domain.distribution.SupplierItem;
import com.wwdz.ch.core.api.WxAppletApi;
import com.wwdz.ch.wx.entity.AuctionOfferNoticeMsg;
import com.wwdz.ch.core.entity.AuctionOfferNoticeMsg;
import com.wwdz.ch.wx.service.distribution.DistributionOrderService;
import com.wwdz.ch.wx.service.distribution.SendMsgService;
import com.wwdz.ch.core.service.SendMsgService;
import com.xxdxxs.utils.DateUtils;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
......
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