Commit 656c86f4 authored by shiyu's avatar shiyu

寄售单

parent 61ad46f3
......@@ -35,16 +35,25 @@ public class ConsignSaleController {
@PostMapping("/findList")
public Result findList(@RequestBody ConsignSaleRequestDto dto) {
logger.info("【请求开始】用户取消寄售单,请求参数:{}", JSON.toJSONString(dto));
return consignSaleService.findList(dto);
}
@ApiOperation(value = "查询寄售单详情")
@PostMapping("/findDetail")
public Result findDetail(@RequestBody ConsignSaleRequestDto dto) {
logger.info("【请求开始】查询寄售单详情,请求参数:{}", JSON.toJSONString(dto));
Validator validator = new Validator(FormHandler.ofEntity(dto));
validator.set("userId", "用户id").must().string()
validator.set("saleId", "寄售单号").must().string()
.end();
if (!validator.isValid()) {
return Result.failed(ResultCode.PARAM_ERROR.getCode(), validator.getErrorInfo());
}
return consignSaleService.findList(dto);
return consignSaleService.findDetail(dto);
}
@ApiOperation(value = "图文估价")
@PostMapping("/imgValuate")
public Result valuate(@RequestBody ConsignSaleRequestDto dto) {
......@@ -66,7 +75,7 @@ public class ConsignSaleController {
logger.info("【请求开始】实物鉴定,请求参数:{}", JSON.toJSONString(dto));
Validator validator = new Validator(FormHandler.ofEntity(dto));
validator.set("saleId", "寄售单号").must().string()
.set("valuation", "实物估价").must().string()
.set("valuation", "实物估价").must().number()
.end();
if (!validator.isValid()) {
return Result.failed(ResultCode.PARAM_ERROR.getCode(), validator.getErrorInfo());
......@@ -81,7 +90,7 @@ public class ConsignSaleController {
logger.info("【请求开始】完成寄售,请求参数:{}", JSON.toJSONString(dto));
Validator validator = new Validator(FormHandler.ofEntity(dto));
validator.set("saleId", "寄售单号").must().string()
.set("dealPrice", "成交价格").must().string()
.set("dealPrice", "成交价格").must().number()
.end();
if (!validator.isValid()) {
return Result.failed(ResultCode.PARAM_ERROR.getCode(), validator.getErrorInfo());
......@@ -96,7 +105,6 @@ public class ConsignSaleController {
logger.info("【请求开始】取消寄售单,请求参数:{}", JSON.toJSONString(dto));
Validator validator = new Validator(FormHandler.ofEntity(dto));
validator.set("saleId", "寄售单号").must().string()
.set("itemId", "商品id").must().number()
.end();
if (!validator.isValid()) {
return Result.failed(ResultCode.PARAM_ERROR.getCode(), validator.getErrorInfo());
......
package com.wwdz.ch.admin.entity.vo;
import com.xxdxxs.entity.Entity;
import lombok.Data;
import java.util.List;
@Data
public class ConsignSaleDetailVo implements Entity {
/**
* 寄售单号
*/
private String consignSaledId;
/**
* 货品信息
*/
private ItemVo itemVo;
/**
* 寄售单信息
*/
private List<ConsignSaleRecordVo> consignSaleRecordVoList;
}
package com.wwdz.ch.admin.entity.vo;
import com.xxdxxs.entity.Entity;
import lombok.Data;
import org.bouncycastle.cms.PasswordRecipientId;
import java.util.Date;
@Data
public class ConsignSaleRecordVo implements Entity {
/**
* 寄售单
*/
private String saleId;
/**
* 操作时间
*/
private Date createTime;
/**
* 操作内容
*/
private String content;
/**
* 操作理由或成交平台
*/
private String remark;
/**
* 操作类型
*/
private Integer type;
private String typeName;
}
......@@ -6,13 +6,12 @@ import com.wwdz.ch.db.domain.Item;
import com.xxdxxs.entity.Entity;
import com.xxdxxs.utils.DateUtils;
import com.xxdxxs.utils.EntityMapper;
import com.xxdxxs.utils.JsonUtils;
import lombok.Data;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import java.util.Arrays;
import java.util.Date;
import java.util.Objects;
import java.util.*;
@Data
public class ItemVo implements Entity {
......@@ -101,61 +100,55 @@ public class ItemVo implements Entity {
private String bidTime;
public Integer getCid() {
return cid;
}
public void setCid(Integer cid) {
this.cid = cid;
}
public String getDetail() {
return detail;
}
/**
* 创建时间
*/
private Date createTime;
public void setDetail(String detail) {
this.detail = detail;
}
/**
* 更新时间
*/
private Date updateTime;
public String[] getImages() {
return images;
}
public void setImages(String[] images) {
this.images = images;
}
/**
* 钱币额外信息
*/
private String extra;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
/**
* 直径
*/
private String diameter;
public Double getPrice() {
return price;
}
/**
* 厚度
*/
private String thickness;
public void setPrice(Double price) {
this.price = price;
}
/**
* 质量(重量)
*/
private String weight;
public Boolean getIsOnSale() {
return isOnSale;
}
/**
* 原始的资源url
*/
private String originalSourceUrl;
public void setIsOnSale(Boolean onSale) {
isOnSale = onSale;
}
/**
* 对应的分类
*
*/
private List<Integer> categoryIds;
public Boolean getIsStd() {
return isStd;
}
/**
* 对应的分类
*
*/
private List<String> categoryNames;
public void setIsStd(Boolean std) {
isStd = std;
}
public Item toItem() {
Item item = new Item();
......@@ -206,39 +199,28 @@ public class ItemVo implements Entity {
return itemVo;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
public static ItemVo convertEntity(Item item) {
try {
ItemVo itemVo = new ItemVo();
EntityMapper.copyAttribute(item, itemVo);
itemVo.setStateName(ItemStateEnum.getNameByCode(item.getState()));
long price = item.getPrice() == null ? 0 : item.getPrice();
itemVo.setPrice(price / (double)100);
String extra = item.getExtra();
if (com.xxdxxs.utils.StringUtils.hasLength(extra)) {
Map<String, Object> map = JsonUtils.toMap(extra);
itemVo.setDiameter(map.get("diameter") == null? "": map.get("diameter").toString());
itemVo.setThickness(map.get("thickness")== null? "": map.get("thickness").toString());
itemVo.setWeight(map.get("weight")== null? "": map.get("weight").toString());
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ItemVo itemVo = (ItemVo) o;
return Objects.equals(cid, itemVo.cid) && Objects.equals(detail, itemVo.detail) && Arrays.equals(images, itemVo.images) && Objects.equals(name, itemVo.name) && Objects.equals(price, itemVo.price) && Objects.equals(isOnSale, itemVo.isOnSale) && Objects.equals(isStd, itemVo.isStd);
return itemVo;
} catch (Exception e) {
e.printStackTrace();
}
@Override
public int hashCode() {
int result = Objects.hash(cid, detail, name, price, isOnSale, isStd);
result = 31 * result + Arrays.hashCode(images);
return result;
return null;
}
@Override
public String toString() {
return "ItemVo{" +
"cid=" + cid +
", detail='" + detail + '\'' +
", images=" + Arrays.toString(images) +
", name='" + name + '\'' +
", price=" + price +
", isOnSale=" + isOnSale +
", isStd=" + isStd +
'}';
}
}
package com.wwdz.ch.admin.impl;
import com.github.pagehelper.PageInfo;
import com.wwdz.ch.admin.entity.vo.ConsignSaleDetailVo;
import com.wwdz.ch.admin.entity.vo.ConsignSaleRecordVo;
import com.wwdz.ch.admin.entity.vo.ItemVo;
import com.wwdz.ch.admin.service.ConsignSaleService;
import com.wwdz.ch.admin.service.ItemService;
import com.wwdz.ch.core.consts.ConsignSaleEnum;
import com.wwdz.ch.core.entity.ConsignSaleVo;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.core.util.IdUtils;
import com.wwdz.ch.core.util.MediaUtil;
import com.wwdz.ch.db.dao.ConsignSaleDao;
import com.wwdz.ch.db.dao.ConsignSaleRecordDao;
......@@ -23,7 +25,6 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
......@@ -92,15 +93,35 @@ public class ConsignSaleServiceImpl implements ConsignSaleService {
@Override
public Result findDetail(ConsignSaleRequestDto dto) {
try {
CoinRequestDto coinRequestDto = new CoinRequestDto();
coinRequestDto.setId(dto.getItemId());
Result itemResult = itemService.findDetails(coinRequestDto);
Result<ItemVo> itemResult = itemService.findDetails(coinRequestDto);
if (!itemResult.getSuccess()) {
return itemResult;
}
return null;
ConsignSaleDetailVo consignSaleDetailVo = new ConsignSaleDetailVo();
consignSaleDetailVo.setItemVo(itemResult.getData());
//查询寄售单信息
List<ConsignSaleRecord> consignSaleRecords = consignSaleRecordDao.find(dto.getSaleId());
List<ConsignSaleRecordVo> consignSaleRecordVoList = new ArrayList<>();
consignSaleRecords.forEach(consignSaleRecord -> {
ConsignSaleRecordVo consignSaleRecordVo = new ConsignSaleRecordVo();
EntityMapper.copyAttribute(consignSaleRecord, consignSaleRecordVo);
if (consignSaleRecordVo.getType().intValue() == ConsignSaleEnum.OperateTypeEnum.SYS_CANCEL.getCode()
|| consignSaleRecordVo.getType().intValue() == ConsignSaleEnum.OperateTypeEnum.CUSTOM_CANCEL.getCode()) {
consignSaleRecordVo.setTypeName("寄售单取消");
} else {
consignSaleRecordVo.setTypeName(ConsignSaleEnum.OperateTypeEnum.getNameByCode(consignSaleRecord.getType()));
}
consignSaleRecordVoList.add(consignSaleRecordVo);
});
consignSaleDetailVo.setConsignSaleRecordVoList(consignSaleRecordVoList);
return Result.success(consignSaleDetailVo);
} catch (Exception e) {
logger.info("查询寄售单详情error:{}", e);
}
return Result.failed();
}
@Override
......@@ -152,12 +173,19 @@ public class ConsignSaleServiceImpl implements ConsignSaleService {
@Override
public Result finish(ConsignSaleRequestDto dto) {
try {
ConsignSale consignSaleInfo = consignSaleDao.findById(dto.getSaleId());
long itemId = consignSaleInfo.getItemId();
ConsignSale consignSale = new ConsignSale();
consignSale.setDealPrice(dto.getDealPrice());
consignSale.setSaleId(dto.getSaleId());
consignSale.setCustomState(ConsignSaleEnum.SaleForUserStateEnum.FINISH.getCode());
consignSale.setSystemState(ConsignSaleEnum.SaleForSysStateEnum.FINISH.getCode());
consignSaleDao.update(consignSale);
//卖出后商品下架
itemDao.updateOnSale(itemId);
//插入操作记录
ConsignSaleRecord consignSaleRecord = new ConsignSaleRecord();
consignSaleRecord.setSaleId(dto.getSaleId());
......@@ -176,13 +204,16 @@ public class ConsignSaleServiceImpl implements ConsignSaleService {
@Override
public Result cancel(ConsignSaleRecordRequestDto dto) {
try {
ConsignSale consignSaleInfo = consignSaleDao.findById(dto.getSaleId());
long itemId = consignSaleInfo.getItemId();
ConsignSale consignSale = new ConsignSale();
consignSale.setSaleId(dto.getSaleId());
consignSale.setCustomState(ConsignSaleEnum.SaleForUserStateEnum.CANCEL.getCode());
consignSale.setSystemState(ConsignSaleEnum.SaleForSysStateEnum.CANCEL.getCode());
consignSaleDao.update(consignSale);
//商品下架
itemDao.updateOnSale(dto.getItemId());
itemDao.updateOnSale(itemId);
//插入记录
ConsignSaleRecord consignSaleRecord = new ConsignSaleRecord();
......
package com.wwdz.ch.admin.impl;
import com.wwdz.ch.admin.entity.vo.CoinVo;
import com.wwdz.ch.admin.entity.vo.ItemVo;
import com.wwdz.ch.admin.service.ItemService;
import com.wwdz.ch.admin.service.OperateLogService;
import com.wwdz.ch.admin.util.AuthSupport;
......@@ -92,7 +93,7 @@ public class ItemServiceImpl implements ItemService {
item = itemDao.findDetails(id);
}
}
CoinVo coinVo = convertEntity(item);
ItemVo itemVo = ItemVo.convertEntity(item);
//用于展示商品归属的类目(页面级联下拉控件数据展示)
Integer categoryId = item.getCid();
Category category = categoryDao.findById(categoryId);
......@@ -113,8 +114,8 @@ public class ItemServiceImpl implements ItemService {
}
}
}
coinVo.setCategoryIds(categoryIds);
return Result.success(coinVo);
itemVo.setCategoryIds(categoryIds);
return Result.success(itemVo);
} catch (Exception e) {
logger.error("商品查询明细 error : {}", e);
}
......
......@@ -13,6 +13,8 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<module-user-api.version>0.2.0</module-user-api.version>
<user-api.version>1.9.33</user-api.version>
</properties>
<dependencies>
......@@ -142,6 +144,19 @@
</exclusions>
</dependency>
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
<exclusions>
<exclusion>
<artifactId>pagehelper</artifactId>
<groupId>com.github.pagehelper</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>jakarta.json</groupId>
<artifactId>jakarta.json-api</artifactId>
......@@ -184,6 +199,58 @@
<artifactId>tls-sig-api-v2</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>2.7.6.1.0-ext</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>2.13.0</version>
</dependency>
<!-- <dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-wwdz</artifactId>
<version>2.7.6.1.0-ext</version>
</dependency>-->
<dependency>
<groupId>com.wwdz.user</groupId>
<artifactId>user-api</artifactId>
<version>${user-api.version}</version>
</dependency>
<!-- <dependency>
<groupId>com.wwdz.mall</groupId>
<artifactId>user-api</artifactId>
<version>${user-api.version}</version>
<exclusions>
<exclusion>
<artifactId>pagehelper</artifactId>
<groupId>com.github.pagehelper</groupId>
</exclusion>
<exclusion>
<artifactId>spring-cloud-context</artifactId>
<groupId>org.springframework.cloud</groupId>
</exclusion>
</exclusions>
</dependency>-->
<dependency>
<groupId>com.wwdz.user</groupId>
<artifactId>user-api</artifactId>
<version>${user-api.version}</version>
</dependency>
<!-- <dependency>
<groupId>com.wwdz.arch</groupId>
<artifactId>arch-limiter-dubbo</artifactId>
<version>>2.8.4.14</version>
</dependency>-->
</dependencies>
</project>
......@@ -193,6 +193,22 @@ spring:
serialization:
write-dates-as-timestamps: false
dubbo:
application:
name: quanku_applet
registry:
address: zookeeper://172.16.57.88:2181
protocol:
# dubbo 协议
name: dubbo
port: 20880
consumer:
#没有提供者时报错
check: false
timeout: 3000
retries: -1
server:
servlet:
session:
......
......@@ -190,6 +190,22 @@ spring:
username: elastic
password: changeme
index: quanku_prod
dubbo:
application:
name: quanku_applet
registry:
address: zookeeper://172.16.57.88:2181
protocol:
# dubbo 协议
name: dubbo
port: 20880
consumer:
#没有提供者时报错
check: false
timeout: 3000
retries: -1
server:
servlet:
session:
......
......@@ -25,6 +25,9 @@ public interface ConsignSaleDao {
int update(ConsignSale consignSale);
ConsignSale findById(String saleId);
/**
*
* @param dto
......
......@@ -44,7 +44,7 @@ public class ConsignSaleRecord implements Entity {
public void setRemark(String remark) {
if (StringUtils.isEmpty(remark) ) {
this.remark = "理由:" + remark;
this.remark = "理由:";
} else if (StringUtils.hasLength(remark) && !remark.startsWith("理由:") && !remark.startsWith("成交平台")) {
this.remark = "理由:" + remark;
} else {
......
......@@ -9,6 +9,8 @@ import com.wwdz.ch.db.mapper.ConsignSaleMapper;
import com.xxdxxs.db.component.JdbcHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import java.util.Date;
import java.util.List;
@Repository
......@@ -27,9 +29,20 @@ public class ConsignSaleDaoImpl implements ConsignSaleDao {
ConsignSaleExample example = new ConsignSaleExample();
ConsignSaleExample.Criteria criteria = example.createCriteria();
criteria.andSaleIdEqualTo(consignSale.getSaleId());
consignSale.setUpdateTime(new Date());
return consignSaleMapper.updateByExampleSelective(consignSale, example);
}
@Override
public ConsignSale findById(String saleId) {
ConsignSaleExample example = new ConsignSaleExample();
ConsignSaleExample.Criteria criteria = example.createCriteria();
criteria.andSaleIdEqualTo(saleId);
return consignSaleMapper.selectOneByExample(example);
}
@Override
public List<ConsignSale> find(ConsignSaleRequestDto dto) {
ConsignSaleExample example = new ConsignSaleExample();
......
package com.wwdz.ch.wx;
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
......@@ -17,6 +18,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
@MapperScan({ "com.wwdz.ch.db.mapper", "com.wwdz.ch.db.mapper.ex" })
@EnableTransactionManagement
@EnableScheduling
@EnableDubbo(scanBasePackages = {"com.wwdz.ch.wx"})
public class Application {
// 小程序后台服务启动类
public static void main(String[] args) {
......
package com.wwdz.ch.wx.impl;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import com.alibaba.dubbo.config.annotation.Reference;
import com.alibaba.fastjson.JSONObject;
import com.wwdz.ch.core.consts.IMEnum;
import com.wwdz.ch.core.consts.ResultCode;
......@@ -36,6 +37,7 @@ import com.wwdz.ch.wx.util.IpUtil;
import com.wwdz.ch.wx.util.RedisUtil;
import com.wwdz.ch.wx.util.StringUtil;
import com.wwdz.ch.wx.util.WxResponseCode;
import com.wwdz.user.api.service.user.UserReadService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -45,7 +47,6 @@ import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import javax.servlet.http.HttpServletRequest;
import java.text.MessageFormat;
import java.text.SimpleDateFormat;
......@@ -65,6 +66,9 @@ public class UserServiceImpl implements UserService {
@Value("${dts.im.default-ai-code}")
private String DEFAULT_AI_CODE;
@Reference
private UserReadService userReadService;
@Autowired
private UserDao userDao;
@Autowired
......
......@@ -36,6 +36,7 @@
<spring-boot-starter-web.version>2.0.4.RELEASE</spring-boot-starter-web.version>
<spring-boot-starter-sercurity.version>2.0.4.RELEASE</spring-boot-starter-sercurity.version>
<mapstruct.version>1.4.2.Final</mapstruct.version>
</properties>
......@@ -145,6 +146,8 @@
<artifactId>jackson-databind</artifactId>
<version>${jackson-databind.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
......
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