我的Java开发生涯记(5) - Go语言中文社区

我的Java开发生涯记(5)


2019.6.20著

今天突然好闲,就看了看cwasd项目的增删改查是如何操作的。

突然这么闲,项目经理是不是要给我放大招?看来加班逃不脱了,哈哈哈,让暴风雨来得更猛烈些吧!!

 

长话短说吧,要是被他发现,我要被打死的。不,是被开除,小生不敢、不敢

先让我们来看看项目的基本结构吧

vo:对象关系映射 ,我们公司自己封装了,所以只用继承就好了。

/**
 * 第三方订单对账单
 * @author lc
 * @date 2019年02月24日
 */
@Entity
@Table(name="thirdparty_order_bill")
public class ThirdpartyOrderBillModel extends ThirdpartyOrderBillDTO {

}
public class ThirdpartyOrderBillQueryModel extends ThirdpartyOrderBillQueryDTO{

}

dao:基本方法框架以及封装了,也可以自定义一些需要的方法

//接口
public interface ThirdpartyOrderBillDAO <M extends ThirdpartyOrderBillModel,QM extends ThirdpartyOrderBillQueryModel> extends BaseDAO<M,QM>{

}
@Primary
@Repository
public class ThirdpartyOrderBillESCaheImpl<M extends ThirdpartyOrderBillModel,QM extends ThirdpartyOrderBillQueryModel> extends BaseESCache<M,QM> implements ThirdpartyOrderBillDAO<M,QM> {

	@PostConstruct
	public void InitParams() {
		super.setModulePathName("finance.thirdpartyorderbill");
	}


	@Autowired
	private ThirdpartyOrderBillDAO myDAO;
	
	@Autowired
	private ElasticsearchTemplate et;


	public ThirdpartyOrderBillESCaheImpl() {
		super(M.ES_INDEX, M.ES_TYPE);
	}

	@PostConstruct
	public void postConstruct(){
		super.setDao(myDAO);
		super.setElasticsearchTemplate(et);
	}
}
@Repository
public class ThirdpartyOrderBillH4Impl<M extends ThirdpartyOrderBillModel,QM extends ThirdpartyOrderBillQueryModel> extends BaseH4Impl<M, QM> implements ThirdpartyOrderBillDAO<M, QM> {
	@PostConstruct
	public void InitParams() {
		super.setModulePathName("finance.thirdpartyorderbill");
	}

}

service层:主要写业务逻辑的

//接口
public interface ThirdpartyOrderBillService<M extends ThirdpartyOrderBillModel,QM extends ThirdpartyOrderBillQueryModel> extends BaseService<M,QM> {

	/**
	 * 下载订单导入模板
	 * @param response
	 */
	public void downTemplate(HttpServletResponse response);
	
	/**
	 * 导入订单
	 * @param files
	 * @return 
	 */
	public String importExcel(MultipartFile [] files,String errorMassage) throws IOException;
	
}
@Service
public class ThirdpartyOrderBillServiceImpl<M extends ThirdpartyOrderBillModel,QM extends ThirdpartyOrderBillQueryModel> 
			extends BaseServiceImpl<M,QM> implements ThirdpartyOrderBillService<M,QM> {

	private ThirdpartyOrderBillDAO myDAO;

    //重写接口的两个方法,实现业务逻辑
    具体内容忽略。。。。。。
}

controller层:把数据传输到页面用的。一般以json格式传输

@RestController
public class ThirdpartyOrderBill4OthersController extends BaseRestController<ThirdpartyOrderBillDTO,ThirdpartyOrderBillQueryDTO> implements ThirdpartyOrderBill4OthersApi{

	private ThirdpartyOrderBillService myService;
	
	@Autowired
	public void setMyService(ThirdpartyOrderBillService myService) {
		this.myService = myService;
		super.setBs(myService);
	}
	
}
@RestController
public class ThirdpartyOrderBill4WebController 
		extends BaseRestController<ThirdpartyOrderBillDTO,ThirdpartyOrderBillQueryDTO> implements ThirdpartyOrderBill4WebApi{

	
	private ThirdpartyOrderBillService myService;
	
	@Autowired
	public void setMyService(ThirdpartyOrderBillService myService) {
		this.myService = myService;
		super.setBs(myService);
	}

	@Override
	public RetDTO downTemplate(HttpServletResponse response) {
		myService.downTemplate(response);
		RetDTO ret = new RetDTO();
		ret.setRetStatus(RetDTO.SUCCESS);
		return ret;
	}

	@Override
	public RetDTO importExcel(MultipartFile[] files,String errorMassage) {
		
		try {
			errorMassage = myService.importExcel(files,errorMassage);
			RetDTO ret = new RetDTO();
			ret.setRetStatus(RetDTO.SUCCESS);
			ret.setRetData(errorMassage);
			return ret; 
		} catch (IOException e) {
			e.printStackTrace();
			RetDTO ret = new RetDTO();
			ret.setRetStatus(RetDTO.ERROR4CUSTOMER);
			return ret;
		}
	}
}

基本上每个项目类的名字都有一定的规律,按照名字写对应的层,以后维护也方便,阅读性会比较高

 

 

今日收获:

1.查询商户后台为何登陆缓慢问题,具体待那一行代码

解题思路,找到登陆的方法,添加时间,查看时间间隔,间隔大说明有问题

//获取当前时间,以自定义格式显示
new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format( new Date());

 

2.平台后台提现功能当发票录入时,修改状态。发票录入,修改状态为录入发票成功

解决思路:找到展示页面的list数据,找到导入发票号的代码,在导入发票时设置状态。

//service层代码
String customerUuid = m.getCustomerUuid();
RetDTO ret = customer4OthersApi.getByUuid(customerUuid);
if(ret != null && RetDTO.SUCCESS.equals(ret.getRetStatus())) {
	CustomerDTO customer = JSON.parseObject(ret.getRetData(), new TypeReference<CustomerDTO>() {});
	//只有服务商才能录入发票
	if(customer == null || !CustomerDTO.CUSTOMER_CUSTOMERTYPE_SERVICE.equals(customer.getCustomerType())) {
		throw new AppException("customer.withdrawapply.type");
	}
}
m.setState(WithdrawApplyDTO.STATE_BILL);
m.setInvoiceNo(invoiceNo);
this.update(m);
// 修改结算单状态
this.changeBillState(uuid, WithdrawApplyDTO.STATE_BILL);
//状态:1.待审核 2.审核通过 3.审核不通过 4.提现成功 5.提现失败
//dto层代码
public static final String STATE_UNAUDIT = "1";
public static final String STATE_AUDITPASS = "2";
public static final String STATE_AUDITNOPASS = "3";
public static final String STATE_SUCCESS = "4";
public static final String STATE_FAIL = "5";
public static final String STATE_BILL = "6";
public static final Map<String, String> stateMap = new HashMap<>();
static {
	stateMap.put(STATE_UNAUDIT, "待审核");
	stateMap.put(STATE_AUDITPASS, "审核通过");
	stateMap.put(STATE_AUDITNOPASS, "审核不通过");
	stateMap.put(STATE_SUCCESS, "提现成功");
	stateMap.put(STATE_FAIL, "提现失败");
	stateMap.put(STATE_BILL, "录入发票成功");
}

 

总结:代码其实并不难,但是如果无厘头地去做,真的很难,解决问题前想想想解题思路,在行动,熟悉代码,按照取名规则就很容易了。细节决定成败啊,做什么事还是要心细才行啊。但是我能满足这些吗?显然不能,我想要的是既能粗犷,也能细心。放开了玩,用心办事。成年人从来都不会选择,我都要。哈哈哈哈

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_43908950/article/details/92983844
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-04-19 14:37:55
  • 阅读 ( 661 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢