Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.
Common duplication problems, and corresponding solutions are:
1 | <?php |
||
5 | class AlipayTradePrecreateContentBuilder extends ContentBuilder |
||
6 | { |
||
7 | |||
8 | // 商户网站订单系统中唯一订单号,64个字符以内,只能包含字母、数字、下划线, |
||
9 | // 需保证商户系统端不能重复,建议通过数据库sequence生成, |
||
10 | private $outTradeNo; |
||
11 | |||
12 | // 卖家支付宝账号ID,用于支持一个签约账号下支持打款到不同的收款账号,(打款到sellerId对应的支付宝账号) |
||
13 | // 如果该字段为空,则默认为与支付宝签约的商户的PID,也就是appid对应的PID |
||
14 | private $sellerId; |
||
15 | |||
16 | // 订单总金额,整形,此处单位为元,精确到小数点后2位,不能超过1亿元 |
||
17 | // 如果同时传入了【打折金额】,【不可打折金额】,【订单总金额】三者,则必须满足如下条件:【订单总金额】=【打折金额】+【不可打折金额】 |
||
18 | private $totalAmount; |
||
19 | |||
20 | // 订单可打折金额,此处单位为元,精确到小数点后2位 |
||
21 | // 可以配合商家平台配置折扣活动,如果订单部分商品参与打折,可以将部分商品总价填写至此字段,默认全部商品可打折 |
||
22 | // 如果该值未传入,但传入了【订单总金额】,【不可打折金额】 则该值默认为【订单总金额】- 【不可打折金额】 |
||
23 | private $discountableAmount; |
||
24 | |||
25 | // 订单不可打折金额,此处单位为元,精确到小数点后2位,可以配合商家平台配置折扣活动,如果酒水不参与打折,则将对应金额填写至此字段 |
||
26 | // 如果该值未传入,但传入了【订单总金额】,【打折金额】,则该值默认为【订单总金额】-【打折金额】 |
||
27 | private $undiscountableAmount; |
||
28 | |||
29 | //买家支付宝账号 |
||
30 | private $buyerLogonId; |
||
31 | |||
32 | // 订单标题,粗略描述用户的支付目的。如“喜士多(浦东店)消费” |
||
33 | private $subject; |
||
34 | |||
35 | // 订单描述,可以对交易或商品进行一个详细地描述,比如填写"购买商品2件共15.00元" |
||
36 | private $body; |
||
37 | |||
38 | // 商品明细列表,需填写购买商品详细信息, |
||
39 | private $goodsDetailList = array(); |
||
40 | |||
41 | // 商户操作员编号,添加此参数可以为商户操作员做销售统 |
||
42 | private $operatorId; |
||
43 | |||
44 | // 商户门店编号,通过门店号和商家后台可以配置精准到门店的折扣信息,详询支付宝技术支持 |
||
45 | private $storeId; |
||
46 | |||
47 | // 支付宝商家平台中配置的商户门店号,详询支付宝技术支持 |
||
48 | private $alipayStoreId; |
||
49 | |||
50 | // 商户机具终端编号,当以机具方式接入支付宝时必传,详询支付宝技术支持 |
||
51 | private $terminalId; |
||
52 | |||
53 | // 业务扩展参数,目前可添加由支付宝分配的系统商编号(通过setSysServiceProviderId方法),详情请咨询支付宝技术支持 |
||
54 | private $extendParams = array(); |
||
55 | |||
56 | // (推荐使用,相对时间) 支付超时时间,5m 5分钟 |
||
57 | private $timeExpress; |
||
58 | |||
59 | // ISV (独立软件开发商) |
||
60 | private $sysServiceProviderId; |
||
61 | |||
62 | private $bizContent = null; |
||
63 | |||
64 | private $bizParas = array(); |
||
65 | |||
66 | |||
67 | public function setOutTradeNo($outTradeNo) |
||
72 | |||
73 | public function getOutTradeNo() |
||
77 | |||
78 | public function setSellerId($sellerId) |
||
83 | |||
84 | public function getSellerId() |
||
88 | |||
89 | public function setTotalAmount($totalAmount) |
||
94 | |||
95 | public function getTotalAmount() |
||
99 | |||
100 | public function setDiscountableAmount($discountableAmount) |
||
105 | |||
106 | public function getDiscountableAmount() |
||
110 | |||
111 | public function setUndiscountableAmount($undiscountableAmount) |
||
116 | |||
117 | public function getUndiscountableAmount() |
||
121 | |||
122 | public function setBuyerLogonId($buyerLogonId) |
||
127 | |||
128 | public function getBuyerLogonId() |
||
132 | |||
133 | public function setSubject($subject) |
||
138 | |||
139 | public function getSubject() |
||
143 | |||
144 | public function setBody($body) |
||
149 | |||
150 | public function getBody() |
||
154 | |||
155 | public function setOperatorId($operatorId) |
||
160 | |||
161 | public function getOperatorId() |
||
165 | |||
166 | public function setStoreId($storeId) |
||
171 | |||
172 | public function getStoreId() |
||
176 | |||
177 | public function getSysServiceProviderId() |
||
181 | |||
182 | public function setSysServiceProviderId($sysServiceProviderId) |
||
187 | |||
188 | public function setTerminalId($terminalId) |
||
193 | |||
194 | public function getTerminalId() |
||
198 | |||
199 | public function setTimeExpress($timeExpress) |
||
204 | |||
205 | public function getTimeExpress() |
||
209 | |||
210 | public function getAlipayStoreId() |
||
214 | |||
215 | |||
216 | public function setAlipayStoreId($alipayStoreId) |
||
221 | |||
222 | public function getExtendParams() |
||
226 | |||
227 | public function setExtendParams($extendParams) |
||
232 | |||
233 | public function getGoodsDetailList() |
||
237 | |||
238 | public function setGoodsDetailList($goodsDetailList) |
||
243 | |||
244 | View Code Duplication | public function getBizContent() |
|
258 | } |
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.
You can also find more detailed suggestions in the “Code” section of your repository.